首页 理论教育 文本组件、复选框和单选框使用示例

文本组件、复选框和单选框使用示例

时间:2023-11-16 理论教育 版权反馈
【摘要】:文件9-17Example17.java执行结果图9.17执行结果2. 文本组件文本组件用于接收用户输入的信息或向用户展示信息,其中包括文本框、文本域等,它们都有一个共同父类JTextComponent。文件9-18Example18.java执行结果图9.18执行结果Swing 中提供了用于仅供展示的标签组件。复选框与单选框组件。下面通过一个案例来演示JCheckBox 组件的用法,如文件9-20 所示。文件9-20 Example20.java执行结果图9.19执行结果JRadionButton 组件。JRadioButton 组件被称为单选按钮,与J

文本组件、复选框和单选框使用示例

1. 面板组件(JPanel)

(1)介绍。

在图形用户界面编程中,如果只是普通的组件布局,那么用前面讲的三种布局管理器就可以解决,但当布局要求比较复杂时,就需要使用布局管理器的组合使用。

(2)使用。

JPanel:面板组件,非顶层容器,一个界面只可以有一个JFrame 窗体组件,但可以有多个JPanel 面板组件,而JPanel 上也可以使用FlowLayout、BorderLayout、GirdLayout 等各种布局管理器,这样可以组合使用达到较为复杂的布局效果。

JScrollPane 类的常用构造方法如表9-7 所示。

表9-7 JScrollPane 类的常用构造方法

表9-7 中列出了JScrollPane 的三种构造方法,其中,第一种构造方法用于创建一个空的JScrollPane 面板;第二种构造方法用于创建显示指定组件的JScrollPane 面板,这两种方法都比较简单;第三种构造方法是在第二种构造方法的基础上指定滚动条策略。如果在构造方法中没用指定显示组件和滚动条策略,也可以使用JScrollPane 提供的方法进行设置,如表9-8所示。

表9-8 没用指定显示组件和滚动条策略时可使用的构造方法

表9-9 JScrollPane 滚动策略常量值

【例9.17】下面通过案例来演示一下如何向中间容器添加按钮,如文件9-17 所示。

文件9-17 Example17.java

执行结果

图9.17 【例9.17】执行结果

2. 文本组件

文本组件用于接收用户输入的信息或向用户展示信息,其中包括文本框(JTextField)、文本域(JTextArea)等,它们都有一个共同父类JTextComponent。JTextComponent 是一个抽象类,它提供了文本组件常用的方法,如表9-10 所示。

表9-10 列出了几种对文本组件进行操作的方法,其中包括选中文本内容、设置文本内容以及获取文本内容等。由于JTextField 和JTextArea 这两个文本组件都继承了JTextComponent类,因此它们都可使用表9-8 中的方法,但它们在使用上还有一定的区别。接下来就对这两个文本组件进行详细讲解。

表9-10 文本组件常用的方法

(1)文本框(JTextField)。

JTextField 称为文本框,它只能接收单行文本的输入。JTextField 类的常用构造方法如表9-11 所示。

表9-11 JTextField 类的常用构造方法

(2)文本域(JTextArea)。

JTextArea 称为文本域,它能接收多行文本的输入,使用JTextArea 构造方法创建对象时可以设定区域的行数、列数。JTextArea 类常用构造方法如表9-12 所示。

表9-12 JTextArea 类常用构造方法

表9-12 中列出了四种JTextArea 的构造方法,在创建文本域时,通常会使用最后两种构造方法,指定文本域的行数和列数。

3. 几个常用组件

在图形用户界面编程中,我们常常会提供用户登录界面,比如登录到会员管理系统,登录到工资管理系统、仓库管理系统等,这时候就会用到以下几个常见组件。

① 文本框(JTextField)。

② 密码框(JPasswordField)。

③ 标签(JLable)。

【例9.18】下面编写一个聊天窗口,演示文本组件JTextField 和JTextArea 的使用,如文件9-18 所示。

文件9-18 Example18.java

执行结果

图9.18 【例9.18】执行结果

Swing 中提供了用于仅供展示的标签组件。标签组件主要用到的是JLabel 组件。JLabel组件可以显示文本、图像,还可以设置标签内容的垂直和水平对齐方式。常用的构造方法如表9-13 所示。

表9-13 JLabel 组件的构造方法:

