반응형
다른 JFrame을 닫지 않고 하나의 JFrame을 닫으셨습니까?
동시에 두 개(또는 그 이상)의 JFrame 을 표시하고 싶습니다 .
그 중 하나를 닫으면(기본 닫기 버튼 사용) 다른 프레임은 계속 표시되어야 합니다.
어떻게 할 수 있습니까?
당신이 경우에 없는 A는 경우 종료 응용 프로그램을 원하는 JFrame
폐쇄, 사용
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)
대신에
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
로부터 문서 :
DO_NOTHING_ON_CLOSE
(WindowConstants에 정의됨): 아무 것도 하지 마십시오. 등록된 WindowListener 개체의 windowClosing 메서드에서 작업을 처리하도록 프로그램이 필요합니다.HIDE_ON_CLOSE
(WindowConstants에 정의): 등록된 WindowListener 객체를 호출한 후 자동으로 프레임을 숨깁니다.DISPOSE_ON_CLOSE
(WindowConstants에 정의됨): 등록된 WindowListener 개체를 호출한 후 프레임을 자동으로 숨기고 삭제합니다.EXIT_ON_CLOSE
(JFrame에 정의됨): 시스템 종료 방법을 사용하여 애플리케이션을 종료합니다. 응용 프로그램에서만 이것을 사용하십시오.
이것은 질문이 명확해지기 전에 내 대답이었고 여전히 유용할 수 있습니다.
같은 프레임을 다시 표시 하려면 setVisible(false)
에서 사용할 수 있습니다 JFrame
.
그렇지 않으면 모든 기본 화면 리소스dispose()
를 제거 하도록 호출 합니다 .
도움이 되나요?
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class TwoJFrames {
public static void main(String[] args) {
int nb = 4;
if (args != null && args.length > 0) {
nb = Integer.parseInt(args[0]);
}
final int frameCount = nb;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
for (int i = 0; i < frameCount; i++) {
JFrame frame = new JFrame("Frame number " + i);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p = new JPanel(new BorderLayout());
p.add(new JLabel("Click on the corner to close..."), BorderLayout.CENTER);
frame.setContentPane(p);
frame.setSize(200, 200);
frame.setLocation(100 + 20 * i, 100 + 20 * i);
frame.setVisible(true);
}
}
});
}
}
ReferenceURL : https://stackoverflow.com/questions/1944446/close-one-jframe-without-closing-another
반응형
'IT이야기' 카테고리의 다른 글
JSON을 LINQ할 수 있습니까? (0) | 2021.09.17 |
---|---|
ReactJS this.state null (0) | 2021.09.16 |
LOAD DATA INFILE을 사용하여 MySQL 테이블로 가져올 때 CSV 파일의 열을 건너뛰는 방법은 무엇입니까? (0) | 2021.09.16 |
쉘 스크립트에서 if elif fi 사용 (0) | 2021.09.16 |
영구 쿠키와 비영구 쿠키는 어떻게 만듭니까? (0) | 2021.09.16 |