티스토리 뷰

프레임
사용 방법 2가지
- 첫번째 방법
import java.awt.*;
public class FrameEx {
    public static void main(String[] args) {
        Frame f = new Frame();
        
        f.setTitle("Frame Text");
        f.setSize(300,300);
        f.setVisible(true);
    }
}  
- 두번째 방법
import java.awt.*;
public class FrameEx extends Frame {
    public FrameEx() {
        System.out.println("프레임 테스트");
        setSize(300, 300); // 프레임 크기
        setVisible(true); // 창 띄우기
    }
    public static void main(String[] args) {
        FrameEx fe = new FrameEx();
    }
}
- 기본적으로 BoarderLayout을 쓴다
#종료를 원할 때에는 콘솔창 옆에 빨간 네모 버튼을 눌러서 종료해야 한다
이벤트 처리
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class ActionEventEx extends Frame implements ActionListener, WindowListener {
    Panel p;
    Button input, exit;
    TextArea ta;
    public ActionEventEx() {
        super("ActionEvent test");
        p = new Panel();
        input = new Button("입력");
        exit = new Button("종료");
        ta = new TextArea();
        // 이벤터 소스를 리스너에 연결
        input.addActionListener(this);
        exit.addActionListener(this);
        p.add(input);
        p.add(exit);
        add(p, BorderLayout.NORTH);
        add(ta, BorderLayout.CENTER);
        setBounds(300, 300, 300, 300);
        setVisible(true);
        addWindowListener(this);
    }
    public void actionPerformed(ActionEvent ae) {
        String name;
        name = ae.getActionCommand();
        if (name.equals("입력")) {
            ta.append("버튼 입력");
        } else {
            ta.append("종료");
        }
        try {
            Thread.sleep(2000);
        } catch (Exception e) {
        }
        System.exit(0);
    }
    public static void main(String[] args) {
        new ActionEventEx();
    }
    @Override
    public void windowActivated(WindowEvent arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowClosed(WindowEvent arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowClosing(WindowEvent arg0) {
        // TODO Auto-generated method stub
        System.exit(0);
    }
    @Override
    public void windowDeactivated(WindowEvent arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowDeiconified(WindowEvent arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowIconified(WindowEvent arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void windowOpened(WindowEvent arg0) {
        // TODO Auto-generated method stub
    }
}
이렇게 처리하지 않는 메소드까지도 오버라이딩 해서 처리를 해야해서 번거롭다. 그래서 Adapter 클래스를 사용하여 작업을 좀 더 쉽게 처리하게 해준다
Adapter 클래스
- anonymous inner 클래스 이용
'LANGUAGE > JAVA' 카테고리의 다른 글
| [JAVA] LINKEDLIST를 이용한 성적 처리 (0) | 2018.03.27 | 
|---|---|
| [JAVA] SYNCHRONIZED - 동기화 (0) | 2018.03.27 | 
| [JAVA] INNER CLASS - 내부 클래스 (0) | 2018.03.22 | 
| [JAVA] INTERFACE - 인터페이스 (0) | 2018.03.22 | 
| [JAVA] STACK / QUEUE (0) | 2018.03.21 | 
					댓글
						
					
					
					
				
			