8.2 按钮控件
图8-1中有一个AbstractButton类,该类是Swing中所有按钮的父类,该类的三个直接派生类JButton、JToggleButton和JMenuItem。
JButton与AWT中的Button类似,JButton有一个直接子类为BasicArrowButton,是一个带有箭头的按钮(箭头有上、下、左、右四个方向)。
JToggleButton表示一个切换按钮,该类有两个直接子类是我们经常使用到的,JRadioButton—单选按钮和JCheckBox—复选按钮。
JMenuItem包括三个直接子类,它们都是与菜单相关的按钮。
程序[例8-3]演示了各个按钮的用法。
[8-3]
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.basic.BasicArrowButton;
import java.awt.event.*;
class ButtonsTest extends JFrame{
private JButton jbutton = new JButton("JButton");
private BasicArrowButton
basicArrowButtonUp= new BasicArrowButton(BasicArrowButton.NORTH),
basicArrowButtonDown= new BasicArrowButton(BasicArrowButton.SOUTH),
basicArrowButtonLeft= new BasicArrowButton(BasicArrowButton.WEST),
basicArrowButtonRight= new BasicArrowButton(BasicArrowButton.EAST);
private JToggleButton jtoggleButton = new JToggleButton("JToggleButton");
private JCheckBox jcheckBox = new JCheckBox("JCheckBox");
private JRadioButton jradioButton = new JRadioButton("JRadioButton");
public ButtonsTest(String title){
super(title);
Container contentPane = this.getContentPane();
contentPane.setLayout(new FlowLayout(5));
contentPane.add(jbutton);
contentPane.add(basicArrowButtonUp);
contentPane.add(basicArrowButtonDown);
contentPane.add(basicArrowButtonLeft);
contentPane.add(basicArrowButtonRight);
contentPane.add(jtoggleButton);
contentPane.add(jcheckBox);
contentPane.add(jradioButton);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public class Test8_3 {
public static void main(String[] args) {
new ButtonsTest("java各种按钮测试");
}
}
运行结果如下。
图8-4 例8-3运行结果
所有按钮组件单击时都可触发ActionListener事件,如果需要对这些按钮做某些处理,可构造事件处理器实现ActionListener进行事件处理。JRadioButton和JCheckBox在编程中经常使用到,我们会在8.4节选择组件中详细介绍。
(责任编辑:单月)