java选择框、单选框和单选按钮

选择框、单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的 “on/off”选择功能,让用户在一组选择项目中作选择。

选择框

选择框(JCheckBox)的选中与否开状是一个小方框,被选中则在框中打勾。当在一个容器中有多个选择框,同时可以有多个选择框被选中,这样的选择框也称复选框。与选择框相关的接口是ItemListener,事件类是ItemEvent。

JCheckBox类常用的构造方法有以下3个:

1.JCheckBox():用空标题构造选择框。
2.JCheckBox(String s):用给定的标题s构造选择框。
3.JCheckBox(String s, boolean b):用给定的标题s构造选择框,参数b设置选中与否的初始状态。

JCheckBox类的其他常用方法如下:

1.getState():获取选择框的状态。
2.setState(boolean b):设置选择框的状态
3.getLabel():获取选择框的标题。
4.setLabel(String s):设置选择框的标题。
5.isSelected():获取选择框是否被选中的状态。
6.itemStateChanged(ItemEvent e):处理选择框事件的接口方法。
7.getItemSelectable():获取可选项,获取事件源。
8.addItemListener(ItemListener l):为选择框设定监视器。
9.removeItemListener(ItemListener l):移去选择框的监视器。

【例 11-11】声明一个面板子类,面板子类对象有3个选择框。

class Panel1 extends JPanel{
    JCheckBox box1,box2,box3;
    Panel1(){
        box1 = new JCheckBox(“足球”);
        box2 = new JCheckBox(“排球”);
        box2 = new JCheckBox(“篮球”);
    }
}

单选框

当在一个容器中放入多个选择框,且没有ButtonGroup对象将它们分组,则可以同时选中多个选择框。如果使用ButtonGroup对象将选择框分组,同一时刻组内的多个选择框只允许有一个被选中,称同一组内的选择框为单选框。单选框分组的方法是先创建ButtonGroup对象,然后将希望为同组的选择框添加到同一个ButtonGroup对象中。参见例6.2程序的面板子类Panel2的声明,组内有3个单选框。

单选按钮

单选按钮(JRadioButton)的功能与单选框相似。使用单选按钮的方法是将一些单选按钮用ButtonGroup对象分组,使同一组的单选按钮只允许有一个被选中。单选按钮与单选框的差异是显示的样式不同,单选按钮是一个圆形的按钮,单选框是一个小方框。

JRadioButton类的常用构造方法有以下几个:
1.JRadioButton():用空标题构造单选按钮。
2.JRadioButton(String s):用给定的标题s构造单选按钮。
3.JRadioButton(String s,boolean b):用给定的标题s构造单选按钮,参数b设置选中与否的初始状态。

单选按钮使用时需要使用ButtonGroup将单选按钮分组,单选按钮的分组方法是先创建对象,然后将同组的单选按钮添加到同一个ButtonGroup对象中。参见例6.2程序的子类panel1的声明,组内有3个单选按钮。

选择项目事件处理

用户对选择框或单选按钮做出选择后,程序应对这个选择作出必要的响应,程序为此要处理选择项目事件。选择项目处理程序的基本内容有:

1.监视选择项目对象的类要实现接口ItemListener,
2.程序要声明和建立选择对象,
3.为选择对象注册监视器,
4.编写处理选择项目事件的接口方法itemStateChanged(ItemEvent e),在该方法内用getItemSelectable()方法获取事件源,并作相应处理。

