如何在JDialog中设置JTable

时间:2013-11-27 11:55:05

标签: java swing jtable jdialog

我有一个JPanel,我需要打开其他具有JTable的窗口(JFrame,JDialog,JOptionPane)。手动填充JTable后需要将其数据恢复到JFrame。

如何做到这一点?

3 个答案:

答案 0 :(得分:3)

基本上,你必须在你的JDialog中实现一个JTable所在的方法,就像这样(返回Object [] []只是一个例子,你可以返回任何类型的Collection):

public Object[][] showDialogWithTable() {
   //do some needed actions
   setVisible(true);

   //when user closes JDialog with a JTable collect data from the table
   Object[][] data = collectData();

   return data;
}

答案 1 :(得分:2)

您可以使用模型类(例如,扩展AbstractTableModel的模型类)。您的JPanel创建最初为空的模型实例。您可以将实例传递给另一个窗口(扩展JFrame,JDialog,..)的构造函数,并从那里将其传递给JTable。

JTable的编辑反映在模型中,您的主窗口仍然可以通过模型实例访问数据。

答案 2 :(得分:2)

JFrame中需要查看更新的视图应将其自身作为TableModelListener添加到您的表格模型中。 TableModelEvent将识别更改的内容。