首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Java Swing中创建带有复选框的列表?

在Java Swing中创建带有复选框的列表,可以使用DefaultListModelJList组件。以下是一个简单的示例:

代码语言:java
复制
import javax.swing.*;
import java.awt.*;

public class CheckboxList {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> createAndShowGUI());
    }

    private static void createAndShowGUI() {
        JFrame frame = new JFrame("Checkbox List");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(new Dimension(300, 200));

        DefaultListModel<String> listModel = new DefaultListModel<>();
        listModel.addElement("Item 1");
        listModel.addElement("Item 2");
        listModel.addElement("Item 3");

        JList<String> list = new JList<>(listModel);
        list.setCellRenderer(new CheckboxListCellRenderer());
        list.addMouseListener(new CheckboxListMouseAdapter(list));

        JScrollPane scrollPane = new JScrollPane(list);
        frame.add(scrollPane);

        frame.setVisible(true);
    }
}

class CheckboxListCellRenderer extends JCheckBox implements ListCellRenderer<String> {
    public CheckboxListCellRenderer() {
        setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
    }

    @Override
    public Component getListCellRendererComponent(JList<? extends String> list, String value, int index, boolean isSelected, boolean cellHasFocus) {
        setComponentOrientation(list.getComponentOrientation());
        setFont(list.getFont());
        setBackground(list.getBackground());
        setForeground(list.getForeground());
        setSelected(isSelected);
        setEnabled(list.isEnabled());
        setText(value);
        return this;
    }
}

class CheckboxListMouseAdapter extends MouseAdapter {
    private final JList<String> list;

    public CheckboxListMouseAdapter(JList<String> list) {
        this.list = list;
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        int index = list.locationToIndex(e.getPoint());

        if (index != -1) {
            boolean isSelected = list.isSelectedIndex(index);
            list.setSelectionInterval(index, index);
            list.removeSelectionInterval(index, index);
            list.ensureIndexIsVisible(index);
        }
    }
}

在这个示例中,我们创建了一个带有复选框的列表,并添加了一些示例项目。当用户点击列表项时,复选框将被选中或取消选中。这个示例使用了CheckboxListCellRendererCheckboxListMouseAdapter来实现复选框的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

菜单与JApplet组件

​学习目标​ n 创建菜单 n 菜单中的图标 n 菜单中的复选框和单选按钮 n 弹出菜单 n 快捷键和加速器 n...另外,在AbstractAction 构造器中也可以设定图标 ​菜单中的复选框和单选按钮​ 复选框和单选按钮菜单项在文本旁边显示了一个复选框或一个单选按钮。...你需要指定它的父组件和位置。如: popup.show(panel,x,y); 通常当用户点击某个鼠标键时,弹出菜单就会出现,这就是所谓的弹出触发 器。在Windows中,弹出出发器通常是鼠标右键。...在JAVA中,你可以通过在菜单项构造器中指定一个快捷字母来为菜单项设置快捷键,如: JMenuItemitem=new JMenuItem("Cut",'t'); 有时候,你不想在菜单项的第一个匹配快捷键的字母下面画下划线...java.awt.Color; ​import​java.awt.Graphics; ​import​javax.swing.JApplet; //JApplet类是Pannel的子类,所以具有Panel

