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

如何在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来实现复选框的功能。

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

相关·内容

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

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

65500

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

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

75820
  • 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.1K32

    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.1K10

    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图形化界面_javagui界面设计

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

    1.6K50

    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 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.4K10

    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.8K10

    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.3K00

    07.HTML实例

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

    8.1K40

    html下拉框设置默认值_html下拉列表框默认值

    8.3多行文本输入框 8.4下拉列表框、 在表单,通过和标记可 以在浏览器设计一个下拉式列表带有滚动 …… > 指定要创建控件类型 Text 默认值,创建一个单行文本输入控件 Password...创建一个密码框输入控件 Checkbox 创建一个复选框控件 Radio 创建一个单选按钮控件 Submit…… 7.要在表单添加一个默认时为选中状态复选框,应使用语句 ⑨。...HTML 基本语法与基本结构(重点) 标记…… 2 【案例16】趣味选择题 案例引入 学习表单核心是学习表单控件,HTML 语言提供了一系列表单控件,用于定义不同 表单功能,文本输入框、下拉列表...必须定义度量范围,既可以在 text ,也可… 如何在 EXCEL 建立下拉列表 1、 在本工作簿空白列输入下拉菜单内容,然后选中后右键: 创建列表如下: 复制“=AC1:AC10” 2、 选中要建下拉菜单...下拉列表框,节省空间 下拉列表在网页也常会用到,它可以有效节省网页空… (复选框 ) 2).

    33.8K21

    1小时学会通过Java Swing Design设计java图形化

    环境与工具: 系统环境:win10 开发工具:Eclipse IDE for Java Developers - 2020-09 数据库:MySQL5.6 学习目标: 一般大一结束时候需要做一个类似一下内容...---- 1、项目创建 使用eclipse直接创建一个java空项目即可,唯一要注意就是创建java时候不是点击【class】而是创建【JFrame】,通过【JFrame】才能使用设计工具【Design...这里点【other】因为【JFrame】在这个选项栏。...JPasswordField 密码框 JComboBox 下拉列表框 JList 列表 JTable 表格 画有些乱,但是基本上一眼就能看出来是啥:  表格JTable: JPanel设置上下布局...javax.swing.JButton; import javax.swing.ButtonGroup; import java.awt.event.ActionListener; import java.awt.event.ActionEvent

    1.1K10

    Java-GUI 编程之 Swing

    Swing概述  实际使用 Java 开发图形界面程序时 ,很少使用 AWT 组件,绝大部分时候都是用 Swing 组件开发 。...Swing是由100%纯 Java实现,不再依赖于本地平台 GUI, 因此可以在所有平台上都保持相同界面外观。...由于 Swing 所有组件完全采用 Java 实现,不再调用本地平台 GUI,所以导致 Swing 图形界面的显示速度要比 AWT 图形界面的显示速度慢一些,但相对于快速发展硬件设施而言,这种微小速度差别无妨大碍...Swing 提供这些优势,让 Java 图形界面程序真正实现了 " Write Once, Run Anywhere" 目标。...Swing 类库包含了几套UI代理,分别放在不同包下, 每套UI代理都几乎包含了所有 Swing组件 ComponentUI实现,每套这样实现都被称为一种PLAF 实现 。

    2.4K10
    领券