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