【例 11-12】处理选择项目事件的小应用程序。一个由3个单选按钮组成的产品选择组,当选中某个产品时,文本区将显示该产品的信息。一个由3个选择框组成的购买产品数量选择框组,当选择了购买数量后,在另一个文本框显示每台价格。

 import java.applet.*;
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.*;
 class Panel1 extends JPanel{
   JRadioButton box1,box2,box3;
   ButtonGroup g;
   Panel1(){
     setLayout(new GridLayout(1,3));
     g = new ButtonGroup();
     box1 = new JRadioButton(MyWindow.fName[0]+"计算机",false);
     box2 = new JRadioButton(MyWindow.fName[1]+"计算机",false);
     box3 = new JRadioButton(MyWindow.fName[2]+"计算机",false);
     g.add(box1);g.add(box2);g.add(box3);
     add(box1);add(box2);add(box3);
     add(new JLabel("计算机3选1") );
   }
 }
 class Panel2 extends JPanel{
   JCheckBox box1,box2,box3;
   ButtonGroup g;
   Panel2(){
     setLayout(new GridLayout(1,3));
     g = new ButtonGroup();
     box1 = new JCheckBox("购买1台 ");
     box2 = new JCheckBox("购买2台 ");
     box3 = new JCheckBox("购买3台 ");
     g.add(box1);g.add(box2);g.add(box3);
     add(box1);add(box2);add(box3);
     add(new JLabel(" 选择1、2或3"));
   }
 }
 class MyWindow extends JFrame implements ItemListener{
   Panel1 panel1;
   Panel2 panel2;
   JLabel label1,label2;
   JTextArea text1,text2;
   static String fName[] = {"HP","IBM","DELL"};
   static double priTbl[][]={{1.20,1.15,1.10},{1.70,1.65,1.60},{1.65,1.60,1.58}};
   static int productin = -1;
   MyWindow(String s){
     super(s);
     Container con = this.getContentPane();
     con.setLayout(new GridLayout(3,2));
     this.setLocation(100,100);
     this.setSize(400,100);
     panel1 = new Panel1();panel2 = new Panel2();
     label1 = new JLabel("产品介绍",JLabel.CENTER);
     label2 = new JLabel("产品价格",JLabel.CENTER);
     text1 = new JTextArea();text2 = new JTextArea();
     con.add(label1);con.add(label2);con.add(panel1);
     con.add(panel2);con.add(text1);con.add(text2);
     panel1.box1.addItemListener(this);
     panel1.box2.addItemListener(this);
     panel1.box3.addItemListener(this);
     panel2.box1.addItemListener(this);
     panel2.box2.addItemListener(this);
     panel2.box3.addItemListener(this);
     this.setVisible(true);this.pack();
   }
   public void itemStateChanged(ItemEvent e){ //选项状态已改变
     if(e.getItemSelectable()==panel1.box1){ //获取可选项
       production =0;
       text1.setText(fName[0]+"公司生产");text2.setText("");
     }
     else if(e.getItemSelectable()==panel1.box2){
       production =1;
       text1.setText(fName[1]+"公司生产");text2.setText("");
     }
     else if(e.getItemSelectable()==panel1.box3){
       production =2;
       text1.setText(fName[2]+"公司生产");text2.setText("");
     }
     else{
       if(production ==-1) return;
       if(e.getItemSelectable()==panel2.box1){
         text2.setText(""+priTbl[production][0]+"万元/台");
       }
       else if(e.getItemSelectable()==panel2.box2){
         text2.setText(""+priTbl[production][1]+"万元/台");
       }
       else if(e.getItemSelectable()==panel2.box3){
         text2.setText(""+priTbl[production][2]+"万元/台");
       }
     }
   }
 }
 public class Example6_2 extends Applet{
   MyWindow myWin = new MyWindow("选择项目处理示例程序");
 }

