我有一個jframe(父)它創建一個輸入框架(子),我得到一些參數。從java swing上的子框架管理父框架
在「孩子」框架中,我有「確定」和「取消」按鈕。
當按下「ok」按鈕時,父框架需要用新數據更新。
什麼是最好的辦法呢?
我有一個jframe(父)它創建一個輸入框架(子),我得到一些參數。從java swing上的子框架管理父框架
在「孩子」框架中,我有「確定」和「取消」按鈕。
當按下「ok」按鈕時,父框架需要用新數據更新。
什麼是最好的辦法呢?
創建(或顯示)子框架時,傳入對父框架的引用。這將需要重載的構造函數或顯示方法。
一旦孩子參考,這當然可以調用父公開爲public,像UpdateDate()
你可以有JFrame中實現ActionListener,並把它添加到使用addActionListener方法,按鈕的任何方法。
從Java 1.3
public class MyPanel extends JPanel
{
public MyPanel() {
....
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
// <<<< HERE'S THE INTERESTING BIT >>>>
javax.swing.SwingUtilities.getWindowAncestor(MyPanel.this).dispose();
}
}
);
add(cancelButton);
.....
}
}
的我喜歡把一個'推出()方法對我所有的幀/對話框。有了正確的模式,它可以返回結果。
從對話框返回值的例子:
private static class MyDialog extends JDialog {
String result;
private JButton btnOk = new JButton("OK");
public MyDialog() {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setModalityType(ModalityType.APPLICATION_MODAL);
add(btnOk);
btnOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
result = "Ok";
setVisible(false);
}
});
}
public String launch() {
result = "Cancel";
pack();
setVisible(true);
return result;
}
}
這個我我使用的解決方案,有沒有乾淨的方式? – Giancarlo 2009-02-21 17:16:00
非常感謝,解決了我的問題:) – rachana 2014-06-25 18:52:43