说到Java的按钮,我们最熟悉的应该是JButton按钮,这种按钮当按下后会自动弹起,只能用于每次按下触发一次指定动作的情况,不能用于记录状态。Swing中还另外提供了一种可以记录状态的按钮——JToggleButton,当按钮不断被单击时可以像开关一样在开与关两种状态之间切换。
	JToggleButton经常被用来实现那些需要在两种状态之间切换的按钮,即当单击按钮后,其处于一种状态,再次单击后其回到原来的状态,就好像某些家用电器的开关一样,在默认情况下,JToggleButton与JButton的外观基本相同,只有被单击后才有所不同,JButton单击后才会自动弹回,而JToggleButton不会,其一直到下一次单击才弹回。
	JToggleButton类提供了八个构造器,因此在创建该按钮的时候有更多的选择
public JToggleButton();//创建一个没有文本与图标,并且未被按下的开关按钮

public JToggleButton(Icon icon); //创建一个具有指定图标的开关按钮,参数icon为在按钮上显示的图标

public JToggleButton(Icon icon,boolean selected); //创建一个具有指定图标和初始状态的开关按钮。参数icon为在按钮上显示的图标;参数selected为制定的初始状态,该值若为true,则按钮最初是按下的

public JToggleButton(String text); //创建一个具有指定文本的开关按钮,参数text为在按钮上显示的文本信息

public JToggleButton(String text,boolean selected); //创建一个具有指定文本和初始状态的开关按钮。参数text为在按钮上显示的文本信息;参数selected为指定的初始状态,该值若为true,则按钮最初是按下的

public JToggleButton(Action a);//该构造器将根据指定的Action创建一个开关按钮,参数a为指定的Action

public JToggleButton(String text,Icon icon);//创建一个具有指定文本和图标的开关按钮。参数text为在按钮上显示的文本信息,参数icon为在按钮上显示的图标

public JToggleButton(String text,Icon icon,boolean selected); //创建一个具有指定文本、图标和初始状态的开关按钮。参数text为在按钮上显示的文本信息;参数icon为在按钮上显示的图标;参数selected为指定的初始状态,该值若为true,则按钮最初是按下的

JToggleButton类的常用方法

public boolean isSelected(); //返回按钮的状态。如果按钮是按下的返回true,否则返回false

public void setSelected(boolean b); //设置按钮的状态。如果参数b为true则设置为按下状态,为false则设置为没有按下的状态。但要特别注意的是,该方法仅设置按钮的状态,不会触发动作事件

public Icon getPressedIcon(); //返回按钮被单击时的图标

public void setPressedIcon(Icon pressedIcon); //设置按钮被单击时的图标,参数pressedIcon为一个指定的图标

public Icon getSelectedIcon(); //返回按钮被选中状态的图标,所谓选中状态是指开关按钮状态为true,也就是按下后的情况

public void setSelectedIcon(Icon selectedIcon); //设置按钮被选中状态的图标,参数selectedIcon为一个指定的图标

除了能够保存状态外,开关按钮跟JButton并没有多大的区别,所以在使用时可以把它当成可以保留状态的JButton来使用。