以上所述就是本文的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • Java基于Swing实现的打猎射击游戏代码

    本文实例讲述了Java基于Swing实现的打猎射击游戏代码.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: package Game; import java.awt.Graphics; import java.awt.Image; import javax.swing.JPanel; public class BackgroundPanel extends JPanel {         private static final long serialVersionUID

  • java基于swing实现的连连看代码

    本文实例讲述了java基于swing实现连连看代码.分享给大家供大家参考. 主要功能代码如下: 复制代码 代码如下: package llkan; import javax.swing.*; import java.awt.*; import java.awt.event.*; /**  * 连连看游戏  * @author Administrator  *2014年10月17日  */ public class MainGame implements ActionListener {     

  • Java Swing中的表格(JTable)和树(JTree)组件使用实例

    一:表格(JTable): 1.基本概念: 表格(JTable)是Swing 新增加的组件,主要是为了将数据以表格的形式显示.给显示大块数据提供了简单的机制. 2.常用构造方法: * JTable():使用系统默认的模型创建一个JTable 实例.  * JTable(int numRows,int numColumns):创建一个使用DefaultTableModel 指定行.列的空表格.  * JTable(Object[ ][ ] rowData,Object[ ][ ] columnNa

  • java swing中实现拖拽功能示例

    java实现拖拽示例 Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图: 复制代码 代码如下: package com; import java.awt.*;import java.awt.datatransfer.DataFlavor;import java.awt.dnd.DnDConstants;import java.awt.dnd.DropTarget;import java.awt.dnd.DropTargetAdapter;import java.awt.dn

  • swing中Tree与滚动条用法实例分析

    本文实例讲述了swing中Tree与滚动条用法.分享给大家供大家参考.具体如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; public class test extends JApplet{ JTree tree; JTextField jtf; public void init(){ Container contentPane = getConten

  • java基于swing实现的五子棋游戏代码

    本文实例讲述了java基于swing实现的五子棋游戏代码.分享给大家供大家参考. 主要功能代码如下: 复制代码 代码如下: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Main extends JFrame implements ActionListener{         private static final long serialVersionUID = 1L;      

  • Java基于swing实现的弹球游戏代码

    本文实例讲述了Java基于swing实现的弹球游戏代码.分享给大家供大家参考. 主要功能代码如下: 复制代码 代码如下: package Game; import java.awt.Graphics; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Random;

  • java之swing单选框用法实例分析

    本文实例讲述了java之swing单选框用法.分享给大家供大家参考.具体如下: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class test extends JApplet implements ActionListener{ JTextField jtf; public void init(){ Container contentPane = getContentPane(); conte

  • Java Swing组件单选框JRadioButton用法示例

    本文实例讲述了Java Swing组件单选框JRadioButton用法.分享给大家供大家参考,具体如下: JRadioButton是Swing中的单选框.所谓单选框是指,在同一个组内虽然有多个单选框存在,然而同一时刻只能有一个单选框处于选中状态.它就像收音机的按钮,按下一个时此前被按下的会自动弹起,故因此得名.因此,在添加JRadioButton控件时,要记得将它们添加到同一个ButtonGroup中. JRadioButton的常用方法如下图所示: 可以为它添加ActionListener对

  • layui 实现自动选择radio单选框(checked)的方法

    HTML表单: <div class="layui-form-item"> <label class="layui-form-label">消息通知</label> <div class="layui-input-block"> <input name="is_notice" value="1" type="radio" title=

  • JS获取文本框,下拉框,单选框的值的简单实例

    1.文本框 1.1 <input type="text" name="test" id="test"> 通过var t=document.getElementById("test").value把值赋给变量t, 1.2 当然也可以反过来把已知的变量值赋给文本框,例如: var m = "5";document.getElementById("test").value= m;

  • jQuery对下拉框,单选框,多选框的操作

    下拉框: //得到下拉菜单的选中项的文本(注意中间有空格)var cc1 = $(".formc select[@name='country'] option[@selected]").text();//得到下拉菜单的选中项的值var cc2 = $('.formc select[@name="country"]').val();//得到下拉菜单的选中项的ID属性值var cc3 = $('.formc select[@name="country"

  • java选择框、单选框和单选按钮

    选择框.单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的 "on/off"选择功能,让用户在一组选择项目中作选择. 选择框 选择框(JCheckBox)的选中与否开状是一个小方框,被选中则在框中打勾.当在一个容器中有多个选择框,同时可以有多个选择框被选中,这样的选择框也称复选框.与选择框相关的接口是ItemListener,事件类是ItemEvent. JCheckBox类常用的构造方法有以下3个: 1.JCheckBo

  • 浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)

    若是只引用jquery的话,监听单选按钮改变事件如下: <input type="radio" name="sex" checked="checked" value="1">男 <input type="radio" name="sex" value="2">女 $(document).ready(function() { $('input[t

  • 使用AngularJS处理单选框和复选框的简单方法

    AngularJS对表单的处理相当简单.在AngularJS使用双向数据绑定方式进行表单验证的时候,实质上它在帮我们进行表单处理. 使用复选框的的例子有很多,同时我们对它们的处理方式也有很多.这篇文章中我们将看一看把复选框和单选按钮同数据变量绑定的方法和我们对它的处理办法. 创建Angular表单 在这篇文章里,我们需要两个文件:index.html和app.js.app.js用来保存所有的Angular代码(它不大),而index.html是动作运行的地方.首先我们创建AngularJS文件.

  • 网页从弹窗页面单选框传值至父页面代码分享

    在项目中,需要完成这样一个功能:在加入新机构的时候,需要选择它的上级机构,实现方式为点击查找填入按钮,弹出弹窗页面,用户点击所需的行,并点击确定按钮,将用户选择的机构名称和机构代码传回到加入新机构的页面. 在这里记录一下弹窗页面代码 <!DOCTYPE html PUBLIC "-//WC//DTD HTML . Transitional//EN" "http://www.w.org/TR/html/loose.dtd"> <%@ page con

  • jquery对单选框,多选框,文本框等常见操作小结

    一.文本框.单选按钮.复选框.相关操作 复制代码 代码如下: var sex=$("input[name='sex']:checked").val();   //获取一组radio被选中项的值  var item=$("#sel option:selected").text();      //获取select被选中项的文本  var option_num=$('#sel').val();                 //获取select项目索引 $("

随机推荐