[引言]
我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的各类控件,今天主要讲解的是各类选择型控件。
[步骤阅读一]单选按钮控件JRadioButton
之前我们学习了JSwing中的文本类型控件,可以让用户自由输入文本信息,但是有的时候,我们需要让用户提供的信息,并不是随意输入的,而是有一定的范围让用户选择,比如用户的性别、兴趣爱好、所在城市等等场景,此时文本类型控件就有点无法满足我们的需求了,因此我们需要借助选择型控件。
首先我们来了解单选按钮控件JRadioButton,它的特点是可以提供多个选项,让用户在多个选项中选择一项,需要注意的是,用户只能选择其中的一个选项,如果用户修改了选项,之前的选项则会取消选中,这个效果我们一般称为互斥效果。我们通过一个简单的选择性别效果来体验下单选按钮控件,核心代码如下:
publicclassControllerFrameextendsJFrame{
publicControllerFrame(){
super("博为峰教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 实例化 单选按钮 控件
JRadioButtonrb1=newJRadioButton("男");
rb1.setBounds(20, 20, 40, 25);
add(rb1);
JRadioButtonrb2=newJRadioButton("女");
rb2.setBounds(65, 20, 40, 25);
add(rb2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
实例化窗体并且运行,看到窗体效果如下:
但是仅仅这样的话,单选按钮之间是不会出现互斥效果的:
用户可以同时选中多个属性,没有互斥效果,这是因为这两个单选按钮控件没有存放在同一个按钮分组中,我们在开发的时候千万要注意,需要出现互斥效果的单选按钮,必须要存放到同一个按钮分组中,在同一个按钮分组中的单选按钮控件,才会出现互斥效果。我们修改代码如下:
publicclassControllerFrameextendsJFrame{
publicControllerFrame(){
super("博为峰教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 实例化 单选按钮 控件
JRadioButtonrb1=newJRadioButton("男");
rb1.setBounds(20, 20, 40, 25);
add(rb1);
JRadioButtonrb2=newJRadioButton("女");
rb2.setBounds(65, 20, 40, 25);
add(rb2);
// 创建按钮分组
ButtonGroupgroup=newButtonGroup();
// 将单选按钮控件添加到按钮分组中
group.add(rb1);
group.add(rb2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
此时,单选按钮就会出现互斥效果了:
[步骤阅读二]复选框控件JCheckBox
接下来小博老师再带领大家了解复选框控件JCheckBox,它的特点是可以提供多个选项,让用户在多个选项中选择多项,需要注意的是,用户可以选择其中的多个选项。我们通过一个简单的选择学习课程的效果来体验下复选框控件,核心代码如下:
publicclassControllerFrameextendsJFrame{
publicControllerFrame(){
super("博为峰教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 实例化 单选按钮 控件
JCheckBoxcbx1=newJCheckBox("全栈Java课程");
cbx1.setBounds(20, 20, 150, 25);
add(cbx1);
JCheckBoxcbx2=newJCheckBox("全栈UI+Web前端课程");
cbx2.setBounds(20, 50, 150, 25);
add(cbx2);
JCheckBoxcbx3=newJCheckBox("全栈iOS课程");
cbx3.setBounds(20, 80, 150, 25);
add(cbx3);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
实例化窗体并且运行,看到窗体效果如下:
[步骤阅读三]组合框控件JComboBox
接下来小博老师再带领大家了解组合框控件JComboBox,它的特点和单选按钮控件有点类似,可以提供多个选项,让用户在多个选项中选择一项,但是如果提供的选项比较多时,会占用大量界面空间,因此组合框控件提供的选项是隐藏的,用户点击了下拉按钮时,选项才会下拉显示出来,选择完后,选项再次收缩隐藏。我们通过一个简单的选择学习校区的效果来体验下组合框控件,核心代码如下:
publicclassControllerFrameextendsJFrame{
publicControllerFrame(){
super("博为峰教育");
setBounds(200, 100, 300, 300);
setLayout(null);
// 为组合框控件准备选项
String[]options=newString[]{
"上海漕河泾校区",
"北京回龙观校区",
"深圳华强北校区",
"南京新街口校区",
"成都航空路校区",
};
// 实例化 组合框 控件
JComboBoxcbx=newJComboBox(options);
cbx.setBounds(20, 20, 150, 25);
add(cbx);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
实例化窗体并且运行,看到窗体效果如下: