2011-01-17 7 views

답변

6

JFrame.dispose은 인수를 기반으로 JFrame을 숨기거나 표시하는 데 사용할 수 있지만 실제로는 닫은 다음 사용 된 리소스를 확보하여 프레임을 "파괴"합니다. 다시 열려면 그림 프레임에 setVisible(false)으로 전화하거나 다시 열지 않으려면 그림 프레임에 dispose()으로 전화하여 프로그램에서 일부 메모리를 비울 수 있습니다. 그런 다음 메인 프레임에 setVisible(true)으로 전화를 걸면 표시됩니다.

2

아마도 그림 , DISPOSE_ON_CLOSE 이외의 다른 그림으로 그림 JFrame의 default close operation을 설정하면 두 번째 JFrame이 나타나기 전에 응용 프로그램이 닫히지 않게 할 수 있습니다.

1

당신은 또한이 코드 예를 들어

을 사용할 수 있습니다

JFrame frame = new JFrame(); 
    frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 
0

당신이 사용할 수 있습니다

: 여기
opens_frame frameOld= new opens_frame(); 
      frameOld.setVisible(true); 
      Closing_Frame.setVisible(false); 
      Closing_Frame.dispose(); 
0
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 

} 
0

이 문제에 대한 나의 solusion입니다
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 "); 
    } 
} 
-1
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(); 
    } 
0

동일한 것을 검색했을 때 "this"를 사용하는 것이 가장 쉽고 쉬운 옵션이라는 것을 알았습니다. 다음 코드를 사용할 수 있습니다. this.dispose();

0

이 게시물은 약간 오래된 것이지만.

당신은 그런 양식을 초기화 할 경우

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 이벤트로 테스트했습니다).

관련 문제