一、关键代码
(一)、单选按钮组件
- 不写下方代码时,设置的多个按钮可以分别勾选,想勾哪个就勾哪个,不勾哪个就不勾哪个,互不干扰。
- 添加如下代码时,相关联的几个按钮中只能勾选一个按钮。比如,勾选按钮btn_1后再勾选按钮btn_2后,则按钮btn_1的勾选效果便会取消,最后也只有按钮btn_2则处于勾选状态。
// 单选框组合,group(组,集合)
ButtonGroup group_1=new ButtonGroup();// 按钮 组
group_1.add(btn_1);
group_1.add(btn_2);
group_1.add(btn_3);
- 注意:使用相应的代码功能需要添加相应的功能包。以上的代码则需要在源码前添加如下代码类包:
import javax.swing.ButtonGroup;// 按钮 组
(二)、按钮默认勾选
- 这里代码是默认勾选按钮btn_2。
- 默认情况下,按钮初始状态是没有勾选的。想默认勾选哪个按钮,需要如下代码:
btn_2.setSelected(true);// 按钮2默认选中,selected(选中)
二、简单说明
大致流程思想。创建一个窗体,创建一个容器,将容器嵌入窗体中。在容器中新建圆形可勾选的按钮组件,多个。添加单选按钮组件。设置默认勾选按钮。新建监听器,创建事件,编辑事件的内容,本文用的是信息框。此外,注意添加窗体和容器的相关功能的包类,import ····等这些。或则使用继承方法也可以,作者为学习记忆更深便不使用继承类的方法。
三、流程图
四、源码
(一)、源码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.JRadioButton;// 选择按钮
import javax.swing.ButtonGroup;// 按钮 集合
import javax.swing.JButton;// 按钮
import javax.swing.JOptionPane;// 选择 窗格
class Demo{
JFrame f=new JFrame();// 窗体
Container c;// 容器
/*
way2
1、容器
2、单选按钮
*/
void way2(){
c=f.getContentPane();// content(包含),pane(窗格),容器嵌入窗体
c.setLayout(new FlowLayout());// 设置布局(流布局)
// radio(收音机)
JRadioButton btn_1=new JRadioButton("按钮1");// 单选按钮
JRadioButton btn_2=new JRadioButton("按钮2");
JRadioButton btn_3=new JRadioButton("按钮3");
c.add(btn_1);
c.add(btn_2);
c.add(btn_3);
// 单选框组合,group(组,集合)
ButtonGroup group_1=new ButtonGroup();// 按钮 组
group_1.add(btn_1);
group_1.add(btn_2);
group_1.add(btn_3);
btn_2.setSelected(true);// 按钮2默认选中,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,btn_1.getText()+"是否选中:"+btn_1.isSelected()
+"\n"+btn_2.getText()+"是否选中:"+btn_2.isSelected()
+"\n"+btn_3.getText()+"是否选中:"+btn_3.isSelected()
);
// 只要一个信息框,以下代码每行就是一个信息框,因此改进为上方加了"\n"的代码
//JOptionPane.showMessageDialog(f,btn_2.getText()+"是否选中:"+btn_2.isSelected());// 弹出信息框
//JOptionPane.showMessageDialog(f,btn_3.getText()+"是否选中:"+btn_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.点击按钮1后,点击“点击触发事件”,弹出信息框。如下:
五、结语
很多内容反而是源码中的注释说明更能让人知道文章的内容是啥。通过源码的编译练习、试验,一个章节内容完成,内容的成果便是相关源码。硬是要另外添加文字说明,会有些鸡肋,毕竟有注释便足够。但有时候,一定的文字说明还是有必要的。因为随着时间的推移,以及自己写的东西会越来越多。当后面需要回顾拾起曾经的知识时,恰好的文字引导可以让人更快的拾起曾经摸索过的知识内容,以省下些时间。亲身动手操作一次,比看多次的效果要好的,亲手实操有时候会遇到许多意想不到的错误,而这些错误会增加知识经验的积累。
六、定位日期
2022.4.3;21:38