java按钮组的制作

如果我们想单选钮保持“异或”状态,我们必须增加它们到一个按钮组中,这几乎同老AWT中的方法相同但更加的灵活。在下面将要证明的程序例子是,一些AbstruactButton能被增加到一个ButtonGroup中。
为避免重复一些代码,这个程序利用映射来生不同类型的按钮组。这会在makeBPanel中看到,makeBPanel创建了一个按钮组和一个JPanel,并且为数组中的每个String就是makeBPanel的第二个自变量增加一个类对象,由它的第一个自变量进行声明:
 

//: ButtonGroups.java
// Uses reflection to create groups of different
// types of AbstractButton.
package c13.swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.lang.reflect.*;

public class ButtonGroups extends JPanel {
  static String[] ids = {
    "June", "Ward", "Beaver",
    "Wally", "Eddie", "Lumpy",
  };
  static JPanel
  makeBPanel(Class bClass, String[] ids) {
    ButtonGroup bg = new ButtonGroup();
    JPanel jp = new JPanel();
    String title = bClass.getName();
    title = title.substring(
      title.lastIndexOf('.') + 1);
    jp.setBorder(new TitledBorder(title));
    for(int i = 0; i < ids.length; i++) {
      AbstractButton ab = new JButton("failed");
      try {
        // Get the dynamic constructor method
        // that takes a String argument:
        Constructor ctor = bClass.getConstructor(
          new Class[] { String.class });
        // Create a new object:
        ab = (AbstractButton)ctor.newInstance(
          new Object[]{ids[i]});
      } catch(Exception ex) {
        System.out.println("can't create " +
          bClass);
      }
      bg.add(ab);
      jp.add(ab);
    }
    return jp;
  }
  public ButtonGroups() {
    add(makeBPanel(JButton.class, ids));
    add(makeBPanel(JToggleButton.class, ids));
    add(makeBPanel(JCheckBox.class, ids));
    add(makeBPanel(JRadioButton.class, ids));
  }
  public static void main(String args[]) {
    Show.inFrame(new ButtonGroups(), 500, 300);
  }
} ///:~

边框标题由类名剔除了所有的路径信息而来。AbstractButton初始化为一个JButton,JButtonr的标签发生“失效”,因此如果我们忽略这个异常信息,我们会在屏幕上一直看到这个问题。getConstructor()方法产生了一个通过getConstructor()方法安放自变量数组类型到类数组的构建器对象,然后所有我们要做的就是调用newInstance(),通过它一个数组对象包含我们当前的自变量——在这种例子中,就是ids数组中的字符串。
这样增加了一些更复杂的内容到这个简单的程序中。为了使“异或”行为拥有按钮,我们创建一个按钮组并增加每个按钮到我们所需的组中。当我们运行这个程序时,我们会注意到所有的按钮除了JButton都会向我们展示“异或”行为。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, string
, 按钮
, add按钮
, java 异或
, 一个
, IDS
增加class
java单选按钮组、java 按钮数组、java按钮组、java按钮点击事件、java按钮,以便于您获取更多的相关知识。

时间: 2024-08-03 16:45:50

java按钮组的制作的相关文章

java 标签组 鼠标监听

问题描述 java 标签组 鼠标监听 java标签组添加了鼠标监听,如何在鼠标点击时获得该标签的名字 解决方案 JLabel 不像按钮,要添加鼠标事件的话 用鼠标事件监听: JLabel jl = new JLabel(); jl.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { // 处理鼠标点击 } public void mouseEntered(MouseEvent e) { //

看实例学VFP:选项按钮组控件

选项按钮组控件(OPtiongroup),也可以叫做"单选按钮组",是vfp的常用控件之一.在vfp基础教程-单选按钮组一文中已经给出了该控件的常用属性和方法,并且给出了一个将该控件的controlsource属性与表中某一字段绑定的例子.本文来补充一个对该控件的click事件进行编程的例子,运行界面如下图: 在上图中可以根据用户的选择计算长方形的周长或面积.制作步骤如下: 一.新建表单,将其caption属性值设为"编程入门网-计算长方形周长及面积",AutoCe

怎么实现java按钮的播放与暂停,按一次就是暂停,按一次就是播放?

问题描述 怎么实现java按钮的播放与暂停,按一次就是暂停,按一次就是播放? import java.awt.EventQueue;import java.io.*;import java.util.*;import javax.swing.JFrame;import javax.swing.JSlider;import javax.swing.JButton;import javax.media.*;import java.applet.*;import jmapps.ui.JMFrame;i

移动-java按钮能不能添加线程

问题描述 java按钮能不能添加线程 我想问一下各位大神:java 中能不能为按钮添加一个线程 例如:我按一下按钮,然后在某一个原件按一定速度移动??? 解决方案 可以是可以,但是第一,用不上,第二,操作界面,还得同步,等于还是单线程. 你的需求用定时器才合适. 解决方案二: 不太清楚你说的是javaSE方面的东西吧,我没做过. 不过线程这个东西和按不按钮没关系的 只要通过Thread.start()方法就可以增加新的线程. 题主要做的无非是: 点击按钮时启动一个对象,该对象的作用是0.07秒修

qpushbutton-qt里如何返回按钮组(是QPushButton的按钮组而不是QRadioButton)

问题描述 qt里如何返回按钮组(是QPushButton的按钮组而不是QRadioButton) 添加了四个按钮到一个按钮组 使用了 connect(按钮组,SIGNAL(buttoncClicked(int),this,SLOT(槽函数)) 现在要点击以后选中按钮,再次点击其他位置实现移动按钮的功能,但是选中按钮时怎么才能得到处于选中状态的按钮的id或者是直接可以把选中按钮的用另一个按钮的指针去指向它. 解决方案 点击了后,按钮组的buttonClicked信号的参数不就是当前被点击按钮的id

Bootstrap基本组件学习笔记之按钮组(8)_javascript技巧

按钮组允许多个按钮被堆叠在同一行上,实现起来非常简单. 0x01 基本用法 直接看下面的例子: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> &l

2011年全国软件大赛模拟题及参考答案(Java高职组)

2011年全国软件大赛模拟题及参考答案(Java高职组) 不是官方的答案,如有不妥,请指出. 2011 模拟 java 高职 注意: 本套模拟题主要模拟命题形式与考核范围.真实竞赛题的数量.难度可能与此套模拟题有差异. 说明: 本试卷包含两种题型:"代码填空"与"程序设计". 填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确.完整.所填写的代码不多于一条语句(即不能出现分号). 编程题要求选手设计的程序对于给定的输入能给出正确的输出结

Bootstrap CSS组件之按钮组(btn-group)_javascript技巧

.btn-toolbar(有助于几组btn-group结合到一个btn-toolbar中)/.btn-group(btn-group-lg/btn-group-sm/btn-group-xs)/.btn-group-vertical 容器内的按钮,可以使用button元素,也可以使用a元素,产生的效果是一样的. 容器的多个分组以table风格进行显示,每组之间保持5px的left margin //源码 .btn-toolbar:before, .btn-toolbar:after{ displ

JS组件Bootstrap按钮组与下拉按钮详解_javascript技巧

本文先为大家分享按钮组的使用方法,具体内容如下 一.按钮组(Button Groups) 1.单个按钮组 用.btn-group封装多个带.btn的<button> <div class="btn-group"> <button class="btn">1</button> <button class="btn">2</button> <button class=&qu