如何使用 jcheck 框和多项选择创建 jcombobox

2023-12-23

我想创建带有复选框和多项选择的 JComboBox。我在渲染 jlist 后创建了一个带有复选框的列表。我不知道如何用 jcombobox 渲染它。或者是否可以将 jlist 作为下拉列表,如组合框。 对于 jlist 渲染,我使用以下代码

  DefaultListModel listModel = new DefaultListModel();
    ListCheckBox li= new ListCheckBox(listModel);
    JScrollPane jsp= new JScrollPane(li);
    add(jsp);

    listModel.add(0,new JCheckBox("Other Court"));

    listModel.add(0,new JCheckBox("Tribunal Court"));

    listModel.add(0,new JCheckBox("High Court"));
   listModel.add(0,new JCheckBox("Supreme Court"));

ListCheck Box类如下

 import javax.swing.*;
 import javax.swing.border.*;
 import java.awt.*;
 import java.awt.event.*;

 public class ListCheckBox extends JList
{
protected static Border noFocusBorder =
 new EmptyBorder(1, 1, 1, 1);

public ListCheckBox(DefaultListModel model)


  {

   super(model)  ;
   setCellRenderer(new CellRenderer());

    addMouseListener(new MouseAdapter()
     {
        public void mousePressed(MouseEvent e)
        {
           int index = locationToIndex(e.getPoint());

           if (index != -1) {
              JCheckBox checkbox = (JCheckBox)
                          getModel().getElementAt(index);



              checkbox.setSelected(
                                 !checkbox.isSelected());
              repaint();
            }
          }
        }
      );

     setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
   }

   protected class CellRenderer implements ListCellRenderer
   {
   public Component getListCellRendererComponent(
    JList list, Object value, int index,
    boolean isSelected, boolean cellHasFocus)
     {  JCheckBox checkbox = (JCheckBox) value;
     checkbox.setBackground(isSelected ?
      getSelectionBackground() : getBackground());
     checkbox.setForeground(isSelected ?
     getSelectionForeground() : getForeground());
     checkbox.setEnabled(isEnabled());
     checkbox.setFont(getFont());
     checkbox.setFocusPainted(false);
     checkbox.setBorderPainted(true);
     checkbox.setBorder(isSelected ?
      UIManager.getBorder(
       "List.focusCellHighlightBorder") : noFocusBorder);
      return checkbox;
      }
    }
 }

最简单的解决方案可能是创建一个带有JCheckBoxMenuItem对于每个选项,然后将该弹出菜单附加到一个按钮,该按钮显示您想要为“所选项目”显示的任何内容。

final JPopupMenu menu = new JPopupMenu();
menu.add(new JCheckBoxMenuItem("Other Court"));
menu.add(new JCheckBoxMenuItem("Tribunal Court"));
menu.add(new JCheckBoxMenuItem("High Court"));
menu.add(new JCheckBoxMenuItem("Supreme Court"));

final JButton button = new JButton();
button.setAction(new AbstractAction("Court") {
    @Override
    public void actionPerformed(ActionEvent e) {
        menu.show(button, 0, button.getHeight());
    }
});

