java swing中在jTable中添加多个复选框的方式如下:

import java.awt.Component;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

import javax.swing.table.*;

public class MyFirstJFrame extends JFrame {

// 作为测试的main方法

public static void main(String[] args) {

new MyFirstJFrame().setVisible(true);

}

/**

* 构造方法

*/

public MyFirstJFrame() {

InitialComponent();

}

/**

* 初始化组件的方法

*/

private void InitialComponent(){

// 设置窗体参数

// 设置布局模式

setLayout(null);

// 设置窗体大小

setSize(480, 360);

// 设置窗体居中(非常规方法)

setLocationRelativeTo(null);

// 关闭窗体退出程序

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

// 初始化面板

panel = new JPanel();

panel.setSize(this.getWidth(), this.getHeight());

panel.setLocation(0,0);

panel.setLayout(null);

// 初始化表格

table = new JTable(new DefaultTableModel(new Object[][]{{"第一行"},{"第二行"},{"第三行"},{"第四行"}}, new String[]{"测试行1","测试行2"}){

/* (non-Javadoc)

* 重写方法,判断表单元格是否可编辑

* 可以通过row和column索引判断某一个单元格是否可编辑

* 此处设为都不可编辑

* @see javax.swing.table.DefaultTableModel#isCellEditable(int, int)

*/

@Override

public boolean isCellEditable(int row, int column) {

return false;

}

});

// 开始向表格中添加复选框(注意:此示例较为简单,缺省很多判断,也没有动态代码支持)

// 通过设置列渲染

// 方法一:直接方式 使用TableColumn的setCellRenderer方法(推荐)

// 此方法可以设置某一列的渲染(即使用某一个组件--即控件来显示单元格数据)

table.getColumnModel().getColumn(1).setCellRenderer(new TableCellRenderer(){

/*(non-Javadoc)

* 此方法用于向方法调用者返回某一单元格的渲染器(即显示数据的组建--或控件)

* 可以为JCheckBox JComboBox JTextArea 等

* @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)

*/

@Override

public Component getTableCellRendererComponent(JTable table,

Object value, boolean isSelected, boolean hasFocus,

int row, int column) {

// 创建用于返回的渲染组件

JCheckBox ck = new JCheckBox();

// 使具有焦点的行对应的复选框选中

ck.setSelected(isSelected);

// 设置单选box.setSelected(hasFocus);

// 使复选框在单元格内居中显示

ck.setHorizontalAlignment((int) 0.5f);

return ck;

}});

// 方法二:先设置列编辑器,然后设置单元格渲染

// 设置列编辑器

// 在以复选框为对象设置列编辑器时,必须保证该列能够被编辑,否则无法更改状态

// (此步骤可以省略,省略时不要忘记将列设为不可编辑)

// table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(new JCheckBox()));

// 设置单元格渲染(这里是设置表格级别的渲染)

/*table.setDefaultRenderer(Object.class, new TableCellRenderer(){

@Override

public Component getTableCellRendererComponent(JTable table,

Object value, boolean isSelected, boolean hasFocus,

int row, int column) {

// 判断是否为需要渲染的列

if(column == 1){

// 和方法一基本一致

JCheckBox box = new JCheckBox();

box.setSelected(isSelected);

// 设置单选box.setSelected(hasFocus);

box.setHorizontalAlignment((int) CENTER_ALIGNMENT); // 0.5f

return box;

}

// 如果不是需要渲染的列,封装文本域显示数据

return new JTextArea(value.toString());

}});*/

// 在多选是需要按住Ctrl键或者鼠标按住拖过连续的需要选中的行,应该给用户说明

// 第一种方法是被推荐的,因为它具有选中的高亮显示,界面能更加友好

table.setSize(panel.getWidth(),panel.getHeight() - 90);

table.setLocation(0, 0);

btn = new JButton("Test");

btn.setSize(80,40);

btn.setLocation((panel.getWidth()) / 2 - 40, panel.getHeight() - 80);

// 按钮点击时显示当前选中项

btn.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

for(int rowindex : table.getSelectedRows()){

JOptionPane.showMessageDialog(null, rowindex + " " + table.getValueAt(rowindex, 0));

}

}});

panel.add(table);

panel.add(btn);

this.add(panel);

}

// 定义一些必要的组件

private JPanel panel;

private JTable table;

private JButton btn;

}

