내 프로그램은 JFrame의 텍스트 필드가있는 그림으로 시작합니다. 사용자 유형이 시작되면 그림 JFrame을 닫고 주 프로그램과 함께 다른 JFrame을 엽니 다. 나는 이미지 프레임에 자바 : 다른 프레임을 여는 동안 JFrame을 닫으려면 어떻게해야합니까?
processEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
내 프로그램은 JFrame의 텍스트 필드가있는 그림으로 시작합니다. 사용자 유형이 시작되면 그림 JFrame을 닫고 주 프로그램과 함께 다른 JFrame을 엽니 다. 나는 이미지 프레임에 자바 : 다른 프레임을 여는 동안 JFrame을 닫으려면 어떻게해야합니까?
processEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
JFrame.dispose
은 인수를 기반으로 JFrame을 숨기거나 표시하는 데 사용할 수 있지만 실제로는 닫은 다음 사용 된 리소스를 확보하여 프레임을 "파괴"합니다. 다시 열려면 그림 프레임에 setVisible(false)
으로 전화하거나 다시 열지 않으려면 그림 프레임에 dispose()
으로 전화하여 프로그램에서 일부 메모리를 비울 수 있습니다. 그런 다음 메인 프레임에 setVisible(true)
으로 전화를 걸면 표시됩니다.
아마도 그림 , DISPOSE_ON_CLOSE
이외의 다른 그림으로 그림 JFrame의 default close operation을 설정하면 두 번째 JFrame이 나타나기 전에 응용 프로그램이 닫히지 않게 할 수 있습니다.
당신은 또한이 코드 예를 들어
을 사용할 수 있습니다
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
당신이 사용할 수 있습니다
: 여기opens_frame frameOld= new opens_frame();
frameOld.setVisible(true);
Closing_Frame.setVisible(false);
Closing_Frame.dispose();
private void closeTheCurrentFrameAndOpenNew(java.awt.event.ActionEvent evt){
dispose();//To close the current window
YourClassName closeCurrentWindow = new YourClassName();
closeCurrentWindow.setVisible(true);//Open the new window
}
public void actionPerformed(ActionEvent e) {
String userName = textField.getText();
String password = textField_1.getText();
if(userName.equals("mgm") && password.equals("12345")) {
secondFrame nF = new secondFrame();
nF.setVisible(false);
dispose();
}
else
{
JOptionPane.showMessageDialog(null, " Wrong password ");
}
}
if(username.equals("gaffar")&&password.equals("12345"))
{
label.setText("Be ready to continue");
//Start of 2nd jframe
NewJFrame1 n=new NewJFrame1();
n.setVisible(true);
//Stop code for ist jframe
NewJFrame m=new NewJFrame();
m.setVisible(false);
dispose();
}
동일한 것을 검색했을 때 "this"를 사용하는 것이 가장 쉽고 쉬운 옵션이라는 것을 알았습니다. 다음 코드를 사용할 수 있습니다. this.dispose();
이 게시물은 약간 오래된 것이지만.
당신은 그런 양식을 초기화 할 경우
JFrame firstForm = new JFrame();
firstForm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
firstForm.setSize(800, 600);
firstForm.setLocationRelativeTo(null);
firstForm.setVisible(true);
그리고 예를 들어 만들거나 버튼으로 다른 양식을 열 :이
JFrame secondForm = new JFrame();
secondForm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
secondForm.setSize(800, 600);
secondForm.setLocationRelativeTo(null);
secondForm.setVisible(true);
this.dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
폐기하고 프로그램을 종료하지 않고 첫 번째 창을 파괴 할 것이다 .
열쇠는 setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)
으로 설정하는 것입니다.
또한 이벤트를 발생시킵니다 (나는 이것을 WindowClosing
이벤트로 테스트했습니다).