JFrame은 javax.swing 패키지에 속한 클래스로, java.awt.Frame 클래스를 확장하여 사용할 수 있습니다. JFrame은 테두리와 제목 표시줄을 가진 최상위 창(top-level window)이며, 다양한 메서드를 통해 자유롭게 커스터마이징할 수 있습니다.
JFrame의 크기 조절 기능
JFrame의 크기를 설정한 후에도 마우스 커서를 창 모서리에 두고 드래그하면 크기를 변경할 수 있고, 오른쪽 상단의 닫기 버튼 옆에 있는 최대화 버튼을 누르면 전체 화면 크기로 확대됩니다. 이는 JFrame 클래스의 resize 속성이 기본적으로 true로 설정되어 있기 때문입니다.
만약 사용자가 창 크기를 임의로 변경하지 못하게 하고 싶다면 setResizable(false) 메서드를 호출하면 됩니다. 이렇게 하면 코드에서 지정한 크기 그대로 창이 나타나며, 최대화 버튼도 비활성화되어 더 이상 크기를 조절할 수 없습니다.
예제 코드
import java.awt.*;
import javax.swing.*;
public class JFrameDemo extends JFrame {
String title;
public JFrameDemo(String title) {
super(title);
add(new JLabel("JFrame with maximize button disabled"), BorderLayout.CENTER);
setSize(350, 275);
setLocationRelativeTo(null);
setResizable(false); // 최대화 버튼 비활성화
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[]) {
new JFrameDemo("JFrame Demo");
}
}
실행 결과
위 코드를 실행하면 가로 350픽셀, 세로 275픽셀 크기의 고정된 JFrame 창이 화면 중앙에 나타나며, 제목 표시줄의 최대화 버튼은 회색으로 비활성화된 것을 확인할 수 있습니다. 닫기 버튼을 누르면 프로그램이 정상적으로 종료됩니다.
이처럼 setResizable(false) 한 줄만 추가하면 간단하게 JFrame의 크기 변경과 최대화 기능을 함께 제어할 수 있습니다.