您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第18章:图形界面】_单选钮:JRadioButton
发布时间:2021-01-17 17:09:45编辑:雪饮阅读()
单选按钮的实现
用javax.swing.JRadioButton可以实现单选按钮
import java.awt.Container ;
import java.awt.GridLayout ;
import javax.swing.JFrame ;
import javax.swing.JPanel ;
import javax.swing.JRadioButton ;
import javax.swing.BorderFactory ;
class MyRadio{
private JFrame frame = new JFrame("Welcome TO kasumi") ;
private Container cont = frame.getContentPane() ;
private JRadioButton jrb1 = new JRadioButton("kasumi") ;
private JRadioButton jrb2 = new JRadioButton("snowDrink") ;
private JRadioButton jrb3 = new JRadioButton("ayane") ;
private JPanel pan = new JPanel() ;
public MyRadio(){
// 设置一个边框的显示条
pan.setBorder(BorderFactory.createTitledBorder("请选择你喜欢的角色")) ;
pan.setLayout(new GridLayout(1,3)) ;
pan.add(this.jrb1) ;
pan.add(this.jrb2) ;
pan.add(this.jrb3) ;
cont.add(pan) ;
this.frame.setSize(300,80) ;
this.frame.setVisible(true) ;
}
};
public class TestJava{
public static void main(String args[]){
new MyRadio() ;
}
}
按钮组的实现
使用javax.swing.ButtonGroup可以实现单选按钮的可用性,上面实现的单选按钮仅空有样式却没有功效,可以每个选项都能选择,这和html中的单选是一样的,必须设定每个单选项属于同一个按钮组才能真正实现单选。
import java.awt.Container ;
import java.awt.GridLayout ;
import javax.swing.JFrame ;
import javax.swing.JPanel ;
import javax.swing.JRadioButton ;
import javax.swing.ButtonGroup ;
import javax.swing.BorderFactory ;
class MyRadio{
private JFrame frame = new JFrame("Welcome TO kasumi") ;
private Container cont = frame.getContentPane() ;
private JRadioButton jrb1 = new JRadioButton("kasumi") ;
private JRadioButton jrb2 = new JRadioButton("snowDrink") ;
private JRadioButton jrb3 = new JRadioButton("ayane") ;
private JPanel pan = new JPanel() ;
public MyRadio(){
pan.setBorder(BorderFactory.createTitledBorder("请选择你喜欢的角色")) ;
pan.setLayout(new GridLayout(1,3)) ;
pan.add(this.jrb1) ;
pan.add(this.jrb2) ;
pan.add(this.jrb3) ;
ButtonGroup group = new ButtonGroup() ;
group.add(this.jrb1) ;
group.add(this.jrb2) ;
group.add(this.jrb3) ;
cont.add(pan) ;
this.frame.setSize(300,80) ;
this.frame.setVisible(true) ;
}
};
public class TestJava{
public static void main(String args[]){
new MyRadio() ;
}
}
单选按钮切换事件监听
实现java.awt.event.ItemListener接口的itemStateChanged即可对单选按钮切换事件进行监听
import java.awt.GridLayout ;
import java.awt.event.ItemListener ;
import java.awt.event.ItemEvent ;
import javax.swing.JFrame ;
import javax.swing.JRadioButton ;
import javax.swing.ButtonGroup ;
import javax.swing.ImageIcon ;
import javax.swing.JLabel ;
import javax.swing.JPanel ;
class MyRadio implements ItemListener{
//设置默认选中项图片
private JLabel jlab = new JLabel("",new ImageIcon("d:/8.jpg"),JLabel.CENTER);
//图片单选框
private JRadioButton kasumijb = new JRadioButton("kasumi",new ImageIcon("d:/8.jpg"),true) ;
private JRadioButton momijijb = new JRadioButton("momiji",new ImageIcon("d:/9.jpg"),false) ;
public MyRadio(){
JFrame frame = new JFrame("Welcome TO kasumi") ;
frame.setLayout(new GridLayout(2,1)) ;
//图片单选框加入到单选按钮组
ButtonGroup group = new ButtonGroup() ;
group.add(kasumijb) ;
group.add(momijijb) ;
//监听这两个单选按钮
kasumijb.addItemListener(this) ;
momijijb.addItemListener(this) ;
JPanel pan = new JPanel() ;
pan.setLayout(new GridLayout(1,2)) ;
pan.add(kasumijb);
pan.add(momijijb);
frame.add(pan);
frame.add(jlab);
frame.setSize(300,80) ;
frame.setVisible(true) ;
}
//实现接口的itemStateChanged方法用于接收单选按钮切换逻辑处理
public void itemStateChanged(ItemEvent e){
if(e.getSource()==kasumijb){
jlab.setIcon(kasumijb.getIcon());
}
if(e.getSource()==momijijb){
jlab.setIcon(momijijb.getIcon());
}
}
};
public class TestJava{
public static void main(String args[]){
new MyRadio() ;
}
}
关键字词:java,JRadioButton