본문 바로가기

Java

자바/JAVA/JFrame 클래스를 이용해 윈도우 창 띄우기/JFrame~~

JFrame 클래스를 이용해 윈도우 창을 띄워보자.

 

JFrame window = new JFrame();

: 괄호 안에 아무것도 적지 않고 객체를 생성할 경우, 기본적으로 제목이 없는 상태의 윈도우창이다.
JFrame window = new JFrame("제목 있는 윈도우");

: 괄호 안에 문자열을 적으면, 그대로 제목이 출력된다.
window.setTitle("제목이 변경된 윈도우");

: setTitle() 메소드를 사용하여 제목을 수정할 수 있다.

window.setBounds(800, 100, 400, 300);
: 왼쪽부터 순서대로 윈도우 창의 (위치 x축의 값, 위치 y축의 값, 윈도우 창의 가로, 윈도우 창의 세로) 이다. 

 

 JFrame은 Frame의 색상을 변경한 것처럼 실행되지 않는다.

Frame에서는 가능하지만, JFrame에서는 아래와 같이 실행하면 윈도우의 배경색이 변경되지 않는다.
window.setBackground(Color.ORANGE);   // 실행 안됨
JFrame으로 만든 윈도우의 배경색은 아래와 같이 변경한다. 
Container container = window.getContentPane();
container.setBackground(Color.ORANGE);

  Frame 클래스를 이용해 윈도우를 만들면 윈도우를 닫는 코드를 별도로 작성해야 하지만 JFrame 클래스를 사용해서 윈도우를 만들면 윈도우를 닫는 코드를 별도로 작성하지 않더라도 윈도우가 닫힌다. 하지만 윈도우는 닫혔는데 프로그램이 종료되지 않는 문제점이 발생된다. JFrame 에서 윈도우를 닫을 때 프로그램이 종료되게 하려면 아래의 코드를 넣어주면 된다.


window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);

 

아래는 순서대로 

1. JFrame 클래스 객체를 생성해서 윈도우 창을 띄우는 코드.

2. JFrame 클래스를 상속받아서 윈도우 창을 띄우는 코드이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.awt.Color;
import java.awt.Container;
import javax.swing.JFrame;
 
//    JFrame 클래스 객체를 생성해서 윈도우 만들기
public class WindowTest3 {
 
    public static void main(String[] args) {
        
        JFrame window = new JFrame("제목 있는 윈도우");
        window.setTitle("제목이 변경된 윈도우");
        window.setBounds(800100400200);
        
        Container container = window.getContentPane();
        container.setBackground(Color.ORANGE);
        
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setVisible(true);
        
    }
    
}
 
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import javax.swing.JFrame;
 
// JFrame 클래스를 상속받아 윈도우 만들기
public class WindowTest4 extends JFrame{
 
    public WindowTest4() {
        this("제목 없는 윈도우");    
    }
 
    public WindowTest4(String title) {
        setTitle(title);
        setBounds(800100400300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);            // 있으면 한꺼번에 닫히고, 없으면 하나씩 닫히지만! 콘솔창 켜져있음. 
        setVisible(true);    
    }
    
    public static void main(String[] args) {
        
        WindowTest4 window = new WindowTest4();
        new WindowTest4("제목 있는 윈도우");
        
        
    }
}
 
cs