자바 스윙 은 현재 창 만 닫 습 니 다.

4159 단어 JavaSwing창 닫 기
자바 스윙 에서 현재 창 만 닫 는 방법 을 묻 는 사람들 이 많 기 때문에 이 글 을 쓰 세 요.
메 인 화면 에는 주로 두 개의 JButton 이 있 는데 하 나 는 단추 이 벤트 를 통 해 다른 JFame 을 바 꾸 고 다른 하 나 는 현재 창 을 닫 는 것 입 니 다.
1.현재 창 을 닫 을 때 setDefaultCloseOperation(JFrame.EXITON_CLOSE)방법,사용 가능
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
2.JButton 이 벤트 를 통 해 exit()를 사용 할 수 없습니다.그러면 전체 프로그램의 창 이 모두 닫 히 고 dispose()를 사용 할 수 있 습 니 다.이렇게 해서 현재 창 만 닫 았 습 니 다.
구체 적 인 실현 은 다음 과 같다.

NewFrame.java
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
public class NewFrame extends JFrame {
 
 /**
 * called another JFrame
 * close this JFrame
 * write by Jimmy.li
 * time:2016/4/6 22:55
 */
 private static final long serialVersionUID = 1L;
 
 public NewFrame() {
 //       
 JFrame jf = new JFrame("main");
 Toolkit tk = this.getToolkit();//        
 int width = 650;
 int height = 500;
 Dimension dm = tk.getScreenSize();
 jf.setSize(300, 200);//        
 jf.setLocation((int) (dm.getWidth() - width) / 2,
 (int) (dm.getHeight() - height) / 2);//        
 jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 jf.setVisible(true);
 JPanel contentPane = new JPanel();
 jf.setContentPane(contentPane);
 
 //       ,             
 
 JButton another = new JButton("    "); 
 JButton close = new JButton("  "); 
 contentPane.add(another); 
 contentPane.add(close);
 
 another.addActionListener(new ActionListener() {
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 new exit();
 }
 });
 
 close.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 System.exit(0);
 }
 });
 }
 
 public static void main(String[] args)
 
 {
 new NewFrame(); 
 }
}
효과 도 는 다음 과 같다.

부모 창 대신 exit 창 만 닫 습 니 다.
exit.java 코드 는 다음 과 같 습 니 다.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
/**
 * called another JFrame close this JFrame write by Jimmy.li time:2016/4/6 22:55
 */
 
public class exit {
 
 private static final int WIDTH = 300; 
 private static final int HEIGHT = 200;
 public exit() {
 //       
 final JFrame jf = new JFrame("exit");
 jf.setSize(WIDTH, HEIGHT);
 jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 jf.setVisible(true);
 JPanel contentPane = new JPanel();
 jf.setContentPane(contentPane);
 
 //               
 
 JButton close1 = new JButton("  ");
 contentPane.add(close1); 
 close1.addActionListener(new ActionListener() {
 
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 // System.exit(0);
 jf.dispose();
 }
 });
 }
 
 public static void main(String[] args)
 
 {
 new exit();
 } 
}
이렇게 닫 기 단 추 를 누 르 면 현재 exit 창 만 닫 고 부모 창 은 존재 합 니 다.
자바 의 JFrame 과 Frame 의 창 닫 기 차이
JFrame 에 서 는 setDefault Close Operation()방법 을 사용 합 니 다.예 를 들 어:
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Frame 에 서 는 이벤트 모니터 를 사용 합 니 다.다음 과 같 습 니 다.

win.addWindowListener(new WindowAdapter(){
 public void windowClosing(WindowEvent e){
  System.exit(0);
  }
 });
이상 의 자바 스윙 은 현재 창 만 닫 는 것 을 실현 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기