2013-04-03 1 views
0
public class A extends JInternalFrame implements ActionListener 
{ 
    private JTable table; 
    private JButton button; 

    public A() 
    { 
     button = new JButton("Load Dialog"); 
     button.addActionListener(this); 

     initializeTable(); 
    } 

    public void initializeTable() 
    { 

     table = new JTable(); 
     MyTableModel mymodel = new MyTableModel(); 

     table.setModel(mymodel); 
    } 

    public void changeModel(NewTableModel model) 
    { 
     table.setModel(model); 
    } 

    public void actionPerformed(ActionEvent e) 
    { 
     MyDialog dialog = new MyDialog(null,true); 
     dialog.setVisible(true); 
    } 
} 

public class MyDialog extends JDialog implements ActionListener 
{ 

    private JButton button; 

    public MyDialog(JFrame parent,bool modal) 
    { 
     button = new JButton("Change Model"); 
     button.addActionListener(this); 

     super(parent,modal); 
    } 

    public void actionPerformed(ActionEvent e) 
    { 
     NewTableModel newModel = new NewTableModel(); 
     A a = new A(); 

     a.changeModel(newModel); 
    } 
} 

Я хочу обновить таблицу из первой формы (A) во второй форме (MyDialog). Я хочу установить для него новую модель, которая при нажатии кнопки изменения модели в MyDialog автоматически обновит модель в первой форме (A), и все ее отображаемые значения будут заменены новой моделью, исходящей из MyDialog. Как это можно сделать? Надеюсь, кто-то может вести меня. Благодарю.Как обновить jtable из другой формы?

ответ

2

Если вы хотите, чтобы заменить модель в A укомплектовать с моделью от MyDialog, почему бы не обеспечить поглотитель в MyDialog, который возвращает новую модель и просто заменить в A раз диалоговое окно закроется (если это модальный диалог), в противном случае вам необходимо будет передать ссылку от A на номер MyDialog