一、关键代码
(一)、单选按钮组件
- 复选框“◻”,即方框可可勾选的按钮,和单选框“O”(圆形可勾选按钮)不同的只是外形和代码的单词不同,原理流程却相似。如都要引入相关的包类,以创建组件等。若复选框也和单选框一样使用按钮组,也可以达成单选框的效果。当然反过来,圆形可勾选按钮(单选框)也可以作为复选框的功能来使用。圆形可勾选按钮(单选框)具体可以看往篇“按钮(圆形可勾选按钮)”的博文。
- 添加如下代码时,相关联的几个按钮中只能勾选一个按钮。比如,勾选按钮c_box_1后再勾选按钮c_box_2后,则按钮c_box_1的勾选效果便会取消,最后也只有按钮c_box_2则处于勾选状态。这里根据代码
JCheckBox
字面没有关于按钮的内容,但细看字面可翻译为:java的可勾选盒子,也就是复选框。流程原理和单选框相同,创建的组件(按钮,等)都要放入到group(组)中,以达到几个按钮只能勾选一个的效果。
// 单选按钮组件
ButtonGroup group_1=new ButtonGroup();// 按钮 组
group_1.add(c_box_1);
group_1.add(c_box_2);
group_1.add(c_box_3);
- 注意:使用相应的代码功能需要添加相应的功能包。以上的代码则需要在源码前添加如下代码类包:
import javax.swing.JCheckBox;// 复选框
(二)、按钮默认勾选
- 这里代码是默认勾选按钮c_box_1。
- 默认情况下,按钮初始状态是没有勾选的。想默认勾选哪个按钮,需要如下代码:
c_box_1.setSelected(true);// 默认选中,Selected(选中)。
二、简单说明
大致流程思想:
- 创建一个窗体,创建一个容器,将容器嵌入窗体中。
- 容器设置布局(本文:流布局)。
- 在容器中新建圆形可勾选的按钮组件,多个。
- 添加单选按钮组件。
- 设置默认勾选按钮。
- 新建监听器,创建事件,编辑事件的内容,本文用的是信息框。
- 此外,注意添加窗体和容器的相关功能的包类,import ····等这些。或则使用继承JFrame窗体类的方法也可以,作者为让逻辑感更好一个类一个类的设置引用。望往后能熟能生巧。
三、流程图
四、源码
(一)、源码A
/* 【程序思想】
* 按钮 复选框
1、窗体
2、按钮,方框可打勾按钮
3、按钮,复选框
*/
import java.awt.Container;// 容器
import java.awt.FlowLayout;// 流布局
import java.awt.event.ActionListener;// 监听器
import java.awt.event.ActionEvent;// 事件
import javax.swing.JFrame;// 窗体
import javax.swing.JCheckBox;// 复选框
import javax.swing.JOptionPane;// 消息框
import javax.swing.JButton;// 按钮
import javax.swing.ButtonGroup;// 按钮组
class Demo{
JFrame f=new JFrame();// 创建窗体
Container c;// 容器
/*
way2
设置容器
复选框
*/
void way2(){
// Content(包含),pane(窗格)
c=f.getContentPane();// 容器c嵌入窗体f中
c.setLayout(new FlowLayout());// 布局,流布局,flow(流动)
JCheckBox c_box_1=new JCheckBox("按钮1");// 复选框,check(打勾)
JCheckBox c_box_2=new JCheckBox("按钮2");// check(打勾)
JCheckBox c_box_3=new JCheckBox("按钮3");// check(打勾)
c.add(c_box_1);
c.add(c_box_2);
c.add(c_box_3);
// 单选按钮组件
/* ButtonGroup group_1=new ButtonGroup();// 按钮 组
group_1.add(c_box_1);
group_1.add(c_box_2);
group_1.add(c_box_3);
*/
c_box_1.setSelected(true);// 默认选中,Selected(选中)。
JButton btn_0=new JButton("点击触发事件");
// action(动作),listener(监听)
btn_0.addActionListener(new ActionListener(){// 增加监听动作
// performed(执行)
public void actionPerformed(ActionEvent e){// 满足 动作 事件 的选择后触发以下事件
// 信息框,option(选择),message(消息),dialog(对话框)
JOptionPane.showMessageDialog(f,
c_box_1.getText()+"是否选中:"+c_box_1.isSelected()+"\n"+
c_box_2.getText()+"是否选中:"+c_box_2.isSelected()+"\n"+
c_box_3.getText()+"是否选中:"+c_box_3.isSelected()
);
}
});
c.add(btn_0);
}
/*
way1
窗体的基本属性
*/
void way1(){
f.setBounds(400,200,500,400);// 坐标、尺寸
// Default(默认),Operation(操作)
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点×即关闭
}
public static void main(String[] args) {
Demo d=new Demo();
d.way1();// 窗体基本属性
d.way2();// 容器。复选框。
d.f.setVisible(true);// 窗体可见
}
}
(二)、源码A的运行效果
-
1.默认效果如下图:
-
2.再点击按钮2,点击“点击触发事件”,弹出信息框。如下图:
注意:单选框的功能已经被注释,程序运行不会有单选的效果,想实现单选框的效果取消单选组件的相关代码的注释便可。
五、结语
复选框的原理和单选框的原理相似,单选框按钮的内容,具体可浏览上一篇博文《按钮(圆形可勾选按钮)》。虽说是单选框和复选框,但其实这两也只是代码中单词翻译的字面意识不同。真正实现单选的功能,只是添加了一个按钮组ButtonGroup
类的功能。不加这个单选功能时,方框或者圆形的可勾选按钮组(单选框和复选框)都可以是复选,也就是多个按钮可同时勾选;而添加了单选的功能,方框或者圆形的可勾选按钮组(单选框和复选框)都只能是单个按钮勾选了。
六、定位日期
2022.4.4;19:42