Swing常用组件之单选按钮和复选框

本文为大家分享了Swing单选按钮和复选框的使用方法,供大家参考,具体内容如下

JRadioButton构造函数:

JRadioButton():建立一个新的JRadioButton.
JRadioButton(Icon icon):建立一个有图像但没有文字的JRadioButton.
JRadioButton(Icon icon,boolean selected):建立一个有图像但没有文字的JRadioButton,且设置其初始状态(有无被选取).
JRadioButton(String text):建立一个有文字的JRadioButton.
JRadioButton(String text,boolean selected):建立一个有文字的JRadioButton,且设置其初始状态(有无被选取)。
JRadioButton(String text,Icon icon):建立一个有文字且有图像的JRadioButton,初始状态为无被选取。
JRadioButton(String text,Icon icon,boolean selected):建立一个有文字且有图像的JRadioButton,且设置其初始状态(有无被选取)
要将RadioButton改成单选,我们必须用到ButtonGroup这个类。这个类位于javax.swing这个package下面,ButtonGroup类的主 要功能是:同一时间内只会有一个组件的状态为"on",其他皆为"off",也就是同一时间只有一个组件会被选取。而ButtonGroup类可 被AbstractButton下面的子类所使用,最常被使用的就是JRadioButton、JradioButtonMenu、Item与JToggleButton这些组件

ButtonGroup类的构造方法如下:

ButtonGroup()创建一个新的ButtonGroup()

ButtonGroup()类的常用的方法如下:
public void add(AbstractButton b):添加按钮到组中
public void clearSelection():清除选中内容,即没有选中按钮组中的任何按钮
pubic int getButtonCount():获取此组中的按钮数
public Enumeration<AbstractButton>getElemeent():获取此组中的所用按钮
public void remove (AbstractButton b):从按钮中删除按钮

JCheckBox构造函数

JCheckBox():建立一个新的JChcekBox.
JCheckBox(Icon icon):建立一个有图像但没有文字的JCheckBox.
JCheckBox(Icon icon,boolean selected):建立一个有图像但没有文字的JCheckBox,且设置其初始状态(有无被选取)。
JCheckBox(String text):建立一个有文字的JCheckBox.
JCheckBox(String text,boolean selected):建立一个有文字的JCheckBox,且设置其初始状态(有无被选取)。
JCheckBox(String text,Icon icon):建立一个有文字且有图像的JCheckBox,初始状态为无被选取。
JCheckBox(String text,Icon icon,boolean selected):建立一个有文字且有图像的JCheckBox,且设置其初始状态(有无被选取 )。
当JCheckBox中的选项被选取 或取消时,它会触发ItemEvent的事件,ItemEvent这个类共提供了4种方法可以使用,分别是getItem()、getItemSelectable()、 getStateChange()、paramString()。getItem()与paramString()方法会返回一些这个JCheckBox的状态值。一般我们较少用到这两 个方法。

getItemSelectable()相当于getSource()方法,一样都是返回触发事件的组件,用来判断是那个组件产生事件。getSource()方法是EventObject类所提供,而所有事件类都会继承这个类,因此所有的事件我们均能用getSource() 方法来判断到底是哪个组件触发了事件。

最后getStateChange()方法会返回此组件到底有没有被选取。这个方法会返回一个整数值。而我们可以用ItemEvent所提供的类 变量;若被选取则返回SELECTED,若没有被选取则返回DESELECTED.
单选按钮和复选框注册和注销ItemEvent事件监听器的方法如下:
public void addItemListener(ItemListener l): 注册指定的ItemListener事件监听器
public void removeItemListener(ItemListener l): 注销指定的ItemListener事件监听器

package ch10; 

import java.awt.event.*; 

import javax.swing.*; 