java复选框只会选中一个_java复选框选中相关推荐

  1. c MYSQL查询数据在窗体展示,C运行3个MySQL插入查询,只需按一个按钮-来自文本框和列表视图的数据...

    我想知道你能不能帮我.首先,我想说这是我在C中创建的第一个应用程序,所以请接受我的代码并不完美. 我想要达到的目标: 我的应用程序将是一个汽车维修管理应用程序.我有一个面板,上面有几个文本框和一个列表 ...

  2. java回车后自动从一个文本框切换到另一个_Java实用教程-Java基本语法-Java程序的构成...

    Java源程序逻辑构成分为两大部分:程序头包的引用和类的定义. 1.程序头包的引用 主要是指引用JDK软件包自带的包,也可以是自己定义的类.引用之后程序体中就可以自由应用包中的类的方法和属性等. 2. ...

  3. 一个简单的选品攻略,Shopee印尼站点卖家必看

    shopee印尼站是属于小语种市场现阶段适用发布英文商品,上架后会将商品标题相继译成本地语言表达,Shopee也会分配本地客服来回应顾客的询盘. 在东南亚的多个电商市场中,印尼市场是较大的,近些年印尼 ...

  4. vue复选框选中一个全选中了

    vue复选框选中一个全选中了 在业务开发中,使用了checkbox-group组件,发现点击其中的一个选项后,所有数据都被选中了,取消也是全部取消了. 原因:绑定数据的时候,定义的是字符串,修改为数组 ...

  5. Java学习day078 Swing用户界面组件(四:选择组件)(复选框、单选钮、边框、组合框、滑动条)

    使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识. day078   Swing用户界面组件(四:选择组件)(复选框.单选钮.边框.组合框.滑动条) 前 ...

  6. html清空复选框的值,html,删除复选框选中的内容

    首先是选中复选框,可以自己单击一个个的选,这个就不用多说了吧!也可以批量操作,如用全选按钮,主要是设置复选框的.checked值.可以通过调用javascript函数来实现. 方法如下: 复选框的定义 ...

  7. ztree 点击文字也可以选中前面的复选框

    分享一个小方法,实现ztree  点击文字,也可以选中前面的  复选框   radio  或者 checkbox 在设置树的时候,加上这句话 callback: {  onClick: functio ...

  8. PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态

    先看效果图,选中了几行,然后将选中的内容展示出来. 我设置两个有序序列,分别存储对应的复选框和行内容. 我的行内容是用的 label 标签. # 存储右边label组件的有序列表def get_L_b ...

  9. JQuery获取选中的元素(单选框复选框)及其他等

    看注释 <!DOCTYPE html> <html><head><meta charset="utf-8"><title> ...

最新文章

  1. 山东省2021年普通高考成绩录取去向查询,2018年山东高考录取去向查询时间及入口...
  2. Eclipse插件安装方式及使用说明
  3. 公开羞辱邻座大码乘客 美国一女乘客被逐下客机
  4. 北航研究生计算机学院,北航计算机学院考研经验
  5. Babelfish (STL)
  6. Redis添加从节点
  7. SharePoint 2010 master page 控件介绍(5):其他
  8. python3.7.4怎么运行_记一次win7在python3.7.4环境启动ride报错解决
  9. TMS物流运输管理系统、智慧物流、智能运输、运单管理、预开单、补录运单、提货管理、库存管理、签收管理、短驳管理、车辆配载、送货管理、回单管理、退货管理、中转管理、承运商、路由、车线、司机、油卡、车辆
  10. 小D课堂 - 零基础入门SpringBoot2.X到实战_汇总
  11. python:植物大战僵尸源代码
  12. 蓝海灵豚医疗器械管理软件隐形眼镜专版
  13. EyouCms1.0前台GetShell漏洞复现
  14. PowerDesign的基本使用
  15. java 微分方程求解_解微分方程
  16. MAXIMO语言切换,以及设置多语言
  17. 使用Bboss处理ES的dsl语句
  18. 使用Python和Numpy构建神经网络模型
  19. MATLAB怎么生成一个周期信号,matlab产生方波脉冲和周期性方波信号
  20. 开题报告中拟解决的主要问题怎么写?

热门文章

  1. UE3 后期处理编辑器用户指南
  2. 我们为什么这样选择损失函数
  3. Java Web:session
  4. xtrabackup备份还原MySQL数据库
  5. [js高手之路]javascript腾讯面试题学习封装一个简易的异步队列
  6. 老男孩教育每日一题-124天:当我们使用ssh-keygen命令的时候,如何一键非交互生产密钥对呢?...
  7. 项目架构中遇到需考虑的问题
  8. 一个简单例子:贫血模型or领域模型
  9. ×××送通知服务教程 Apple Push Notification Services Tutorial
  10. Wcf Rest Service模板--方法输入输出流数据