设为首页 加入收藏

TOP

2012年计算机二级Java选择组件学习教程
2014-11-03 09:15:08 来源: 作者: 【 】 浏览:49
Tags:2012年 计算机 二级 Java 选择 组件 学习教程

8.4 选择组件


  经过上节的学习,我们知道了如何利用文本输入组件获取用户输入的文本,但是,在很多情况下,用户可能更倾向于你给他一些选择,而不是让他自己输入这些信息。Java中提供了这样的组件,可以使用户不需输入文字而与GUI界面进行交互。


  8.4.1 JCheckBox 复选框


  JCheckBox是从JToggleButton类中派生出来的,具有两种状态,通常用于显示文本,并有一个指示是否被选中的方形按钮。


  JCheckBox的构造方法较多,详见下表8-7。


表8-7 JCheckBox构造方法


  构造方法中各参数意义


  text - 复选框的文本


  icon - 要显示的 Icon 图像


  selected - 指示最初选择状态的 boolean 值。如果该参数为 true,则复选框被选定


  当JCheckBox被选中或取消选中时,会触发一个事件,该事件就是ActionEvent,如果想根据JCheckBox的选中情况进行不同处理,可以编写实现ActionListener接口的类进行处理。


  8.4.2 JRadioButton单选按钮


  单选按钮JRadioButton与复选按钮JCheckBox几乎是相同的,都是从JToggleButton类中派生出来的,都具有两种状态,主要用于显示文本。JRadioButton有一个指示是否被选中的圆形按钮。不同之处在于单选按钮机会总是用于显示一组互相排斥的选项(如某人的性别,男、女只能选择一项),所以,JRadioButton通常位于一个ButtonGroup按钮组中,不在按钮组中的JRadioButton也就失去了JRadioButton的意义。


  在同一个ButtonGroup按钮组种的单选按钮,任何时刻最多有一个单选按钮被选中,因此,如果我们创建的多个单选按钮其初始状态都是选中状态,则最先加入ButtonGroup按钮组的单选按钮的选中状态被保留,其后加入到ButtonGroup按钮组中的其他单选按钮的选中状态被取消。选中状态的保留与加入到ButtonGroup中的次序有关,与加入到其要显示的父容器顺序无关。


  如下代码中


  Container contentPane = this.getContentPane();


  JRadioButton r1 = new JRadioButton("a",true);


  JRadioButton r2 = new JRadioButton("b",true);


  JRadioButton r3 = new JRadioButton("c",true);


  ButtonGroup button = new ButtonGroup();


  button.add(r3);


  button.add(r2);


  button.add(r1);


  contentPane.setLayout(new FlowLayout());


  contentPane.add(r2);


  contentPane.add(r1);


  contentPane.add(r3);


  加入ButtonGroup中的JRadioButton的顺序为r3,r2,r1,而加入contentPane中的书序则为r2,r1,r2,这时候其运行效果如下:


  可见其状态选中是根据加入ButtonGroup中的顺序决定的


  JRadioButton提供了与JCheckBox完全相似的构造方法。见下表8-8


表8-8 JRadioButton构造方法


  text -此单选按钮上显示的字符串


  icon -此按钮应显示的图像


  selected - 指示最初选择状态的 boolean 值。如果该参数为 true,则单选框被选定


  当JRadioButton被选中或取消选中时,会触发一个事件,该事件就是ActionEvent,如果想根据JRadioButton的选中情况进行不同处理,可以编写实现ActionListener接口的类进行处理。


  例8-5 中在JFrame添加了两个JRadioButton及三个JCheckBox,验证我们所学的部分知识。


  [例 8-5]


  import java.awt.*;


  import javax.swing.*;


  import java.awt.event.*;


  class JCheckBoxAndJRadioButtonTest extends JFrame{


  private JPanel panelNorth = new JPanel();


  private JLabel label1 = new JLabel("性别");


  private JRadioButton rb1 = new JRadioButton("男",true);


  private JRadioButton rb2 = new JRadioButton("女");


  private ButtonGroup group = new ButtonGroup();


  private JLabel label2 = new JLabel("擅长");


  private JCheckBox cb1= new JCheckBox("书法");


  private JCheckBox cb2= new JCheckBox("唱歌");


  private JCheckBox cb3= new JCheckBox("跳舞");


  private JButton button = new JButton("确定");


  private JTextArea ta = new JTextArea(6,10);


  public JCheckBoxAndJRadioButtonTest(String title){


  super(title);


  Container contentPane = this.getContentPane();


  相关推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2012年计算机二级Java多线程之间.. 下一篇2012年计算机二级Java对话框学习..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: