小博老师解析Java核心技术 ——JSwing选择型控件

[引言]

我们在学习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);

}

}

实例化窗体并且运行,看到窗体效果如下:

小博老师解析Java核心技术 ——JSwing选择型控件_第1张图片

但是仅仅这样的话,单选按钮之间是不会出现互斥效果的:

小博老师解析Java核心技术 ——JSwing选择型控件_第2张图片

用户可以同时选中多个属性,没有互斥效果,这是因为这两个单选按钮控件没有存放在同一个按钮分组中,我们在开发的时候千万要注意,需要出现互斥效果的单选按钮,必须要存放到同一个按钮分组中,在同一个按钮分组中的单选按钮控件,才会出现互斥效果。我们修改代码如下:

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);

}

}

实例化窗体并且运行,看到窗体效果如下:

小博老师解析Java核心技术 ——JSwing选择型控件_第3张图片

[步骤阅读三]组合框控件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);

}

}

实例化窗体并且运行,看到窗体效果如下:

小博老师解析Java核心技术 ——JSwing选择型控件_第4张图片

你可能感兴趣的:(小博老师解析Java核心技术 ——JSwing选择型控件)