首页 > 编程语言 >《Java编程思想第四版》学习笔记44--关于按钮组

《Java编程思想第四版》学习笔记44--关于按钮组

时间:2023-12-06 17:04:52浏览次数:31  
标签:ab Java String -- 44 jp ids add new

//: 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);
    }
} ///:~

                                                                                                                                                    P.472

这个例程中24秆的AbstractButton ab = new JButton("failed");为什么不写在循环的外面?37、38行的bg.add(ab);jp.add(ab);原以为应该是bg.add(ab);jp.add(bg);上机后才知道只有这样写才行。

标签:ab,Java,String,--,44,jp,ids,add,new
From: https://blog.51cto.com/u_16183536/8706682

相关文章

  • 史上最全运维岗位规划!十分钟找到职业方向
    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够7×24小时为用户提供高质量的服务。运维人员对公司互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性加强,进行日常巡检发现服务可能存在的隐患,对整体架构进行优化以屏蔽常见的运行故障,......
  • 悲观锁、乐观锁、mybatis-plus实现乐观锁
    转载自:www.javaman.cn1、悲观锁、乐观锁乐观锁和悲观锁是两种用于处理并发操作的数据锁定策略。它们在处理多个事务尝试同时访问和修改同一数据时的方法有所不同。悲观锁(PessimisticLocking):概念:悲观锁是一种基于悲观态度的数据并发控制机制。它总是假设最坏的情况,即认为其他......
  • 苹果ios系统ipa文件签名的圈外签名是什么?稳定性怎么样?
    各位老铁们好啊!我是咕噜老尼,相信很多老铁们呢都会担心一个问题,那就是到底会不会掉签,别以为这种问题只有老铁们担心哦,其实开发者也会担心,因为掉签会增加本钱也会增加工作量,掉签浪费了开发者和客户的时间精力,老尼在这先说一句重点,没有永远不掉签的签名,如果有人说有,那他一定是骗子,企业......
  • 可视化监控云平台/智能监控平台EasyCVR国标设备开启音频没有声音是什么原因?
    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。GB28181视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语......
  • 企业降本增效,从招聘“卷”起?
    近几年来,随着全球经济的不断变化,各家企业都面临着或大或小的压力,为了缓解这些压力,企业纷纷采取了紧急措施,其中最为常见的便是「降本增效」。然而,单从生产方面着手是远远不够的,还需要将降本增效的压力传递到企业经营的各环节当中,其中改善人力资源管理是降低用人成本、提升人力效率的......
  • Binding failed for port xxxxxx
    nova-compute.log2040-13-3220:02:33.4517ERRORnova.compute.manager[Nonereq-b844f0bb-e907-4c17-807f-3f418be83679207fdd48eb414c78bdbc9b6a55362dc59252305d9c2f46bc882c15d412d25911--defaultdefault]Instancefailednetworksetupafter1attempt(s):n......
  • 微信社群机器人API
    请求URL:http://域名地址/sendHeadImage请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:Authorization值(登录获取码信息接口中返回的认证信息值)参数:参数名必选类型说明wId是string登录实例标识path是string图片url链接返回数据:参数名类型说明codestring1000成......
  • OAuth2.0授权
    OAuth2.0OAuth2.0是一个开放标准,允许用户授权第三方应用程序访问他们存储在另外的服务器上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0协议的认证流程,简单理解,就是允许我们将之前的授权和认证过程交给一个独立的第三方进行担保。OAuth2.0协议......
  • 态路小课堂丨800G系列产品互连方案简介
    在AI算力爆发的时代浪潮下,高速光模块的需求如雨后春笋般节节攀升,尤其是400G/800G光模块的市场呼声日益高涨。面对这一趋势,如何选择合适的光模块或线缆,同时综合考虑带宽、距离以及成本等诸多因素,已然成为数据中心建设的关键性议题。本篇文章态路通信将为您介绍相关内容。800G系列产......
  • C++中的const用法
    一、修饰普通变量:constdoublePI=3.14159;constinta=10;//这些C++中的内置类型被const修饰时,其值不可被随意更改二、修饰一个指针(即指针对应的值不可修改):但是指针作为一个变量,其可指向其他位置,只是无法通过指针来改变其指向的对象的值inta=10;intb=20;constint*p......