我有一個JPanel,我需要打開其他窗口(JFrame,JDialog,JOptionPane),它具有JTable。手動填充JTable需要將其數據返回給JFrame。我如何設置JDialog中的JTable
這怎麼做?
我有一個JPanel,我需要打開其他窗口(JFrame,JDialog,JOptionPane),它具有JTable。手動填充JTable需要將其數據返回給JFrame。我如何設置JDialog中的JTable
這怎麼做?
基本上,你在你的JDialog,在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;
}
您可以使用模型類(例如,擴展AbstractTableModel的模型類)。你的JPanel創建一個最初爲空的模型實例。您可以將實例傳遞給另一個窗口(擴展JFrame,JDialog,...的構造函數),並從那裏將它傳遞給JTable。
JTable的編輯反映在模型中,您的主窗口仍然可以通過模型實例訪問數據。
需要查看更新的JFrame
中的視圖應將自己添加到表格的模型中,作爲TableModelListener
。 TableModelEvent
將識別更改的內容。
主要問題是我無法爲第二個JTable創建窗口。第二個JFrame不起作用,因爲它是在其他線程中創建的,所以主JFrame仍在工作,不會等待數據。 並與JOptionPane的情況下 - 我只是不能用JTable生成它 – crzbt