窗体组件类结构
JButton按钮构造方法
- JButton():创建不带有设置文本或图标的按钮
- JButton(Action a):创建一个按钮,其属性从所提供的Action中获取
- JButton(Icon icon):创建一个带图标的按钮
- JButton(String text):创建一个带文本的按钮
- JButton(String text,Icon icon):创建一个带初始文本和图标的按钮
Action接口
- JButton(Action a)中的Action是一个接口
- public interface Action extends ActionListener
- 注意:接口可以继承一个或多个接口
ActionListener接口方法
- void actionPerformered(ActionEvent e):发生操作时调用
JButton常用方法
- void addActionListener(ActionListener listener):为组件注册ActionListener监听
- void setIcon(Icon icon):设置按
- 钮的默认图标
- void setText(String text):设置按钮的文本
- void setMargin(Insets m):设置按钮边框和标签之间的空白
- void setMnemonic(int menomenic):设置按钮的键盘快捷键,所设置的快捷键在实际操作是需要结合alt键进行实现
- void setPressedIcon(Icon icon):设置按下按钮的图标
- void setSelectedIcon(Icon icon):设置选择按钮时的图标
- void setRolloveiicon(Icon icon):设置鼠标移动到按钮区域时的图标
- void setDisabledIcon(设置按钮无效状态下的图标)
- void setVerticalAlignment(int alig):设置图标和文本的垂直对齐方式
- void setHorizontalAlignment(int alig):设置图标和文本的水平对齐方式
- void setEnable(boolean flag):启用或禁用按钮
- void setVerticalTextPosition(int textPosition):设置文本相对于图标的垂直位置
- void setHorizontalTextPosition(int textPosition):设置文本相对于图标的水平位置
Demo
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
public class Demo {
public static void main(String[] args) {
//创建JFrame对象
JFrame jf = new JFrame("Java按钮组件实例");
//创建JPanel对象
JPanel jp = new JPanel();
//创建JButton对象
JButton b1 = new JButton("我是普通按钮");
JButton b2 = new JButton("我是带背景色的按钮");
JButton b3 = new JButton("我是不可用按钮");
JButton b4 = new JButton("我是顶部对齐按钮");
//向JPanel面板添加按钮组件
jp.add(b1);
//设置按钮背景色
b2.setBackground(Color.YELLOW);
jp.add(b2);
//设置按钮不可用
b3.setEnabled(false);
jp.add(b3);
//设置按钮对齐方式为顶部对齐
b4.setVerticalAlignment(SwingConstants.NORTH);
//设置按钮大小
Dimension preferredSize = new Dimension(160,60);
b4.setPreferredSize(preferredSize);
jf.add(jp);
jf.setVisible(true);
jf.setSize(400,400);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
注意
- setBounds()和setSize()并不是任何情况下都有效
- 要使用setBounds()和setSize()这类的方法时,要保证所使用的对象的容器(或面板)的布局必须是null