确定选择哪个 JRadioButton 的最佳方法是什么?

2024-04-07

目前我正在以这种方式获取选定的按钮,但如果这是正确/最好的方法,我不会。也许有比这更简单或更面向对象的东西。

private int getFilterType(JRadioButton... buttons) {
    for (int i = 0, n = buttons.length; i < n; i++) {
        if (buttons[i].isSelected()) {
            return i + 1;
        }
    }
    return buttons.length + 1;
}

我喜欢使用 ButtonGroup 本身来实现此目的。 IE。,

import java.awt.GridLayout;
import java.awt.event.ActionEvent;

import javax.swing.*;

public class ButtonModelEg {
   public static final String[] BUTTON_TEXTS = {"Fe", "Fi", "Fo", "Fum"};

   private static void createAndShowUI() {
      final ButtonGroup btnGroup = new ButtonGroup();

      JPanel panel = new JPanel(new GridLayout(0, 1));
      for (String btnText : BUTTON_TEXTS) {
         JRadioButton radioBtn = new JRadioButton(btnText);
         radioBtn.setActionCommand(btnText);
         btnGroup.add(radioBtn);
         panel.add(radioBtn);
      }

      final JTextField selectionField = new JTextField();

      JButton button = new JButton(new AbstractAction("Get Choice"){
         public void actionPerformed(ActionEvent arg0) {
            // get the button model selected from the button group
            ButtonModel selectedModel = btnGroup.getSelection();
            if (selectedModel != null) {
               // and dislay it
               selectionField.setText(selectedModel.getActionCommand());
            }
         }
      });

      panel.add(button);
      panel.add(selectionField);

      JFrame frame = new JFrame("ButtonModelEg");
      frame.getContentPane().add(panel);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }

   public static void main(String[] args) {
      java.awt.EventQueue.invokeLater(new Runnable() {
         public void run() {
            createAndShowUI();
         }
      });
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定选择哪个 JRadioButton 的最佳方法是什么? 的相关文章

随机推荐

  • UIButton 调整大小以适合其 titleLabel

    我有一个UIButton我将其添加到故事板中的视图控制器的视图中 我添加居中约束来定位它 并添加前导空间约束来限制其宽度 在代码中我添加 self button titleLabel numberOfLines 0 self button
  • 玩!框架+DynamoDB

    作为 Play 框架的新手 我想知道它是否比我想象的更容易 但是是否可以将 DynamoDB 与 Play 框架一起使用 由于 DynamoDB 是一个 NoSQL 数据库 我预计您需要使用特定的模块 而由于 Dynamo 最近才发布 因此
  • jQuery TABS 无法在新的 ASP .NET MVC4 项目下工作

    我所做的是 我已经创建了新的 ASP NET MVC4 项目 我用过http jqueryui com tabs http jqueryui com tabs 示例代码 所以我得到了这个 布局 cshtml Style
  • 在运行时获取本地对象/变量的列表

    我正在尝试创建一个简单的记录器来检查客户端发生的情况 如何获取本地列表 调试时在 Visual Studio 上显示 有点像当断点被击中时 对象 变量的当前现有实例显示在 本地 选项卡上 或者我应该在写入日志时获取变量的当前值吗 有趣的事情
  • 在 Windows 虚拟机中运行 Docker

    Using 适用于 Windows 10 的 Docker 桌面 MobaXterm 到 RDP 到 Windows 10 VM 硒 3 141 59 我目前正在尝试在 docker 容器中运行 selenium Grid 但遇到了一些问题
  • 如何在 jQuery 中设置文本框值?

    如何使用 jQuery 将某个值正确加载到文本框中 尝试了下面的 但我得到了 object Object 作为输出 请告诉我这一点 我是 jQuery 的新手 proc function x y var str1 pid value var
  • 使用整数作为模板参数时出现编译错误

    下面这段代码有什么问题 template
  • lxml 更改 Unicode 字符

    我正在使用 lxml 读取 xml 文件并更改一些详细信息 但是 运行时我发现即使我只是使用lxml读取文件然后再次写出来 如下所示 fil iTunes Music Library XML tre etree parse fil tre
  • Bootstrap 图标未显示在已发布的 ASP.NET MVC 应用程序中

    注意 请前往编辑 2 部分查看摘要 我有一个 ASP NET MVC 4 应用程序 我将 twitter Bootstrap 集成到其中 Bootstrap 工作正常 但当我发布应用程序时 图标无法正确显示 我尝试重新发布该应用程序 但没有
  • 在 XAML 中设置命令目标

    我很难理解 RoutedCommand 的 CommandTarget 属性 基本上 我有一些在用户控件 而不是窗口 中实现的静态命令 我在用户控件中创建命令绑定 如果我在用户控件中声明按钮 那么我就可以使用我的路由事件 但是 当按钮位于用
  • C++0x 右值引用和临时值

    我在 comp std c 上问了这个问题的变体 但没有得到答案 为什么调用f arg 在此代码中调用 const ref 重载f void f const std string less efficient void f std stri
  • 我不应该调用 HostingEnvironment.UnregisterObject 吗?

    在尝试在我的 ASP Net MVC 3 应用程序中通过 smtp 实现异步电子邮件时 我遇到了问题SO SmtpClient SendAsync 阻止我的 ASP NET MVC 请求 https stackoverflow com qu
  • 使用 dplyr 连接组内的所有行

    假设我有一个像这样的数据框 hand id card id card name card class A 1 p alpha A 2 q beta A 3 r theta B 2 q beta B 3 r theta B 4 s gamma
  • 在msbuild中过滤项目的元数据

    我想使用修改后的元数据创建一个新的项目集合 例如 更改 ClCompile AdditionalIncludeDirectories 的分隔符 为此 我首先从AdditionalIncludeDirectories 元数据创建一个项目集合
  • 如何更改 Scalatra 应用程序的“webapp”目录位置?

    默认情况下 Scalatra 期望 webapp 目录位于src main webapp 如何将其更改为 例如content doc root sbt 允许使用如下内容自定义其默认目录 scalaSource lt lt baseDirec
  • 获取 iPhone 上当前的系统音量级别

    有什么方法可以获取 iPhone 上当前的系统音量级别吗 我在想也许有一种方法可以制作MPVolumeView并从中获取价值 musicPlayer MPMusicPlayerController iPodMusicPlayer curre
  • 我如何知道我正在使用哪个版本的 OpenGL?

    我开始使用 GLFW 和 OpenGL 用 C 目前 编写程序 我的问题是 我如何知道我的程序将使用哪个版本的 OpenGL 我的笔记本电脑显示我的显卡支持 OpenGL 3 3 输入 glxinfo grep i opengl 返回 Op
  • 从现有虚拟机创建 docker 镜像

    我需要使用 CentOS 和 MySQL 创建 docker 基础镜像 但我已经有这样的虚拟机 没有docker 如何从现有的虚拟机创建基础 docker 镜像并在另一台带有 docker 的机器上使用它 虽然其他评论者正确地指出 将虚拟机
  • 如何获取 pandas .p​​lot(kind='kde') 的输出

    当我绘制我的 pandas 系列的密度分布时 我使用 plot kind kde 是否可以获得该图的输出值 如果是的话该怎么做 我需要绘制的值 plot kind kde https pandas pydata org docs refer
  • 确定选择哪个 JRadioButton 的最佳方法是什么?

    目前我正在以这种方式获取选定的按钮 但如果这是正确 最好的方法 我不会 也许有比这更简单或更面向对象的东西 private int getFilterType JRadioButton buttons for int i 0 n butto