【问题标题】:Complex object to JTableJTable 的复杂对象
【发布时间】:2014-07-07 20:20:47
【问题描述】:

所以,我正在尝试一个库存跟踪程序,供我父亲在他的汽车店使用。我正在创建它以帮助更好地学习 Java;他的生意很小,没有它他也能经营。

我有一个类扩展了我处理数据的主类。我将发布该课程的相关代码。我需要在 JTable 中显示这些数据。是的,我知道这里有很多非常相似的问题。我已经通读了它们,但仍然不明白如何将其应用于我的情况。尽管我希望能够阅读并获得它,但它只是不适合我。请耐心等待我?非常感谢您的帮助。

所以,本质上,我有一个部分对象构造函数(私有类部分是类数据的子类),它包含多个值。

    private class Part
    {
        // Part constructor
        Part(String partName, String Make, String PartNumber,
                String altPartNumber, BigDecimal price, int quantity,
                String description, boolean autoMotive, boolean marine,
                boolean industrial)
        {
            parts.add(this);
        }

描述字符串不需要显示在表格中;它只需要与特定的部分(由表中的一行表示)相关联,这样当一个部分被突出显示时,右侧的面板可以读取该数据并显示它。布尔值就在那里,以便我可以按应用程序过滤部件,也不需要显示。

我有几个部分对象存储在一个 ArrayList 中。

    private ArrayList<Part> parts ;

我正在尝试编写一个方法,主类可以调用该方法来获取此数据并将其显示在表格中。问题是,JTable 需要 Object [] [] 类型的东西。如何创建允许它接受我的数据的东西,或以我可以显示的方式修改我的数据?

其他有点相关的代码:

    private transient final String [] columnNames = {
        "Name",
        "Make",
        "Part #",
        "Alt. part #",
        "Price",
        "Qty."
    };

非常感谢任何帮助!

【问题讨论】:

标签: java swing arraylist jtable


【解决方案1】:

所以说我要创建一个自定义表格模型;我不明白一些事情;如何将未显示的数据与显示的数据分开?

您可以控制它,因为您实现了 TableModel 的方法。您可以控制显示哪些列,并通过getValueAt(...)setValueAt(...) 方法控制如何从您的对象访问数据。

查看行表模型中的JButtonTableModel.java 示例。 RowTableModel 提供通用代码来支持任何自定义类。该示例显示了显示来自 JButton 类的 4 个特定数据列所需的自定义设置。

【讨论】:

  • 这是一个很好的答案!谢谢!正是我需要的。我不知道为什么,但这一切只是突然点击。除了接受这个答案,我还需要做什么吗?我想确保你得到你应得的荣誉。再次感谢!我的解决方案本质上是使用他的 RowTableModel 类并对其进行扩展。我还在工作,但我认为它应该可以工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多