我想知道如何将对象(产品)放入表中,并在以后将其作为对象检索。
示例:
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?
答案 0 :(得分:0)
我如何在另一个类中检索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;
}
}
旁注:我会创建自己的扩展DefaultTableModel或AbstractTableModel的TableModel类,并且还会为其提供允许轻松添加行,传入特定类型的对象以及获取一行数据的方法,返回特定类型的自定义对象。