1.JButton类的构造方法与常用方法
(1)构造方法与常用方法分别见表5-9和表5-10。
表5-9 JButton类的构造方法

表5-10 JButton类的常用方法

(2)关于ImageIcon类的使用
Swing控件与Awt控件的主要区别之一是可以使用图标(ImageIcon)。下面介绍有关的使用方法:

建立ImageIcon类对象,其中copy.gif是一个放入按钮JButton的图标。

建立按钮对象,名字(字符串)为"Click Me",图标对象为buttonIcon。

将上述字符串在垂直方向上设置为中心位置。

将上述字符串在水平方向上安放在整个按钮的右端,从而,图标在左端。如图5-8所示。
若要将文字串放在按钮的左端,图标在右端,就要设置:

如图5-9所示。

图5-8 参数RIGHT设置说明

图5-9 参数LEFT设置说明(https://www.xing528.com)
下面的程序将给出具有文字和图标的新型Swing按钮的使用方法。
2.程序举例
【例5-7】Swing按钮及其文字和图标的使用。


运行这个程序产生如图5-10a所示的结果,单击按钮“单击此处”产生如图5-10b所示的结果。在程序中加入了按钮“退出”及其监视器,单击该按钮就可以退出程序了。

图5-10 按钮及其单击结果
a)程序运行结果 (b)单击按钮“单击此处”后结果
[编程说明]
(1)变量的作用域
语句(5.2.10)和(5.2.11)在构造方法外声明变量:

而在构造方法中进行实例化。注意,本章到目前为止,除例5-7外所有的控件都在构造方法中声明并实例化。那么,为什么要将这3个变量在构造方法外声明呢?根据在第2章2.3.3节介绍的变量的作用域,这3个变量text,button,exitbutton的作用域是整个SwingButton类。如图5-11所示,这3个变量的作用域就是最外层的一对括号内,常称这种整个类的变量为全局变量。
注意,在方法actionPerformed()内需要使用这3个变量。也就是说,方法actionPerformed()后的一对花括号内部应该属于这3个变量的作用域。否则,这3个变量将无法应用。比如,若这3个变量都在构造方法内声明(参见图5-12),则3个变量text,button,exitbutton的作用域仅限于构造方法SwingButton()的一对括号内部,它们只在这个局部范围内起作用。而方法actionPerformed()内部不属于这3个变量的作用域,所以,处于方法actionPerformed()内部的这3个变量将无法起作用,常称这种情况为不可见。这就是为什么要将这3个变量在构造方法外声明成为全局变量的原因。

图5-11 全局变量的作用域

图5-12 局部变量与变量的不可见
(2)setVerticalTextPosition(AbstractButton.CENTER)
方法setVerticalTextPosition(int align)(见表5-12),其中变量align有AbstractButton.TOP(上),AbstractButton.CENTER(中)和AbstractButton.BOTTOM(下)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
