从默认表模型JAVA获取对象

从默认表模型JAVA获取对象,java,swing,Java,Swing,我想知道如何将一个对象(产品)放入表中,然后将其作为对象检索 例如: public class Controller { public Controller() { View view = new View(this); DefaultTableModel viewDtm = view.getDefaultTableModel(); //The product i want to put in to the table, and ret

我想知道如何将一个对象(产品)放入表中,然后将其作为对象检索

例如:

public class Controller {

    public Controller() {
        View view = new View(this);
        DefaultTableModel viewDtm = view.getDefaultTableModel();

        //The product i want to put in to the table, and retrieve later on.
        Product product1 = new Product(1,"Cola",2.54);

        viewDtm.addRow(new Object[]{
                product1.getId().toString(),
                product1.getName(),
                product1.getId().toString()
        });
    }
}
如何在另一个类中检索product1

如何在另一个类中检索product1

如前所述,您不能这样做,这与JTable、TableModel或Swing无关,所有这些都与您的变量有关,所有这些变量都是在构造函数的本地声明的。就像非Swing、非GUI程序一样,如果您希望其他类能够检查对象的状态,那么对象的关键字段应该是类的实例(非静态)字段,并且您应该为它们提供getter(访问器)方法

您的代码与此类似:

public class Foo {
    public Foo() {
        Bar bar = new Bar();
    }
}
在这种设置中,外部类完全无法访问bar。相反,你想要的东西更像:

public class Foo {
    private Bar bar = new Bar();

    public Foo() {
        // Bar bar = new Bar();
    }

    public Bar getBar() {
        return bar;
    }
}

旁注:我将创建自己的TableModel类,扩展DefaultTableModel或AbstractTableModel,并为其提供方法,允许轻松添加行、传入特定类型的对象以及获取数据行,返回特定类型的自定义对象。

感谢旁注。我一定会用这个!