내 Java 코드에 JDialog가 있습니다. 사용자가 JDialog를 닫을 때 표시를 얻고 싶습니다. 사용자가 JDialog를 닫을 때 표시되는 자바의 방법이 있습니까 ???사용자가 JDialog를 닫을 때의 표시
0
A
답변
2
을 간단히 추가하고 windowClosing()
또는 windowClosed()
방법을 재정의하십시오.
WindowListener.windowClosing()
은 사용자가 창을 닫으려고 할 때 호출되며 창을 닫으면 WindowListener.windowClosed()
이 호출됩니다.
예 : 대화 상자가 닫힐 때까지 모달 대화 상자를 들어
dialog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("User attempted to close the dialog!");
}
});
1
후 대화 상자를 표시하는 호출 후 코드가 계속되지 않습니다. 즉, 비 모달 대화를 들어
JDialog dialog = new JDialog((Frame)null, true); // true = modal
System.out.println("before");
dialog.setVisible();
System.out.println("after"); // <-- won't happen until the dialog is closed
, 당신은 다른 윈도우와 마찬가지로으로, dialog.addWindowListener
을 부르는 WindowListener (또는 WindowAdapter) 재정의하거나 당신이 단지 폐쇄를 방지하거나 필요 여부에 따라 windowClosing
또는 windowClosed
, 그것을 찾아라.
1
최상의 제어를 위해 Jdialog를 확장 한 대화 상자를 만든 다음 setVisible (boolen 값) 및 dispose() 함수를 덮어 쓸 수있는 고유 한 클래스를 만드는 것이 좋습니다. 기본적으로 사용자가 닫기 버튼 대화 상자를 클릭하면 funciton setVisible (false)으로 이동하지만 setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE)을 사용하여 변경할 수 있습니다. 다음은 간단한 코드입니다.
public class MyDialog extends JDialog {
public MyDialog(){
super();
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(new Dimension(200,200));
setVisible(true);
}
public void dispose(){
System.out.println("dialog disposed");
// put your code here
super.dispose();
}
public void setVisible(boolean value) {
System.out.println("dialog set visible : " + value);
// or put your code here
super.setVisible(value);
}
}