【问题标题】:Java Jtable spreadsheet like formatJava Jtable 电子表格格式
【发布时间】:2017-08-16 09:45:40
【问题描述】:

我在实现 JTable,特别是 AbstractTableModel 时遇到问题。我可以创建和显示来自JTable 的数据,但我目前的情况与我通常的情况不同。

我想做的是让我的JTable 接受来自用户的输入,我想将其他组件放入JTable

假设每一行都有一个JComboBoxJTextField 和一个JCheckBox,但是当我开始实现JTable 模型时(AbstractTableModel)我不知道我该如何放置这些我的JTable 的组件?

由于AbstractTableModel 中的方法getValue 返回类型是对象数据类型。对于此类问题,您有什么解决方法吗?我讨厌使用DefaultTableModel,因为它尽可能缺乏灵活性,我想要AbstractTableModel :) 非常感谢您的帮助。

【问题讨论】:

  • TableModel 有一个名为getColumnClass 的方法,它返回指定列的Class 类型。 JTable 使用此信息来查找需要使用的编辑器和渲染器(基于类类型)。查看How to use Tables了解更多详情
  • 谢谢我会读这个,你看看这实际上也是我一直在寻找的,仍然感谢您的快速回答:)

标签: java swing jtable


【解决方案1】:

您绝对应该从How to Use Tables 开始,并在那里研究examples。虽然JTable 不是电子表格,但您可以计算表格模型中的派生值。这个example 展示了如何使用JComboBox 更新同一行中的其他单元格,这些examples 同样对比了您提到的两个TableModel 实现。最后,您可以使用可用的ScriptEngine 来计算简单的算术表达式。例如,下面的示例打印42.0

ScriptEngine engine = mgr.getEngineByExtension("js");
try {
    System.out.println(engine.eval("5 * 8 + 2"));
} catch (ScriptException ex) {
    ex.printStackTrace(System.err);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多