문제

매개 변수를 얻는 입력 프레임 (child)을 생성하는 jframe (부모)이 있습니다.

"child"프레임에는 "OK"및 "CANCEL"버튼이 있습니다.

"OK"버튼을 누르면 부모 프레임을 새 데이터로 업데이트해야합니다.

그렇게하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

자식 프레임을 만들거나 표시 할 때 상위 프레임을 참조하십시오. 이를 위해서는 과부하 된 생성자 또는 디스플레이 방법이 필요합니다.

자녀가 참조를 얻으면 물론 updatedate ()와 같이 부모가 공개적으로 노출하는 모든 방법을 호출 할 수 있습니다 ()

다른 팁

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);

    .....

  }

}

JFrame에 ActionListener를 구현하고 AddActionListener를 사용하여 버튼에 추가 할 수 있습니다.

모든 프레임 / 대화 상자에 'unker ()'메소드를 넣고 싶습니다. 올바른 양식으로 결과를 반환 할 수 있습니다.

대화 상자에서 반환 값의 예 :

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;
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top