알버트의 개발하는 블로그
자바 제21강 : 자바 Frame 클래스로 기본 윈도우창 만들기 (프레임) 본문
이번 시간에는 자바에서 제공하는 Frame 클래스에 대해서 배워보겠습니다.
Frame 클래스는 각종 응용프로그램을 위한 윈도우를 제공하는 클래스입니다. Frame 클래스를 통해서 이제 단순한 콘솔창 말고 윈도우창을 만들거나 윈도우창을 조절할 수 있습니다. 그래서 GUI 프로그램에서 필요한 스킬입니다. 모든 GUI 프로그램에서는 한 개의 Frame이 필요합니다. 이제 간단한 예제를 통해서 Frame 클래스로 윈도우창을 만들고 닫아보겠습니다.
Frame 클래스 예제
package kr.koreait.windowTest;
import java.awt.Color; //윈도우창 color 클래스
import java.awt.Frame; //Frame클래스
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random; //랜덤난수클래스
// Frame 클래스 객체를 생성해서 윈도우 만들기
public class WindowTest {
public static void main(String[] args) {
Frame window = new Frame("반가워요");// '반가워용' 제목의 윈도우를 만든다.
window.setTitle("감사해요");// 윈도우 제목을 '감사해요'로 변경한다.
// setBounds()메소드로 윈도우 위치와 크기를 설정
window.setBounds(500, 500, 700, 300); // ( x좌표, y좌표, 가로, 세로 )
// 윈도우의 색깔을 랜덤하게 뽑아서 윈도우창에 넣어준다.
window.setBackground(new Color(new Random().nextInt(16777215)));
// Frame 클래스를 사용해서 생성한 윈도우 닫기
window.addWindowListener(new WindowAdapter() {
// windowClosing() 메소드를 override 해서 윈도우를 닫는 코드를 넣어준다.
@Override
public void windowClosing(WindowEvent e) {
window.dispose();// 현재 윈도우만 닫는다.
}
});
window.setVisible(true);// 윈도우를 화면에 표시하는 명령어. 반드시 해주어아햠
}
}
소스 코드는 이와 같습니다. Frame 클래스를 이용하면 이처럼 간단한 코딩으로도 윈도우창을 구현할 수 있습니다. Frame window = new Frame("제목");을 선언하면 프레임 클래스 객체로 윈도우창을 생성됩니다.
그리고 이 제목을 setTitle 메소드로 변경할 수 있습니다. setBounds메소드가 또 중요한데요. 윈도우창의 위치와 크기를 조절해 줍니다. setBackground 메소드는 윈도우창의 배경색을 설정해주는 메소드입니다. 윈도우창을 생성했으면 닫아주어야 하는데요. 여기선 windowClosing() 메소드를 오버라이드하여서 윈도우를 닫는 코드를 넣어주었습니다. 그리고 꼭 마지막에 setVisible(true)를 선언해주어야 윈도우창이 보인답니다.
이제 한번 실행해보겠습니다.
대표사진 삭제
사진 설명을 입력하세요.
짜잔~ 이처럼 x, y좌표 500과 가로 700 세로 300의 윈도우창이 생성된 것을 볼 수 있습니다. 그리고 윈도우창의 배경색깔이 랜덤으로 찍히는 것을 알 수 있습니다. 계속해서 컴파일해보면 색깔이 다르게 나옵니다. 이처럼 Frame클래스는 윈도우창을 제공하는 클래스입니다. 그래서 이제 본격적으로 프로그램을 짜는 중급 이상의 분들에겐 꼭 익혀야 하는 클래스입니다.
읽어주셔서 감사합니다~
'프로그래밍 언어 > Java' 카테고리의 다른 글
자바 제23강 : 자바 Dimension 클래스로 윈도우창 조절하기 (디멘션) (0) | 2021.09.10 |
---|---|
자바 제22강 : 자바 JFrame 클래스로 기본 윈도우창 만들기 (제이프레임) (0) | 2021.09.10 |
자바 제20강 : 자바 스레드 동기화 (Thread synchronization) (0) | 2021.09.10 |
자바 제19강 : 자바 스레드(Thread)의 개념과 스레드(Thread) 주요 메소드 (0) | 2021.09.10 |
자바 제18강 : 자바 HashSet, TreeSet 클래스 이용하여 데이터 처리하기 (0) | 2021.09.10 |