public class Vote extends JFrame implements ActionListener
{
   private JPanel jp = new JPanel();
   JRadioButton jrb1 = new JRadioButton("这个网站很好,很新颖!",true);
   JRadioButton jrb2 = new JRadioButton("这个网站很普通,太一般");
   JRadioButton jrb3 = new JRadioButton("这个网站很差,偶尔看一下");
   JRadioButton jrb4 = new JRadioButton("这个网站太差了,不来了");
   private JRadioButton[] jrb = new JRadioButton[]{jrb1,jrb2,jrb3,jrb4};
   private ButtonGroup bg = new ButtonGroup();
   JCheckBox jcb1 = new JCheckBox("界面比较漂亮");
   JCheckBox jcb2 = new JCheckBox("内容比较丰富");
   JCheckBox jcb3 = new JCheckBox("增值服务比较好");
   JCheckBox jcb4 = new JCheckBox("会员服务比较好");
   private JCheckBox[] jcb =new JCheckBox[]{jcb1,jcb2,jcb3,jcb4};
   private JButton [] jb = {new JButton("我要投票"),new JButton("我要重选")};
   private JLabel[] jl = {new JLabel("这个网站给你的印象是:"),new JLabel("您认为本站哪里做的比较好"),new JLabel("您投票的内容是:")};
   private JTextArea jt = new JTextArea();
   private JScrollPane js= new JScrollPane(jt);
   public Vote()
   {
     jp.setLayout(null);
     for(int i=0;i<4;i++)
     {
       jrb[i].setBounds(30+170*i,40,170,30);
       jcb[i].setBounds(30+120*i,100,120,30);
       jp.add(jrb[i]);
       jp.add(jcb[i]);
       jcb[i].addActionListener(this);
       jrb[i].addActionListener(this);
       bg.add(jrb[i]);
       if(i>1)
         continue;
       jl[i].setBounds(20,20+50*i,200,30);
       jb[i].setBounds(380+120*i,200,100,20);
       jp.add(jl[i]);
       jp.add(jb[i]);
       jb[i].addActionListener(this);
     }
     jl[2].setBounds(20,150,120,30);
     jp.add(jl[2]);
     js.setBounds(120,150,500,50);
     jp.add(js);
     jt.setLineWrap(true);
     jt.setEditable(false);
     this.add(jp);
     this.setTitle("网站满意调查表");
     this.setBounds(150,150,750,300);
     this.setVisible(true);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
   public void actionPerformed(ActionEvent a)
   {
     if(a.getSource()==jb[1])
     {
       bg.clearSelection();
       for(int i=0;i<jcb.length;i++)
         jcb[i].setSelected(false);
       jt.setText("");
     }
     else
     {
       StringBuffer temp1 = new StringBuffer("你认为这个网站");
       StringBuffer temp2 = new StringBuffer("");
       for(int i=0;i<4;i++)
       {
         if(jrb[i].isSelected())
           temp1.append(jrb[i].getText());
         if(jcb[i].isSelected())
           temp2.append(jcb[i].getText()+",");
       }
       if(temp2.length()==0)
         jt.setText("请将两项调查都选择");
       else
       {
         temp1.append("你认为这个网站");
         temp1.append(temp2.substring(0,temp2.length()-1));
         jt.setText(temp1.toString());
       }
     }
   }
   public static void main(String args[])
   {
     new Vote();
   }
}

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • java Swing实现选项卡功能(JTabbedPane)实例代码

     Swing实现选项卡功能(JTabbedPane) 先创建JTabbedPane对象,构造函数可使用JTabbedPane(int tabPlacement).tabPlacement是JTabbedPane从接口 javax.swing.SwingConstants 继承的字段.可以是BUTTOM,TOP等.如下代码所示: JFrame jframe = new JFrame("TEST"); <a href="http://lib.csdn.net/base/do

  • Swing图形界面实现可动态刷新的验证码

    本文实例为大家分享了Swing实现可动态刷新的验证码的具体代码,供大家参考,具体内容如下 不多,code代码如下: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Random; i

  • java之swing表格实现方法

