/**
* 练习button的使用
*/
package components;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* @author lzycsd
* 测试按钮使用
*/
public class MyButtonDemo extends JPanel
implements ActionListener {
protected JButton bl,bc,br;
public MyButtonDemo(){
ImageIcon leftButtonIcon = createImageIcon("images/right.gif");
ImageIcon centerButtonIcon = createImageIcon("images/middle.gif");
ImageIcon rightButtonIcon = createImageIcon("images/left.gif");
//创建及设计左边的按钮
bl = new JButton("使中间按钮无效",leftButtonIcon);
bl.setVerticalTextPosition(AbstractButton.CENTER); //设置文本相对于图标的垂直位置。
bl.setHorizontalTextPosition(AbstractButton.LEADING); //设置文本相对于图标的水平位置。leading 文字在图片左边 标识使用从左到右和从右到左的语言的文本开始边
bl.setActionCommand("disable"); //设置此按钮的动作命令。 后面会取到此值
bl.setMnemonic(KeyEvent.VK_L); //按钮快捷键 并且应该使用 java.awt.event.KeyEvent 中定义的 VK_XXX 键代码之一指定。助记符是不区分大小写的
//创建及设计中间的按钮
bc = new JButton("这是中间的按钮",centerButtonIcon);
bc.setVerticalTextPosition(AbstractButton.BOTTOM);
bc.setHorizontalTextPosition(AbstractButton.CENTER);
bc.setMnemonic(KeyEvent.VK_C); //快捷键是c
//创建及设计右边的按钮
br = new JButton("使中间按钮有效",rightButtonIcon);
/*br.setVerticalTextPosition(AbstractButton.CENTER);
br.setHorizontalTextPosition(AbstractButton.TRAILING);默认布局方式*/
br.setMnemonic(KeyEvent.VK_R); //快捷键是r
br.setEnabled(false);
//监听bl和br按钮
bl.addActionListener(this);
br.addActionListener(this);
bl.setToolTipText("使中间按钮无效!");
bc.setToolTipText("这是中间按钮的提示文本!");
br.setToolTipText("使中间按钮有效!");
//Add Components to this container, using the default FlowLayout.
add(bl);
add(bc);
add(br);
}
public void actionPerformed(ActionEvent e){
if("disable".equals(e.getActionCommand())){
bl.setEnabled(false);
bc.setEnabled(false);
br.setEnabled(true);
}else{
bl.setEnabled(true);
bc.setEnabled(true);
br.setEnabled(false);
}
}
/** Returns an ImageIcon, or null if the path was invalid. */
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = MyButtonDemo.class.getResource(path);
if(imgURL!=null){
System.out.println(imgURL+"____"+path);
return new ImageIcon(imgURL);
}else{
System.err.println("couldn't find file:"+path);
return null;
}
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
public static void createAndShowGUI(){
//Create and set up the window.
JFrame frame = new JFrame("测试按钮的例子");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
MyButtonDemo newContentPane = new MyButtonDemo();
newContentPane.setOpaque(true);
/*如果为 true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制部分或所有像素,从而允许其底层像素透视出来。
对于 JComponent 而言,此属性的默认值是 false。但是对于大多数标准的 JComponent 子类(如 JButton 和 JTree),此属性的默认值与外观有关。
参数:
isOpaque - 如果此组件应该是不透明的,则为 true*/
frame.setContentPane(newContentPane);
//display the window
frame.pack();
frame.setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
createAndShowGUI();
}
});
/*在java的主线程(Main Thread)中是使用事务的方式来处理事件的,主线程中有一个事件队列,当你所要做的动作将被放到主线程中处理而又不需要马上处理(或不想中断目前正在执行的事务),则可以使用InvokeLater方法将该事务放到事件队列的最后。让主线程自行执行。
使用InvokeLater不知道在什么时候会执行该事务,但好处是不会和其它事务起冲突。Swing中的重绘就是用InvokeLater来实现的。*/
}
}
常用方法
熟悉9、按钮(JButton)
JButton() 创建按钮
JButton(String s) s是按钮的名字
JButton(Icon icon) icon是按钮上的图标
JButton(String s,Icon icon)
getText() 获取按钮名字
getIcon() 获取按钮图标
setIcon(Icon icon) 设置按钮图标
setHorizontalTextposition(int a) a确定按钮上图标的位置,取值:
AbstractButton_CENTR,AbstractButton_LEFT,AbstractButton_RIGHT
setVerticalTextposition(int a) a确定按钮上名字相对图标的位置,取值:
AbstractButton.TOP,AbstractButton.BOTTOM,AbstractButton.CENTR
setMnemonic(char c) 设置按钮的键盘操作方式是字符c(Alt+c)
setEnabled(boolean b) b决定按钮是否可以被单击
分享到:
相关推荐
- 动作命令:`"disable"` — 这将在事件处理中使用。 2. **bc (Center Button):** - 设置文本:“默认按钮” - 设置图标:`centerButtonIcon` - 文本垂直位置:底部 (`AbstractButton.BOTTOM`) - 文本水平位置...
Java Swing JButton 按钮是 Java 中最常用的 GUI 组件之一,用于在用户界面中提供交互方式。JButton 按钮可以根据需要自定义外观和行为,下面将对 JButton 按钮的实现示例进行详细介绍。 一、JButton 按钮的构造...
JButton是Swing库中的一个组件,用于创建可点击的按钮。你可以使用JButton来触发操作或执行特定任务。
在Java Swing库中,`JButton`是用于创建按钮组件的类,用户可以通过点击或执行与之关联的操作来响应按钮。有时候,为了提高用户体验和交互效率,我们希望为`JButton`添加快捷键或者访问键(accelerator key)。在本...
Java Swing是Java标准库中的一个组件集合,用于构建桌面应用程序用户界面。它是Java Foundation Classes (JFC)的一部分,提供了一套轻量级的GUI(图形用户界面)组件,支持丰富的交互功能。本离线API文档详细阐述了...
文档"javaswing教程.doc"应该包含了详细的步骤、实例代码以及最佳实践,帮助你深入理解和掌握Java Swing的界面设计技巧。 总之,Java Swing不仅是一个强大的工具集,也是开发者实现桌面应用创新设计的关键。通过这...
在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...
在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式查看和操作数据。而`JButton`则是一个常用的按钮控件,通常用于触发某些动作或事件。将`JButton`添加到`JTable`中可以为用户...
在本文中,我们总结了基于Java Swing实现答题系统的技术要点,涵盖了GUI设计、事件处理、swing组件使用、Java图形化编程等多个方面的知识点。 七、结论 本文详细介绍了基于Java Swing实现答题系统的技术要点,涵盖...
9. 计算器的实现:计算器是Java swing组件中的一种常见应用,通过使用JFrame、JButton、JPanel、JTextArea等组件,可以创建一个简单的计算器。 10. 代码优化:代码优化是Java swing组件中的一种重要步骤,用于优化...
`Login.java` 文件可能是一个示例代码,展示了如何在登录界面中使用DatePicker组件。通常,登录界面可能并不需要日期选择功能,但如果应用需要记录用户的登录日期或者允许用户选择特定日期进行某些操作,那么...
java swing JButton 圆角按钮 带变色(有注释,简单易懂适用于初学者 程序可直接运行)
标题中提到的“JavaSwing编程”,指的是在Java编程语言中,使用Swing库进行图形用户界面(GUI)编程的一种实践。Swing是Java的一个工具包,用于开发Java应用程序的图形用户界面。它提供了一套丰富的组件,可以让...
在Java编程中,Swing库提供了丰富的组件和功能来创建图形用户界面(GUI)。当我们需要在Swing应用中展示图片时,可以利用特定的方法来读取并显示图像。本篇文章将详细讲解如何在Java Swing中读取和显示图片,以及与...
在Java Swing中,开发者可以使用JFrame作为主窗口,JLabel显示提示信息,JTextField供用户输入用户名和密码,而JButton则用于触发登录操作。通常,登录验证会通过比较输入的用户名和密码与数据库中的记录进行,确保...
在JavaSwing中,开发人员通常会使用JFrame作为主窗口,JButton用于玩家输入(猜拳选择),JLabel或JOptionPane来显示游戏结果和提示信息,可能还会使用JOptionPane来进行对话框交互,比如询问玩家人数或者显示游戏...
在这个“Java Swing 简单的员工管理系统”中,开发者利用Swing来设计用户界面,实现了对MySQL数据库的员工数据管理功能,包括增(添加员工)、删(删除员工)、改(修改员工信息)和查(查询员工信息)等基本操作。...
在“javaswing教程”中,你可能会学到如何使用Swing组件、布局管理器、事件处理、模型绑定以及外观和感觉的定制。教程通常会包含示例代码,帮助初学者快速上手并理解相关概念。这些教程对于想要提升Java Swing编程...
在Java Swing中,我们可以使用`JFrame`作为主窗口,`JPanel`作为内容面板,然后在面板上放置各种组件如`JButton`(按钮)、`JScrollPane`(滚动条)和`JLabel`(显示PDF内容)。对于PDF内容的展示,由于PDFBox不直接...