JFrame frame = new JFrame();
frame.getContentPane().add(button);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 jcheck 框和多项选择创建 jcombobox 的相关文章

  • 不同的 JDK 更新会产生不同的 Java 字节码吗?

    假设场景 我有一个项目 其源合规性级别指定为 1 5 现在 我使用两种不同的 JDK 编译此项目 首先使用 JDK 6 Update 7 然后使用 JDK 6 Update 20 这两个不同的 JDK 是否会生成不同的 Java 字节代码
  • Eclipse 自动完成更改变量名称

    只是一个愚蠢的问题 但很难搜索 因为有很多关于 Eclipse 自动完成的主题 而且很难找到与我的问题匹配的内容 所以问题是 如果我写 MyClass MyVarName 然后按空格键 添加 new MyClass Eclipse 自动添加
  • 警告:跳过条目,因为它不是绝对 URI。 NetBeans 中的 GlassFish

    我成功安装了 GlassFish 但是 当我启动服务器时 我收到两条警告消息 警告 跳过条目 因为它不是绝对 URI 那是关于什么的 Launching GlassFish on Felix platform Aug 09 2014 10
  • Java 9 中可以使用提前编译吗?

    As per JEP 295 http openjdk java net jeps 295 任何 JDK 模块 类或用户代码的 AOT 编译都是实验性的 JDK 9 中不支持 要使用 AOT 化的 java base 模块 用户必须编译该模
  • 我需要显式关闭连接吗?

    我持有一个实例MongoClient and DB在我的应用程序中 每次我想执行某些操作时 我都会调用getCollection 我想知道是否需要显式关闭连接 就像connection close 在 JDBC 中 强调一下 我只有一个Mo
  • ASM之前看一下maxStack指令吗?

    我正在尝试使用 ASM 库将字节代码转换为不同的格式 这可以使用 MethodVisitor 来完成 就像这个简单的测试代码一样 return new MethodVisitor ASM7 Override public void visi
  • JSON 对象数组转 Java POJO

    将此 JSON 对象转换为 java 中的类 您的 POJO 类中的映射将如何 ownerName Robert pets name Kitty name Rex name Jake This kind of question is ver
  • Spring 术语中命令、表单、业务和实体对象之间的区别?

    我试图理解这些对象在松散耦合系统方面的差异 业务对象与实体对象相同吗 我可以使用 MVC 中的业务或实体对象作为我的命令对象吗 命令对象与表单对象相同吗 只是寻找 Spring 术语和用法中对象类型的说明 我在 stackoverflow
  • 在java.util中获取错误ArrayList不带参数[重复]

    这个问题在这里已经有答案了 我已经创建了一个类 Student 现在我尝试将我的 Student 对象存储在 ArrayList 中 但在编译 ArrayList 不接受参数时出现错误 我已经检查了我的代码很多次 但找不到问题所在 我的学生
  • 在 JavaFX 中拖动未装饰的舞台

    我希望将舞台设置为 未装饰 使其可拖动且可最小化 问题是我找不到这样做的方法 因为我遇到的示例是通过插入到主方法中的方法来实现的 我想通过控制器类中声明的方法来完成此操作 就像我如何使用下面的 WindowClose 方法来完成此操作 这是
  • java.lang.IllegalArgumentException:addChild:子名称“/”不唯一

    java lang IllegalArgumentException addChild 子名称 不唯一 通过在 tomcat webapps 文件夹中启用和禁用 saml 单点登录来替换现有 war 文件时遇到此问题 我正在使用 apach
  • 在 Java 中使用 Inflater 解压缩 gzip 数据

    我正在尝试使用以下方法解压缩 gzip 数据Inflater 根据文档 如果参数 nowrap 为 true 则 ZLIB 标头和校验和 字段将不会被使用 这提供了与 GZIP 和 PKZIP 使用的压缩格式 注意 使用 nowrap 选项
  • 使用 include 进行 JAXB 剧集编译不起作用

    我有 2 个模式 A B 我在 B 中重用了一些 A 元素 我不使用命名空间 我在用着
  • Akka 和 spring 配置

    我正在尝试将 akka 与 spring 结合起来 但没有成功 基本上 我的应用程序似乎不习惯读取 akka 模式 具有架构的 service context xml 的一部分
  • 如何配置嵌入式 MongoDB 以在 Spring Boot 应用程序中进行集成测试?

    我有一个相当简单的 Spring Boot 应用程序 它公开一个小型 REST API 并从 MongoDB 实例检索数据 对 MongoDB 实例的查询通过基于 Spring Data 的存储库 下面的一些关键代码 Main applic
  • 如何修改生成的SOAP请求?

    我正处于创建输出拦截器并从 SOAP 消息中获取 OuputStream 的阶段 但是 如何在将 SOAP 信封发送到端点之前对其进行修改呢 我想删除一些 xml 元素 一种方法是获取文档并通过 XSLT 转换运行它 您可以通过调用来获取拦
  • Java 相当于 Python 的 urllib.urlencode(基于 HashMap 的 UrlEncode)

    From https stackoverflow com questions 2018026 should i use urllib or urllib2 2018103 2018103 Java 中 Python 的 urllib url
  • Python 可以替代 Java 小程序吗?

    除了制作用于物理模拟 如抛射运动 重力等 的教育性 Java 小程序之外 还有其他选择吗 如果你想让它在浏览器中运行 你可以使用PyJamas http pyjs org 这是一个 Python 到 Javascript 的编译器和工具集
  • 将带有时区的 Joda-Time `DateTime` 转换为没有时区的 DateTime?

    Given a DateTime http www joda org joda time apidocs org joda time DateTime html例如2015 07 09T05 10 00 02 00 using 乔达时间 h
  • 安卓框架?

    是否有任何框架比构建 Android 应用程序更容易 您会对其中一个感兴趣吗 很快就会有 我正在开发 DroidFu 一个 Android 共享库 它将为您提供 活动 和服务 中直接提供大量实用功能 例如生成列表和错误对话框 检查 Inte

