【初心者】Java質問・相談スレッド73【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0267横槍
2005/10/15(土) 23:42:51private static class ShowTableAction extends AbstractAction {
private DefaultTableModel model;
public ShowTableAction() {
super("Show Table");
model = new DefaultTableModel();
}
public void actionPerformed(ActionEvent ev) {
JTable table = new JTable(model) {
public void finalize() throws Throwable {
super.finalize();
System.out.println("bye!");
}
};
JOptionPane.showMessageDialog(null, table, "", JOptionPane.PLAIN_MESSAGE);
table.setModel(new DefaultTableModel()); //入れるのと入れないのとで大違い
System.gc();
System.out.println(model.getTableModelListeners().length); //入れとかないと増える一方
}
}
ま、要するに、TableModel を使い回しするのをやめればいいのだ。
変化を何かに通知する目的までを含めて TableModel であることに意義があるのだから、
影で保持しとく間までも、TableModel の姿をしておく必要はない。
■ このスレッドは過去ログ倉庫に格納されています