【问题标题】:How to make a column, row or cell editable in a GlazedLists/JTable in java?如何在 Java 的 GlazedLists/JTable 中使列、行或单元格可编辑?
【发布时间】:2012-06-06 10:04:26
【问题描述】:

任何人都可以写一行代码来展示如何使 GlazdJTable 的单元格可编辑吗?

JTable table = new Jtable();
    TableFormat tableFormat = GlazedLists.tableFormat(properties, headers);
    model = new EventTableModel<Artikel>(filterList, tableFormat);
    selectionModel = new EventSelectionModel<Artikel>(filterList);

    table.setSelectionModel(selectionModel);
    table.setModel(model);

// 如何设置表格单元格可编辑?

注意:我知道TableFormat必须实现WritableTableFormat接口。但我不知道我应该创建自定义表格格式还是可以像 JTable 一样设置 Jtable 单元格可编辑。

【问题讨论】:

  • “任何人都可以丢一行代码吗..” 对不起,不行。这需要 2 行代码。
  • 酷,让我们成为 2 行代码。
  • DWS -> 带有讽刺意味。
  • DWS 代表什么? DWS:暂停驾驶 DWS:Delphi Web 脚本 DWS:分布式兵棋推演系统 DWS:睡着驾驶 DWS:睡着驾驶 DWS:滴水讽刺 DWS:驾驶员体重传感器 DWS:干湿雪地 DWS:驾驶员工作空间 DWS:驾驶员体重传感器DWS:灾害预警卫星
  • @itro 的答案让您取得进展了吗?

标签: java swing glazedlists


【解决方案1】:

覆盖TableModel's 方法 public boolean isCellEditable(int rowIndex, int columnIndex) 为可编辑返回 true,为其余单元格返回 false。

【讨论】:

  • 我的模型是默认的 EventTableModel ,而不是能够覆盖模型的自定义 EventTableModel 。如果我错了,请纠正我?
  • API 显示公共类 EventTableModel&lt;E&gt; extends AbstractTableModel implements ListEventListener&lt;E&gt;,那么 StanislavL 的建议可能是正确的
【解决方案2】:

推荐的方法是使用WritableTableFormat。 EventTableModel 检查表格格式是否为 WritableTableFormat,如果是,则将 isEditable() 问题委托给该格式(如EventTableModel docs 中所述)。否则 EventTableModel 假定表格不可编辑。

目前您正在使用 GlazedLists.tableFormat() 便捷方法,而不是实例化您自己的 TableFormat。没关系,有一种方法恰好适用于这种情况,您可以通过传入布尔数组来指定每列是否可编辑。请参阅GlazedLists.tableFormat(String[] propertyNames, String[] columnLabels, boolean[] editable) documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多