随机推荐

  • swift 中的 T.Type 是什么

    谁能告诉我什么是T Type当我使用JSONDecoder decode 我认为它是解码我编码的数据的类型 很多例子都使用上面的方法 如下所示 JSONEncoder decode People self from data 如果我检查该方
  • 插件“react”中的错误与之间发生冲突

    我在我的主 React 应用程序中使用另一个 React 存储库 我们称之为设计 作为 git 子模块 我使用 webpack 来构建主应用程序 将子模块集成到应用程序中后 我在 webpack 构建过程中收到以下错误 ERROR in P
  • 如何使用 widgets.SelectMultiple() 交互地选择要绘制的系列?

    背景 类似的问题已被问到here https stackoverflow com questions 12891860 interactive selection of series in a matplotlib plot 但不是很具体
  • Angular 6 库共享样式表

    如何设置 index scss 并将变量 混合等的全局样式表导入到 Angular 6 库中 Angular CLI 生成一个带有根组件和组件 scss 的 lib 但添加或导入到根组件的样式不可用于子组件 默认情况下 封装样式是有意义的
  • 在 SQL Server Management Studio 中将持久计算列标记为 NOT NULL

    在 SQL Server 2005 中可以创建一个既持久又定义为 NOT NULL 不能包含空值 的计算列 当使用像 Linq2Sql 这样的库时 如果我们想避免大量的手动工作来确保我们的代码列 始终 具有值 那么第二个属性非常重要 使用直
  • Android 1.5 Gradle Sync 从未完成

    我最近升级到 Android Studio 1 5 然而 更新后 Gradle 陷入 正在刷新 项目 Gradle 项目 并且永远不会停止 以前版本的 Android Studio 运行得很好 我该如何解决这个问题 我使用的是 Ubuntu
  • 在轴上手动定位刻度 - D3

    我正在使用 d3 制作图表 我想将刻度线放在 xAxis 上我指定的位置 例如 如果我想要以下位置的刻度线 11 0 11 18 30 42 我该怎么做 Thanks 请参阅文档 axis tickValues https github c
  • 如何限制仅从 NLB 对 EC2 的访问

    Question 有没有办法确保访问仅来自特定的 NLB 在目前NLB的限制下 不知道有没有办法 局限性 AWS Network Load Balancer NLB 没有安全组 SG 因此无法使用 SG 来验证源是否为 NLB NLB 实例
  • 计算某个点与英国海岸之间的最小距离

    我一直在遵循所示的示例here https stackoverflow com questions 21295302 calculating minimum distance between a point and the coast 但对
  • 永久修改App.config C#

    好的 所以我正在尝试使用appSettings中的元素App Config文件来确定使用哪种存储 这是我的应用程序配置 file
  • Google 一键登录 (YOLO) + Firebase 身份验证?

    我注意到 Google 已重新开放Google 一键登录和自动注册 https developers google com identity one tap web由于安全问题而暂停后 我一直在尝试了解如何使其与 Firebase Auth
  • 如何在unix中使用mv命令重命名多个文件?

    我正在尝试用扩展名重命名多个文件xyz n 到扩展xyz 例子 mv xyz 1 to xyz 但错误是这样的 xyz No such file or directory 不知道 mv 是否可以直接使用 工作 但这可以工作 find nam
  • 如何解决 NuGet.targets(124,5): 错误:值不能 > null。 (参数“文件夹名称”)错误?

    在构建项目时我收到此错误 错误 NETSDK1004 资产文件 未找到 J Test core fx core obj project assets json 运行 NuGet 包恢复生成此文件 FxCore C 程序 文件 dotnet
  • OpenGL VAO 最佳实践

    我面临着一个我认为依赖于 VAO 的问题 但我不确定 我不确定 VAO 的正确用法 我在 GL 初始化期间所做的只是一个简单的 glGenVertexArrays 1 vao 随后是一个 glBindVertexArray vao 后来 在
  • Java 中的 Skyscanner API 示例

    我正在尝试用 Java 构建一个请求 Skyscanner API 的示例 但我做错了一些事情 skyscanner API 测试的链接 http business skyscanner net portal en GB Documenta
  • 使用 OpenXML 将图片插入到 Word 文档的页眉

    我知道也有同样的问题here https stackoverflow com questions 17726196 how to insert image into header of openxml word document 但是答案有
  • 无法加载文件或程序集“System.Windows.Interactivity”[重复]

    这个问题在这里已经有答案了 我刚刚添加了 System Windows Interactivity 程序集 XamlParse 在运行时抛出异常 无法加载文件或程序集 System Windows Interactivity PublicK
  • 迁移 UIWebView 到 WKWebView

    在我的 iOS 应用程序中 我尝试将旧的 UIWebView 代码迁移到 WKWebView 因为理论上 WKWebView 比 UIWebView 更快 更高效 我看过很多教程 比如here https stackoverflow com
  • 如何使用RedBeanPhp批量插入?

    我希望有一个关于如何在 redbeanphp 中批量插入新 bean 而不循环遍历每个实例的示例 它在此处显示了创建和保存 bean 的示例 http redbeanphp com manual create a bean http red
  • 如何使用 jcheck 框和多项选择创建 jcombobox

    我想创建带有复选框和多项选择的 JComboBox 我在渲染 jlist 后创建了一个带有复选框的列表 我不知道如何用 jcombobox 渲染它 或者是否可以将 jlist 作为下拉列表 如组合框 对于 jlist 渲染 我使用以下代码