    本文实例讲述了java之swing表格实现方法.分享给大家供大家参考.具体如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; public class test extends JApplet{ public void init(){ Container contentPane = getContentPane(); contentPane.setLayo

  • java Swing布局管理之BoxLayout布局

    本文为大家解析java Swing布局管理中的BoxLayout布局,供大家参考,具体内容如下 BoxLayout:可以指定在容器中是否对控件进行水平或者垂直放置,比 FlowLayout 要更为灵活 BoxLayout与其他布局管理器稍有不同,必须向其构造函数中传递容器实例的引用,由该容器使用BoxLayout.另外必须指定BoxLayout中组件的布局方式:垂直排列(按列)或水平排列(按行).用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLayout,但没那么复杂. 1

  • Java swing仿酷狗音乐播放器

    今天给大家介绍下用Java swing开发一款音乐播放器,高仿酷狗音乐播放器,完整源码地址在最下方,本文只列出部分源码,因为源码很多,全部贴不下,下面还是老规矩.来看看运行结果: 下面我们来看看代码: 首先看一下主窗口的实现代码: package com.baiting; import java.awt.Dimension; import java.awt.Toolkit; import com.baiting.menu.CloseWindow; /** * 窗口 * @author lmq *

  • Jtable和JTree的写法示例代码

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

  • Swing常用组件之单选按钮和复选框

    本文为大家分享了Swing单选按钮和复选框的使用方法,供大家参考,具体内容如下 JRadioButton构造函数: JRadioButton():建立一个新的JRadioButton. JRadioButton(Icon icon):建立一个有图像但没有文字的JRadioButton. JRadioButton(Icon icon,boolean selected):建立一个有图像但没有文字的JRadioButton,且设置其初始状态(有无被选取). JRadioButton(String te

  • js使用DOM设置单选按钮、复选框及下拉菜单的方法

    本文实例讲述了js使用DOM设置单选按钮.复选框及下拉菜单的方法.分享给大家供大家参考.具体实现方法如下: 1.设置单选按钮 单选按钮在表单中即<input type="radio" />它是一组供用户选择的对象,但每次只能选一个.每一个都有checked属性,当一项选择为ture时,其它的都变为false. 先贴上一个例子: 复制代码 代码如下: <script type="text/javascript">     function ge

  • mui开发中获取单选按钮、复选框的值(实例讲解)

    js获取单选按钮的值 function getVals(){ var res = getRadioRes('rds'); if(res == null){mui.toast('请选择'); return;} mui.toast(res); } function getRadioRes(className){ var rdsObj = document.getElementsByClassName(className); var checkVal = null; for(i = 0; i < rd

  • PyQt5基本控件使用详解:单选按钮、复选框、下拉框

    本文主要介绍PyQt5界面最基本使用的单选按钮.复选框.下拉框三种控件的使用方法进行介绍. 1.RadioButton单选按钮/CheckBox复选框.需要知道如何判断单选按钮是否被选中. 2.ComboBox下拉框.需要知道如何对下拉框中的取值进行设置以及代码实现中如何获取用户选中的值. 带着这些问题下面开始介绍这 RadioButton单选按钮.CheckBox复选框. ComboBox下拉框 三种基本控件的使用方法 QRadioButton单选按钮 单选按钮为用户提供 多选一 的选择,是一

  • Java Swing JCheckBox复选框的实现方法

    1. 概述 官方JavaDocsApi:javax.swing.JCheckBox JCheckBox,复选框. JCheckBox 常用构造方法: // 无文本,默认未选中 JCheckBox() // 有文本,默认未选中 JCheckBox(String text) // 有文本,并指定是否选中 JCheckBox(String text, boolean selected) JCheckBox 常用方法: // 设置复选框的 文本.字体 和 字体颜色 void setText(String

  • vue3.0实现复选框组件的封装

    本文实例为大家分享了vue3.0实现复选框组件封装的具体代码,供大家参考,具体内容如下 大致步骤: 实现组件本身的选中与不选中效果 实现组件的v-model指令 改造成 @vueuse/core 的函数写法 <!-- 组件基本样式 --> <template> <div class="xtx-checkbox" @click="changeChecked()"> <i v-if="checked" cla

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

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

  • Java Swing组件复选框JCheckBox用法示例

    本文实例讲述了Java Swing组件复选框JCheckBox用法.分享给大家供大家参考,具体如下: JCheckBox是Swing中的复选框.所谓复选框就是指,可以同时存在多个这样的控件,它们可以有多个处于被选中状态.对于每一个复选框而言,它只有选中和未选中两种状态. JCheckBox的常用方法如下图所示: 可以为它添加ActionListener对象来响应事件. 使用demo如下: JCheckBoxDemo.java package awtDemo; import java.awt.Bo

  • JQuery操作单选按钮以及复选按钮示例

    单选按钮以及复选按钮在开发过程中会经常用到,下面我就来通过JQuery操作单选按钮和复选按钮: 单选按钮: 通过JQuery获取单选按钮对象我们总共有三种途径: ①ID:$("#radioId") ②NAME:$(":input[name='radioName']") ③TYPE:$("input[type=radio]"),可能在有的资料上面写的是:$(""input[@type=radio]""),这个

  • Android编程实现带有单选按钮和复选按钮的dialog功能示例

    本文实例讲述了Android编程实现带有单选按钮和复选按钮的dialog.分享给大家供大家参考,具体如下: 带有单选按钮的dialog: package example.com.myapplication; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.

随机推荐