7310
  • java swing图形化界面_javagui界面设计

    Java Swing 开发中常用的一些组件、布局管理器等相关知识技术,并且每章节都将通过代码实例展示实际应用。...教程总目录: Java Swing 图形界面开发(目录) 1. Swing简介 Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。...Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。 Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。...显示窗口,前面创建的信息都在内存中,通过 jf.setVisible(true) 把内存中的窗口显示在屏幕上。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.7K50

    Swing组件概述

    模型必须实现改变和发现内容的方法。例如:一个文本模型中的方法有:在当前文本中添加或者删除字符以及把当前文本作为一个字符串返回等。再次强调,模型是完全不可见的,显示存储在模型中的数据是视图的工作。 ​...实例分析​ ​​例1​​ 问题的描述: 复选框(JCheckBox)的使用 解决方案: 请看下例 ​package​ com.swing; ​import​ java.awt.BorderLayout;...,该面板是用来加两个复选框组件 JPanel buttonPanel = ​new​ JPanel(); // 创建一个复选框组件 bold = ​new​ JCheckBox...你可以为任何扩展了 JComponent的组件提供一种边界。最常见的用法是在一个面板周围设置一 种边界,然后用其他用户界面元素(如单选按钮)来填充该面板。...如果该 下拉列表框被设置成可编辑的,那么你可以编辑当前选择项,这时候该组件 才称作组合框----它把编辑框的灵活性与一组预定义的选择项组合起来。 JComboBox类提供了组 合框组件。

    6710

    java swing 添加 jcheckbox复选框

    总体上而言,Java Swing编程有两大特点:麻烦、效果差。        ...通过一段代码来创建属于我们的窗体: 1 import javax.swing.JFrame; 2 2 3 3 /** 4 4 * 我的第一个Java窗体 5 5 * 6...小贴士:使用setLayout设置布局,参数传递null; 讨论一下怎样在窗体的表格中显示复选框。即实现如下效果: ? 小贴士二:使用add方法向控件添加内容控件。...②然后我们需要将表格对象创建出来并放入该容器控件,(如JDK_API_1_6_zh_CN.CHM)创建表格控件。...new ……()是构造方法,调用来构造一个匿名对象,其后的{}不是Java的特殊语法,但是Java中可以将方法定义在里面(这里的方法生命周期与匿名对象相 同),当然,此处是用于实现接口的方法。

    3.4K00

    java学习之路:32.史上最全的Swing常用组件

    关于java文档,可自行下载: java文档 二.Swing常用组件 组件名称 定义 JButton 代表Swing按钮,按钮可以带一些图片或文字 JCheckBox 代表Swing中的复选框组件...JComboBox 代表Swing下拉列表框,可以在下拉显示区域显示多个选项 JFrame 代表Swing的框架类 JDialog 代表Swing版本的对话框 JLabel 代表Swing中的标签组件...Swing中的文本区域 JOptionPane 代表Swing中的一些对话框 每个组件都有很多种用法,建议查看java文档。...3.创建带有图标的按钮 想使用带有图标的按钮,需要使用Icon接口:Icon import java.awt.*; import javax.swing.*; public class DrawIcon...---- 四.JCheckBox| 代表Swing中的复选框组件 JCheckBox类有8中构造方法: 构造方法 解释 JCheckBox() 创建一个最初未选中的复选框按钮,该按钮没有文本,也没有图标

    7.5K32

    Java Swing用户界面组件:复选框+ 滑块+组合框+边界+单选按钮

    在本节中,将介绍如何编写程序实现复选框、单选按钮、选项列表以及滑块。 复选框 如果想要接收的输入只是“是”或“非”,就可以使用复选框组件。复选框自动地带有标识标签。...例9-5 CheckBoxTest.java javax.swing.JCheckBox 1.2 • JCheckBox(String label) 用给定的标签构造一个复选框,该标签初始化为“...注意,按钮组仅仅控制按钮的行为,如果想把这些按钮组织在一起布局,需要把它们添加到容器中,如JPanel。 看一下图9-15和图9-16,会发现单选按钮的外观不同于复选框。...highlight, Color shadow) 创建带有柔和角的斜面边界。...也可以提供其他标尺标记,如字符串或者图标(见图9-19)。这样做有些麻烦。需要填充一个键为Integer类型而值为Component类型的散列表(在JDK 5.0中,自动打包可以使这个过程容易很多)。

    7.3K10

    JavaSwing 图形界面GUI王者级开发(大纲)

    0 JavaSwing 简介 Java Swing 图形界面开发简介 1 布局管理器 JavaSwing_1.1: FlowLayout(流式布局) JavaSwing_1.2: GridLayout...JLabel(标签) JavaSwing_2.2: JButton(按钮) JavaSwing_2.3: JRadioButton(单选按钮) JavaSwing_2.4: JCheckBox(复选框...文本框) JavaSwing_2.7: JPasswordField(密码框) JavaSwing_2.8: JTextArea(文本区域) JavaSwing_2.9: JComboBox(下拉列表框...绘图: 使用Graphics类绘制线段、矩形、椭圆/圆弧/扇形、图片、文本 Java图片操作 — 图片的读取、绘制、缩放、裁剪、保存 Java代码截屏:使用 Java 代码截取电脑屏幕并保存 Java...模拟鼠标键盘输入事件 — Robot 类 Java操作桌面应用 — Desktop 类 Java操作系统剪贴板(Clipboard)实现复制和粘贴 7 更多操作 如何在Swing组件中使用HTML

    1.3K10

    JAVA学习Swing章节按钮组件JButton的简单学习

    ; import javax.swing.JOptionPane; import javax.swing.WindowConstants; /** * 1:按钮在Swing中是较为常见的组件,用于触发特定动作...* Swing中提供了多种按钮,包括提交按钮,复选框,单选按钮等 * 这些按钮都是从AbstractButton类中继承而来的 * * 2:Swing中的提交按钮组件(JButton)由JButton...; /** * 1:复选框组件JCheckBox * 其在Swing组件中的使用也非常广泛,它具有一个方性图标,外加一段描述性文字 * 复选框区别于单选按钮就是每一个复选框都提供了选中和不选中两种状态...* * 2:单选按钮是Swing组件中JRadioButton类的对象,该类是JToggleButton的子类 * 而JToggleButton类又是AbstractButton类的子类,所以控制单选按钮的诸多方法都是...此简例只是简单的描写了如何实现单选按钮,并没有产生反应,仅是案例演示 package com.swing; import java.awt.Color; import java.awt.Container

    3.2K50

    【Java AWT 图形界面编程】AWT 常用 Component 组件 ( Frame | Label | Checkbox | List | Choice | TextField )

    ; Checkbox : 复选框组件 ; CheckboxGroup : 单选框组件 , 将多个复选框组合 , 变成单选选项 , 每个组合中只有一个 CheckBox 组件可以被选中 ; Choice...: 下拉框组件 ; List : 列表组件 , 可添加多个列表项 ; Panel : 容器组件 , 该容器不能单独显示 , 必须放在窗口组件 如 Frame 中 才可显示 ; ScrollBar :...-- 代码示例 : import javax.swing.*; import java.awt.*; public class HelloAWT { public static void main...list.add("列表项3"); box.add(list); // 自动设置 Frame 窗口合适的大小 frame.pack(...); frame.setVisible(true); } } 执行效果 : 向多行文本框中输入文本 : 下拉框展示 : 复选框展示 : 单选展示 : 列表项多选

    1.9K10

    07.HTML实例

    此例演示如何在 HTML 文件中写地址。 此例演示如何实现缩写或首字母缩写。 此例演示如何改变文字的方向。 此例演示如何实现长短不一的引用语。...制作图像链接 创建图像映射 点击图片映射到另一张图 HTML 表格 简单的表格 没有边框的表格 表格中的表头 带有标题的表格 跨行或跨列的表格单元格 表格内的标签 单元格边距(Cell padding...创建文本域(Text fields) 创建密码域 复选框 单选按钮 简单的下拉列表 预选下拉列表 本例演示如何创建一个文本域(多行文本输入控件)。...创建一个按钮 本例演示如何在数据周围绘制一个带标题的框。...带有文本域与输入域的表单 点击提交 带有复选框与提交按钮的form表单 点击提交 带有单选框与提交按钮的表单 点击提交 发送邮件表单 HTML iframe 内联框架 (HTML页面中插入框架)

    8.2K40

    java swing一篇轻松学习(高考后可以自学)

    new Font("华文行楷",Font.BOLD,26)); //修改字体样式 JCheckBox chkbox1=new JCheckBox("拙石", true); //创建指定文本和状态的复选框...JCheckBox chkbox2=new JCheckBox("璞玉"); //创建指定文本的复选框 JCheckBox chkbox3=new JCheckBox...void insertItemAt(Object anObject,int index) 在下拉列表框中的指定索引处插入项 void removeltem(0bject anObject) 在下拉列表框中删除指定的对象项...void removeItemAt(int anlndex) 在下拉列表框中删除指定位置的对象项 void removeAllItems() 从下拉列表框中删除所有项 int getItemCount...() 返回下拉列表框中的项数 Object getItemAt(int index) 获取指定索引的列表项,索引从 0 开始 int getSelectedIndex() 获取当前选择的索引 Object

    9.7K10

    如何在 Linux 中创建带有特殊字符的文件?

    在 Linux 系统中,创建文件是进行各种操作的基础。有时候,我们需要创建带有特殊字符的文件,例如包含空格、特殊符号或非ASCII字符的文件。...本文将详细介绍在 Linux 中如何创建带有特殊字符的文件,以便您能够轻松地完成这样的任务。...步骤二:使用引号创建文件另一种创建带有特殊字符的文件的方法是使用引号。在 Linux 中,可以使用单引号(')或双引号(")将带有特殊字符的文件名括起来。...步骤四:使用 echo 命令创建文件除了使用 touch 命令,您还可以使用 echo 命令来创建带有特殊字符的文件。...结论通过本文的指导,您已学会在 Linux 中创建带有特殊字符的文件。

    79100

    如何在 Linux 中创建带有特殊字符的文件?

    在 Linux 系统中,创建文件是进行各种操作的基础。有时候,我们需要创建带有特殊字符的文件,例如包含空格、特殊符号或非ASCII字符的文件。...本文将详细介绍在 Linux 中如何创建带有特殊字符的文件,以便您能够轻松地完成这样的任务。...步骤二:使用引号创建文件另一种创建带有特殊字符的文件的方法是使用引号。在 Linux 中,可以使用单引号(')或双引号(")将带有特殊字符的文件名括起来。...步骤四:使用 echo 命令创建文件除了使用 touch 命令,您还可以使用 echo 命令来创建带有特殊字符的文件。...结论通过本文的指导,您已学会在 Linux 中创建带有特殊字符的文件。

    86020
    领券