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节选择组件中详细介绍。
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。