import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    
    public class WindowAdapterInnerTest extends JFrame{
    	JLabel lb = new JLabel("WindowAdapter 테스트중");
    	public WindowAdapterInnerTest() {
    		add(lb);
    		
    		setSize(500,500);
    		setVisible(true);
    		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    		setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    		AdapterInner ai = new AdapterInner();
    		addWindowListener(ai);
    	}
    	//내부클래스에서 Window 이벤트 처리하기
    	class AdapterInner extends WindowAdapter{
    		//다시 오버라이딩
    		public void WindowClosing(WindowEvent we) {
    			lb.setText("윈도우 이벤트 처리됨");
    			System.exit(0);
    		}
    	}
    	public static void main(String[] args) {
    		new WindowAdapterInnerTest();
    	}
    
    }
    
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    import javax.swing.JFrame;
    
    //Adapter 상속
    // JFame, WindowAdapter
    public class WindowAdapterTest extends WindowAdapter {
    	
    	JFrame frm = new JFrame("WindowAdapter 테스트");
    	public WindowAdapterTest() {
    		frm.setSize(500,500);
    		frm.setVisible(true);
    		frm.setDefaultCloseOperation(frm.DO_NOTHING_ON_CLOSE);
    		
    		frm.addWindowListener(this);
    	}
    	//재 오버라이딩
    	public void windowClosing(WindowEvent we) {
    		System.out.println("윈도우 이벤트 발생함.");
    		frm.dispose();
    		System.exit(0);
    	}
    	public static void main(String[] args) {
    		new WindowAdapterTest();
    
    	}
    
    }
    
    import java.awt.BorderLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    import javax.swing.JFrame;
    import javax.swing.JTextField;
    
    //익명의 내부클래스로 이벤트 처리
    public class WindowAdapterTest2 extends JFrame{
    	
    	JTextField tf = new JTextField("익명의 내부 클래스로 이벤트 처리하기");
    	public WindowAdapterTest2() {
    		
    		add(BorderLayout.SOUTH, tf);
    		setSize(500,500);
    		setVisible(true);
    		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    		setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    		
    		//이벤트 발생대상이 1개일때 사용한다.
    		addWindowListener(new WindowAdapter() {
    			//익명의 내부클래스에서 메소드를 다시 오버라이딩한다.
    			public void windowClosing(WindowEvent we) {
    				tf.setText("Window 이벤트 처리됨");
    				System.exit(0);
    			}
    		});
    	}
    
    	public static void main(String[] args) {
    		new WindowAdapterTest2();
    	}
    }
    
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기