Java 如何在JDialog中设置JTable

Java 如何在JDialog中设置JTable,java,swing,jtable,jdialog,Java,Swing,Jtable,Jdialog,我有一个JPanel,需要打开另一个有JTable的窗口(JFrame、JDialog、JOptionPane)。手动填充JTable后,需要将其数据返回到JFrame 如何做到这一点?您可以使用模型类(例如扩展AbstractTableModel的类)。您的JPanel创建一个最初为空的模型实例。您可以将实例传递给另一个窗口(扩展JFrame、JDialog等的窗口)的构造函数,然后从那里将其传递给JTable JTable的编辑反映在模型中,您的主窗口仍然可以通过模型的实例访问数据。您的JF

我有一个JPanel,需要打开另一个有JTable的窗口(JFrame、JDialog、JOptionPane)。手动填充JTable后,需要将其数据返回到JFrame

如何做到这一点?

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


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

您的
JFrame
中需要查看更新的视图应该作为一个整体添加到表的模型中。
tablemodeleevent
将识别更改的内容。

基本上,您必须在JDialog中实现一个方法,JTable位于其中,如下所示(返回对象[]只是一个示例,您可以返回任何类型的集合):


主要问题是我无法为第二个JTable创建窗口。第二个JFrame不工作,因为它是在其他线程中创建的,所以主JFrame仍然工作,不等待数据。在使用JOptionPane的情况下,我无法使用JTable生成它
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;
}