java核心技术卷 之单选按钮
来源:互联网 发布:虾米音乐解绑淘宝 编辑:程序博客网 时间:2024/06/06 02:25
在前一个例子中,对于两个复选框,用户既可以选择一个、两个,也可以两个都不选。在很多情况下,我们需要用户只选择几个选项当中的 一个。与用户选择另一项的时候,前一项就自动地取消选择。这样一组选框通常称为单选按钮组(Radio Button Group),这是因为这些按钮的工作很像收音机 上的电台选择按钮。当按下一个按钮时,前一个按下的按钮就会自动弹起。
在Swing中,实现单选按钮组非常简中.。为单选按钮组构造一个ButtonGroup的对象。 然后,再将JRadioButton类型的对象添加到按钮组中按钮组负责在新按钮被按下时,取消前一个被按下的按钮的选择状态。
ButtonCroup group = new ButtonGroup();
JRadioButton smallButton = new JRadioButton("SmallM", false);
group.add(smallButton);
JRadioButton mediumButton = new JRadioButton("Medium",true);
group.add(nediumButton);
构造器的第二个参数为true表明这个按钮初始状态是被选择,其他按钮构造器的这个参数为false。注意,按钮组仅仅控制按钮的行为,如果想把这些按钮组织在一起布局,需要把它们添加到容器中,如JPanel。
单选按钮的事件通知机制与其他按钮一样用户点击一个单选按钮时,这个按钮将产生一个动作事件。在示例中,定义了一个动作监听器用来把字体大小设置为特定值:
ActionListener listener = new ActionListenerQ {
public void actionPerfomied(ActionEvent event)
{
// size refers to the final parameter of the addRadioButton method
label.setFont(new FontrSerif', Font.PLAIN, size));
}
};
用这个监听器与复选框屮的监听器做一个对比。每个单选按钮都对应一个不同的监听器对象。每个监听器都非常清楚所要做的事情——把字体尺寸设置为一个特定值。在复选框示例中,使用的是一种不同的方法,两个复选框共享一个动作监听器。这个监听器调用一个方法来检査两个复选框的当前状态。
示例程序:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Created by IBM on 2017/9/21.
*/
public class RadioButtonFrame extends JFrame{
private JPanel buttonPanel;
private ButtonGroup group;
private JLabel label;
private static final int DEFAULT_SIZE=36;
public static void main(String[]args){
RadioButtonFrame buttonFrame=new RadioButtonFrame();
buttonFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
buttonFrame.setVisible(true);
}
public RadioButtonFrame(){
label=new JLabel("The quick brown fox jumps over the lazy dog.");
label.setFont(new Font("Serif", Font.PLAIN,DEFAULT_SIZE));
add(label,BorderLayout.CENTER);
buttonPanel=new JPanel();
group=new ButtonGroup();
addRadioButton("Small",8);
addRadioButton("Medium",12);
addRadioButton("Large",18);
addRadioButton("Extra large",36);
add(buttonPanel,BorderLayout.SOUTH);
pack();
}
public void addRadioButton(String name,final int size){
boolean selected=size==DEFAULT_SIZE;
JRadioButton button=new JRadioButton(name,selected);
group.add(button);
buttonPanel.add(button);
ActionListener listener=new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
label.setFont(new Font("Serif",Font.PLAIN,size));
}
};
button.addActionListener(listener);
}
}
运行结果:
• JRadioButton(String label, Icon icon)
构造一个单选按钮,初始没有被选择。
• JRadioButton(String label, boolean state)
用给定的标签和初始状态构造一个单选按扭
• void add( Abstract Butt on b)
将按钮添加到组中。
• ButtonModel getSelecti on()
返间被选择的按扭的按钮模型。
• Stri ng getActi onCommand()
回按钮模型的动作命令。
“ voi d setActi onCommand(Stri ng s)
设置按钮及其模型的动作命令
- java核心技术卷 之单选按钮
- java核心技术卷 之处理按钮点击事件
- java核心技术卷 之JFrame
- java核心技术卷 之菜单
- java核心技术卷 之工具栏
- java核心技术卷 之创建框架
- java核心技术卷 之框架属性
- java核心技术卷 之事件处理基础
- java核心技术卷 之布局管理概述
- java核心技术卷 之网格布局
- java核心技术卷 之文本输入
- java核心技术卷 之复选框
- Java核心技术卷之位操作
- java核心技术卷 之创建对话框
- java核心技术卷 之对话框数据交换
- java核心技术卷 之异常分类
- java核心技术卷 之捕获异常
- java核心技术卷 之泛型程序设计
- 简书App适配iOS 11
- TabLayout横滑菜单
- 第四周项目一—建立单链表
- Python 查找指定类型的文件
- Redhat 企业版更改IP地址,网关,DNS和MAC地址
- java核心技术卷 之单选按钮
- Beanstalk 协议入门
- UVA 116 Unidirectional TSP (多阶段决策问题,DP解决)
- bzoj1986 [USACO2004 Dec] Dividing the Path 划区灌溉(dp+单调队列优化)
- java中的垃圾回收器(GC)
- Java日期格式Check
- 解决Jsoup解析html页面空格( )解析为乱码(问号)
- iOS之view的背景绘制渐变色、文字渐变
- 复杂密码生成工具apg