Swing增加了一些差异范例的按钮,而且它同样可以修改选择组件的布局:所有的按钮、复选框、单选钮,甚至从AbstractButton处担任的菜单项(这是因为菜单项一般被包括在个中,它大概会被改造定名为“AbstractChooser”可能沟通的什么名字)。我们会留意利用菜单项的轻便,下面的例子展示了差异范例的可用的按钮:
//: Buttons.java // Various Swing buttons package c13.swing; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.plaf.basic.*; import javax.swing.border.*; public class Buttons extends JPanel { JButton jb = new JButton("JButton"); BasicArrowButton up = new BasicArrowButton( BasicArrowButton.NORTH), down = new BasicArrowButton( BasicArrowButton.SOUTH), right = new BasicArrowButton( BasicArrowButton.EAST), left = new BasicArrowButton( BasicArrowButton.WEST); public Buttons() { add(jb); add(new JToggleButton("JToggleButton")); add(new JCheckBox("JCheckBox")); add(new JRadioButton("JRadioButton")); JPanel jp = new JPanel(); jp.setBorder(new TitledBorder("Directions")); jp.add(up); jp.add(down); jp.add(left); jp.add(right); add(jp); } public static void main(String args[]) { Show.inFrame(new Buttons(), 300, 200); } } ///:~
JButton看起来像AWT按钮,但它没有更多可运行的成果(像我们后头将看到的如插手图像等)。在com.sun.java.swing.basic里,有一个更符合的BasicArrowButton按钮,但奈何测试它呢?有两种范例的“指针”刚好请求箭头按钮利用:Spinner修改一其间断值,而且StringSpinner通过一个字符串数组来移动(当它达到数组底部时,甚至会自动地封装)。ActionListeners附着在箭头按钮上展示它利用的这些相关指针:因为它们是Bean,我们将等候操作要领名,正好捕获并配置它们的值。
当我们运行这个措施例子时,我们会发明触发按钮保持它最新状态,开或时关。但复选框和单选钮每一个行动都沟通,选中或没选中(它们从JToggleButton处担任)。