【问题标题】:JCheckBox added in a JTable cell is not visible在 JTable 单元格中添加的 JCheckBox 不可见
【发布时间】:2010-02-19 18:52:54
【问题描述】:

我在 JTable 的单元格中添加了一个 JCheckBox。但是当包含 JTable 的框架加载时,我在 JTable 中看不到 JCheckBox。当我单击该单元格时,它显示 JCheckBox 的真/假值,而不是组件。

checkbox_column=table.getColumnModel().getColumn(4); checkbox_column.setCellEditor(new DefaultCellEditor(checkbox));

在JTable中拖动时如何禁用列重新定位?

【问题讨论】:

  • 您在上一篇文章中被要求阅读关于“如何使用表格”的 Swing 教程。本教程再次包含如何使用复选框的工作示例。你为什么认为我建议你阅读教程。它需要学习,这样您就不会浪费我们的时间来询问文档所涵盖的问题。不仅您甚至没有费心接受所有其他帖子的单一答案。我希望论坛中的其他人将来会像我计划的那样接纳你。

标签: java swing


【解决方案1】:

您设置了处理单元格的就地编辑的 cellEditor。单元格的一般绘制由通过setCellRenderer()设置的单元格渲染器处理

要禁用列重新排序,您需要

table.getTableHeader().setReorderingAllowed(false);

【讨论】:

    【解决方案2】:

    请记住,数据模型(更具体地说,TableModel)与视图是分开的。

    您应该将单元格的值设置为布尔值,而不是将值设置为 JCheckBox。然后确保 TableModel 的 getColumnClass() 方法为第 4 列返回布尔值。有不同的方法可以做到这一点,但creating a custom TableModel 和实现 getColumnClass() 方法是一种方法。

    DefaultCellRenderer/DefaultCellEditor 将显示一个布尔值复选框。正如 Devon 指出的那样,您还可以设置自定义渲染器/编辑器,但您仍然希望在该列中存储布尔值而不是 JCheckBoxes。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 2014-06-27
      • 2013-08-10
      相关资源
      最近更新 更多