按钮是图形界面上常见的元素,在前面已经多次使用过它。在 Swing 中按钮是 JButton 类的对象,JButton 类的常用构造方法如下。
JButton 类的常用方法如表 1 所示。
方法名称 | 说明 |
---|---|
addActionListener(ActionListener listener) | 为按担组件注册 ActionListener 监听 |
void setIcon(Icon icon) | 设置按钮的默认图标 |
void setText(String text) | 设置按鈕的文本 |
void setMargin(Insets m) | 设置按钮边框和标签之间的空白 |
void setMnemonic(int nmemonic) | 设置按钮的键盘快捷键,所设置的快捷键在实际操作时需要结合Alt 键进行实现 |
void setPressedIcon(Icon icon) | 设置按下按钮时的图标 |
void setSelectedIcon(Icon icon) | 设置选择按鈕时的图标 |
void setRolloveiicon(Icon icon) | 设置鼠标移动到按扭区域时的图标 |
void setDisabledIcon(Icon icon) | 设置按钮无效状态下的图标 |
void setVerticalAlignment(int alig) | 设置图标和文本的垂直对齐方式 |
void setHorizontalAlignment(int alig) | 设置图标和文本的水平对齐方式 |
void setEnable(boolean flag) | 启用或禁用按扭 |
void setVerticalTextPosition(int textPosition) | 设置文本相对于图标的垂直位置 |
void setHorizontalTextPosition(int textPosition) | 设置文本相对于图标的水平位置 |
使用 JFrame 组件创建一个窗口,然后创建 4 个不同类型的按钮,再分别添加到窗口上显示。具体代码如下:
package ch17;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
public class JButtonDemo
{
public static void main(String[] args)
{
JFrame frame=new JFrame("Java按钮组件示例"); //创建Frame窗口
frame.setSize(400, 200);
JPanel jp=new JPanel(); //创建JPanel对象
JButton btn1=new JButton("我是普通按钮"); //创建JButton对象
JButton btn2=new JButton("我是带背景颜色按钮");
JButton btn3=new JButton("我是不可用按钮");
JButton btn4=new JButton("我是底部对齐按钮");
jp.add(btn1);
btn2.setBackground(Color.YELLOW); //设置按钮背景色
jp.add(btn2);
btn3.setEnabled(false); //设置按钮不可用
jp.add(btn3);
Dimension preferredSize=new Dimension(160, 60); //设置尺寸
btn4.setPreferredSize(preferredSize); //设置按钮大小
btn4.setVerticalAlignment(SwingConstants.BOTTOM); //设置按钮垂直对齐方式
jp.add(btn4);
frame.add(jp);
frame.setBounds(300, 200, 600, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
上述代码创建了 1 个 JFrame 窗口对象、1 个 JPanel 面板对象和 4 个 JButton 按钮,然后调用 JButton 类的 setBackground() 方法、setEnabled() 方法、setPreferredSize() 方法和 setVerticalAlignment() 方法设置按钮的显示外观。程序运行后 4 个按钮显示效果如图 1 所示。