带CheckBox的JTable实现

在用户界面的实现上,java的IDE远不如VS的IDE工具,尤其控件资源更是匮乏。标准的eclipse是没有可视化的界面编辑器的,需要借助于可视化Frame插件,才能方便的实现界面的设计。近来,本人有兴趣研究了JTable中添加CheckBox的实现,希望能够给大家带来帮助。

如果有需要自定义组件代码的同学,请到如下URL下载。

自定义组件代码地址:http://download.csdn.net/detail/attagain/4687418

本人进行的实验,按照如下使用方法,可以产生不同的效果。

1、创建空数据的Table的方式

实现代码如下:

// 创建重写表视图

MutiTable jTableDBInfo = new MutiTable();

// 设置自定义数据模型

jTableDBInfo.setModel(new DDLExportTableModel());

// Table可操作属性

jTableDBInfo.setEnabled(true);

// 设置标题带有复选框的列

jTableDBInfo.setCheckHeaderColumn(0);

界面初始化现实如下所示:


2、初始化数据的方式

// 创建重写表视图

MutiTable jTableDBInfo = new MutiTable();
try {

    // 设置自定义数据模型及初始化数据
    jTableDBInfo.setModel(new DDLExportTableModel(new Object[][] { {true, "0x1", "0x2", "0x3"},
                                                                  {false, "1x1", "1x2", "1x3"},
                                                                  {true, "2x1", "2x2", "2x3"}}));

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
JTable中添加JCheckBox可以通过自定义表格渲染器和编辑器的方式来实现。 首先,我们需要自定义一个表格渲染器,用于将数据项以复选框的形式呈现在表格中。我们可以创建一个继承自DefaultTableCellRenderer的类,并在其中重写getTableCellRendererComponent方法。在该方法中,我们可以根据数据的值设置JCheckBox的选中状态,并返回一个标签(JLabel)组件,以显示复选框。 其次,我们还需要自定义一个表格编辑器,用于在用户进行编辑时显示复选框。我们可以创建一个继承自DefaultCellEditor的类,并在其中重写构造方法和getCellEditorValue方法。在构造方法中,我们可以为JCheckBox添加一个ItemListener,用于响应用户的选中行为。在getCellEditorValue方法中,我们可以根据JCheckBox的选中状态返回相应的值。 最后,我们需要将自定义的渲染器和编辑器应用到JTable中的指定列。我们可以通过调用JTable的getColumnModel方法获取表格列模型(TableColumnModel),并调用该模型的getColumn方法获取指定的列。然后,可以分别调用TableColumn的setCellRenderer方法和setCellEditor方法,将自定义渲染器和编辑器应用到该列。 例如: ``` JTable table = new JTable(data, columnNames); // 创建JTable对象,data和columnNames分别表示表格的数据和列名 // 创建自定义渲染器 DefaultTableCellRenderer checkboxRenderer = new DefaultTableCellRenderer() { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { JCheckBox checkBox = new JCheckBox(); checkBox.setSelected((Boolean) value); // 根据数据的值设置复选框的选中状态 return checkBox; } }; // 创建自定义编辑器 DefaultCellEditor checkboxEditor = new DefaultCellEditor(new JCheckBox()) { public Object getCellEditorValue() { JCheckBox checkBox = (JCheckBox) editorComponent; return checkBox.isSelected(); // 根据复选框的选中状态返回相应的值 } }; // 将自定义渲染器和编辑器应用到指定列 TableColumnModel columnModel = table.getColumnModel(); TableColumn checkboxColumn = columnModel.getColumn(0); // 假设要将复选框应用到第一列 checkboxColumn.setCellRenderer(checkboxRenderer); checkboxColumn.setCellEditor(checkboxEditor); ``` 通过以上步骤,我们就能在JTable中的指定列中添加JCheckBox,并实现复选框的显示和编辑功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值