【例9.19】下面通过一个案例来演示创建一个JLabel 标签组件,用来展示图片,请查看文件9-19。

文件9-19 example19.java

执行结果

4. 按钮组件(www.xing528.com)

在Swing 中,常见的按钮组件有JButton、JCheckBox、JRadioButton 等,它们都是抽象类AbstractButton 类的直接或间接子类。在AbstractButton 类中提供了按钮组件通用的一些方法,如表9-14 所示。

表9-14 按钮组件的通用方法

(1)JCheckBox 组件。

JCheckBox 组件被称为复选框,它有选中(是)/未选中(非)两种状态,如果用户想接收的输入只有“是”和“非”,则可以通过复选框来切换状态。如果复选框有多个,则用户可以选中其中一个或者多个。

表9-15 列举了创建JCheckBox 对象时常用的构造方法。

表9-15 JCheckBox 类的常用构造方法

表9-15 列出了用于创建JCheckBox 对象的三种构造方法。其中,第一种构造方法没有指定复选框的文本信息以及状态,如果想设置文本信息,可以通过调用JCheckBox 从父类继承的方法来进行设置。例如调用setText(String text)来设置复选框文本信息,调用setSelected(boolean b)方法来设置复选框状态(是否被选中),也可以调用isSelected()方法来判断复选框是否被选中。第二种和第三种构造方法都指定了复选框的文本信息,而且第三种构造方法还指定了复选框初始化状态是否被选中。

(2)复选框与单选框组件。

在图形用户界面编程中,常常会提供用户注册界面,这时候就会用到几个常用组件:① 复选框组件(JCheckBox);

② 单选框组件(JRadioBuutton)。

特别说明:

同一组单选按钮必须先创建ButtonGroup,然后把单选框组件放入ButtonGroup 中。【例9.20】下面通过一个案例来演示JCheckBox 组件的用法,如文件9-20 所示。

文件9-20  Example20.java

执行结果

图9.19 【例9.20】执行结果

(3)JRadionButton 组件。

JRadioButton 组件被称为单选按钮,与JCheckBox 复选框不同的是,单选按钮只能选中一个。就像随身听上的播放和快进按钮,当按下一个按钮时,先前按下的按钮就会自动弹起。对于JRadioButton 按钮来说,当一个按钮被选中时,先前被选中的按钮就会自动取消选中。

由于JRadioButton 组件本身并不具备这种功能,因此,若想实现JRadioButton 按钮之间的互斥,需要使用javax.swing.ButtonGroup 类。它是一个不可见的组件,不需要将其增加到容器中显示,只是在逻辑上表示一个单选按钮组。将多个JRadioButton 按钮添加到同一个单选按钮组对象中,就能实现按钮的单选功能。表9-14 列举了创建JRadioButton 对象常见的构造方法。

表9-14 JRadioButton 类的常用构造方法

【例9.21】下面通过一个案例来演示JRadioButton 组件的用法,如文件9-21 所示。

文件9-21 Example21.java

执行结果

图9.20 【例9.21】执行结果

5. JComboBox 组件

JComboBox 组件被称为组合框或者下拉列表框,它将所有选项折叠收藏在一起,默认显示的是第一个添加的选项。当用户单击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。

JComboBox 组合框组件分为可编辑和不可编辑两种形式。对于不可编辑的组合框,用户只能在现有的选项列表中进行选择;对于可编辑的组合框,用户既可以在现有的选项中选择,也可以自己输入新的内容。需要注意的是,自己输入的内容只能作为当前项显示,并不会添加到组合框的选项列表中。表9-15 列举JComboBox 类的常用构造方法。

表9-15 JComboBox 类的常用构造方法

在使用JComboBox 时,需要用到它的一些常用方法,如表9-16 所示。

表9-16 JComboBox 的常用方法

在图形用户界面编程中,常常会提供用户调查界面,这个时候会用到:

下拉框组件(JComboBox);

② 列表框组件(JList);

③ 滚动窗格组件(JScrollPane)。

特别说明:

一般来说,列表框组件+滚动窗格组件是结合使用的,目的是让列表框中的选项可以有滚动条支持。

【例9.22】下面通过一个案例来演示JComboBox 组件的具体用法,如文件9-22 所示。

文件9-22 Example22.java

执行结果

图9.21 【例9.22】执行结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