当前位置 : IT培训网 > Java开发 > Java教程 > Java程序之选择框和单选按钮

Java程序之选择框和单选按钮

时间:2016-09-02 14:14:50  来源:Java培训网  作者:IT培训网  已有:名学员访问该课程
单选按钮(JRadioButton)的功能与单选框相似。使用单选按钮的方法是将一些单选按钮用ButtonGroup对象分组,使同一组的单选按钮只允许有一个被选中。单选按钮与单选框的差异是显示的样式不同,单选按钮是一个圆形的按钮,单选框是

Java程序也会用到选择框吗,也会用到单选按钮吗,是的,无论哪种语言,一些小插件小图片的功能还是要具备的,下面就让我们一起看看Java程序中的选择框和单选按钮吧。

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

单选框

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

单选按钮

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

JRadioButton类的常用构造方法有以下几个:

JRadioButton():用空标题构造单选按钮。

JRadioButton(String s):用给定的标题s构造单选按钮。

JRadioButton(String s,boolean b):用给定的标题s构造单选按钮,参数b设置选中与否的初始状态。

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

选择框

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

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

JCheckBox():用空标题构造选择框。

JCheckBox(String s):用给定的标题s构造选择框。

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

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

getState():获取选择框的状态。

setState(boolean b):设置选择框的状态

getLabel():获取选择框的标题。

setLabel(String s):设置选择框的标题。

isSelected():获取选择框是否被选中的状态。

itemStateChanged(ItemEvent e):处理选择框事件的接口方法。

getItemSelectable():获取可选项,获取事件源。

addItemListener(ItemListener l):为选择框设定监视器。

removeItemListener(ItemListener l):移去选择框的监视器。

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

class Panel1 extends JPanel{

    JCheckBox box1,box2,box3;

    Panel1(){

        box1 = new JCheckBox(“足球”);

        box2 = new JCheckBox(“排球”);

        box2 = new JCheckBox(“篮球”);

    }

}

选择项目事件处理

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

监视选择项目对象的类要实现接口ItemListener,

程序要声明和建立选择对象,

为选择对象注册监视器,

编写处理选择项目事件的接口方法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("选择项目处理示例程序");

}

顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
------分隔线----------------------------
Java教程
1、Java 概述
1.1 Java语言概述
1.2 Java虚拟机以及跨平台原理
1.3 Java的主要就业方向
1.4 Java的不同版本
1.5 Java开发环境搭建
1.6 第一个Java程序示例
1.7 Java类和对象的概念
1.8 Java类库及其组织结构
1.9 Java import
2、Java 语法基础
2.1 Java数据类型以及变量的定义
2.2 Java数据类型转换
2.3 Java运算符
2.4 Java流程控制
2.5 Java数组的定义和使用
2.6 Java字符串(String)
2.7 Java StringBuffer与StringBuider
2.8 强调一下编程风格
3、Java 类与对象
3.1 Java类的定义及其实例化
3.2 Java访问修饰符
3.3 Java变量的作用域
3.4 Java this关键字详解
3.5 Java方法重载
3.6 Java类的基本运行顺序
3.7 Java包装类、拆箱和装箱详解
3.8 再谈Java包
3.9 源文件的声明规则
4、Java 继承和多态
4.1 继承的概念与实现
4.2 Java super关键字
4.3 继承中的方法的覆盖和重载
4.4 多态和动态绑定
4.5 instanceof 运算符
4.6 多态对象的类型转换
4.7 Java static关键字
4.8 Java final关键字
4.9 Java Object类
5、面向对象高级特性
5.1 Java内部类及其实例化
5.2 内部类的分类
5.3 抽象类的概念和使用
5.4 接口的概念和使用
5.5 接口和抽象类的区别
5.6 Java 泛型
5.7 泛型通配符和类型参数的范围
6、异常处理
6.1 异常处理基础
6.2 异常类型Java语言中常见的异常类型有哪些
6.3 未被捕获的异常
6.4 try和catch的使用
6.5 多重catch语句的使用
6.6 try语句的嵌套
6.7 throw:异常的抛出
6.8 throws子句
6.9 finally块
6.10 Java的内置异常
6.11 创建自己的异常子类
6.12 断言
7、线程编程
7.1 线程的概念
7.2 Java线程模型
7.3 主线程
7.4 创建线程
7.5 创建多线程
7.6 isAlive()和join()的使用
7.7 线程优先级
7.8 线程同步
7.9 线程间通信
7.10 线程死锁
7.11 线程的挂起、恢复和终止
8、输入输出(IO)操作
8.1 输入输出基本概念
8.2 面向字符的输入流
8.3 面向字符的输出流
8.4 面向字节的输入输出流
8.5 面向字节流的应用
8.6 文件与目录管理
8.7 文件的随机读写
8.8 文件的压缩处理
9、常用类库、向量与哈希
9.1 Java基础类库
9.2 Object类
9.3 Java语言包(java.lang)简介
9.4 日期和时间类
9.5 向量及其应用
9.6 哈希表及其应用
10、图形界面(GUI)设计
10.1 图形界面设计基础
10.2 框架窗口
10.3 标签、按钮和按钮事件
10.4 面板
10.5 布局设计
10.6 文本框和文本区
10.7 文本框和文本区的输入输出
10.8 选择框和单选按钮
10.9 列表和组合框
10.10 菜单
10.11 对话框
10.12 滚动条
10.13 鼠标事件
10.14 键盘事件
11、图形、图像与多媒体
11.1 绘图基础
11.2 设置字型和颜色
11.3 绘图模式
11.4 Graphics类的绘图方法
11.5 Graphics2D类的绘图方法
11.6 图像处理基础
11.7 图像缓冲技术
11.8 多媒体基础
12、网络与数据库编程
12.1 IP地址和InetAddress类
12.2 统一资源定位符
12.3 套接字(Socket)
12.4 数据库连接
12.5 几个重要的类和接口
12.6 数据库查询
12.7 数据库更新
12.8 插入记录
12.9 修改记录
12.10 删除记录