JFrame — 프레임 최상위 창 클래스

JFrame — 프레임 최상위 창 클래스

JFrame은 JFC/Swing 컴포넌트 구조를 지원하도록 확장된 java.awt.Frame입니다. 아이콘으로 최소화할 수 있는 최상위 창입니다.

출처: Java API Reference

본문

public class JFrame extends Frame implements WindowConstants, Accessible, RootPaneContainer

JFC/Swing 컴포넌트 구조를 지원하도록 확장된 java.awt.Frame의 확장 버전입니다. JFrame 사용에 대한 작업 중심 문서는 The Java Tutorial의 "How to Make Frames" 섹션에서 찾을 수 있습니다. JFrame 클래스는 Frame과 약간 호환되지 않습니다. 다른 모든 JFC/Swing 최상위 컨테이너처럼 JFrame도 유일한 자식으로 JRootPane을 포함합니다. 루트 창이 제공하는 콘텐츠 창에는 원칙적으로 JFrame이 표시하는 모든 비메뉴 컴포넌트가 들어 있어야 합니다. 이는 AWT Frame의 경우와 다릅니다. 편의를 위해 add, remove, setLayout 메서드가 재정의되어 ContentPane의 해당 메서드로 호출을 위임합니다. 예를 들어 프레임에 자식 컴포넌트를 추가할 수 있습니다. frame.add(child); 그러면 child가 contentPane에 추가됩니다. 콘텐츠 창은 항상 null이 아니며, null로 설정하려 하면 JFrame이 예외를 발생시킵니다. 기본 콘텐츠 창에는 BorderLayout 매니저가 설정됩니다. JFrame의 LayoutManager 추가·제거·설정에 대한 자세한 내용은 RootPaneContainer를 참고하세요. Frame과 달리 JFrame은 사용자가 창을 닫으려 할 때 어떻게 응답할지에 대한 개념이 있습니다. 기본 동작은 사용자가 창을 닫을 때 JFrame을 그냥 숨기는 것입니다. 기본 동작을 바꾸려면 setDefaultCloseOperation(int) 메서드를 호출합니다. JFrame이 Frame 인스턴스처럼 동작하게 하려면 setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)을 사용합니다. 콘텐츠 창과 루트 창이 제공하는 다른 기능에 대한 자세한 내용은 The Java Tutorial의 "Using Top-Level Containers"를 참고하세요. 다중 화면 환경에서는 다른 화면 장치에 JFrame을 만들 수 있습니다. 경고: Swing은 스레드에 안전하지 않습니다. 이 클래스의 직렬화된 객체는 향후 Swing 버전과 호환되지 않을 수 있습니다. 현재 직렬화 지원은 단기 저장이나 같은 버전의 Swing을 실행하는 애플리케이션 간 RMI에 적합합니다. 1.4부터 모든 JavaBean의 장기 저장 지원이 java.beans 패키지에 추가되었으니 XMLEncoder를 참고하세요.

rootPane

protected JRootPane rootPane

이 프레임의 contentPane과 선택적 menuBar, 그리고 glassPane을 관리하는 JRootPane 인스턴스입니다.

rootPaneCheckingEnabled

protected boolean rootPaneCheckingEnabled

true이면 add와 setLayout 호출이 contentPane으로 전달됩니다.

JFrame

public JFrame() throws HeadlessException

초기에는 보이지 않는 Frame을 만듭니다.

JFrame

public JFrame(String title) throws HeadlessException

제목이 있고 처음에는 보이지 않는 Frame을 만듭니다.

  • 매개변수: title - 프레임의 제목

JFrame

public JFrame(GraphicsConfiguration gc)

지정된 GraphicsConfiguration과 빈 제목으로 Frame을 만듭니다.

  • 매개변수: gc - 대상 화면 장치의 GraphicsConfiguration

JFrame

public JFrame(String title, GraphicsConfiguration gc)

제목과 지정된 GraphicsConfiguration으로 Frame을 만듭니다.

  • 매개변수: title - 프레임의 제목
  • 매개변수: gc - 대상 화면 장치의 GraphicsConfiguration

getContentPane

public Container getContentPane()

이 프레임의 contentPane 객체를 반환합니다.

  • 반환값: contentPane 프로퍼티 값

setContentPane

public void setContentPane(Container contentPane)

contentPane 프로퍼티를 설정합니다.

  • 매개변수: contentPane - 이 프레임의 contentPane 객체
  • 예외: IllegalComponentStateException - content pane 매개변수가 null인 경우

setJMenuBar

public void setJMenuBar(JMenuBar menubar)

이 프레임의 메뉴바를 설정합니다.

  • 매개변수: menubar - 프레임에 놓을 메뉴바

getJMenuBar

public JMenuBar getJMenuBar()

이 프레임에 설정된 메뉴바를 반환합니다.

  • 반환값: 이 프레임에 설정된 메뉴바

setDefaultCloseOperation

public void setDefaultCloseOperation(int operation)

사용자가 프레임에서 "닫기"를 클릭할 때 어떤 일이 벌어질지 설정합니다.

  • 매개변수: operation - WindowConstants.DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, DISPOSE_ON_CLOSE 중 하나

getRootPane

public JRootPane getRootPane()

이 프레임의 rootPane 객체를 반환합니다.

  • 반환값: 이 컴포넌트의 JRootPane 자식

setLayeredPane

public void setLayeredPane(JLayeredPane layeredPane)

layeredPane 프로퍼티를 설정합니다.

  • 매개변수: layeredPane - 이 프레임의 layeredPane 객체

getLayeredPane

public JLayeredPane getLayeredPane()

이 프레임의 layeredPane 객체를 반환합니다.

  • 반환값: layeredPane 프로퍼티 값

setGlassPane

public void setGlassPane(Component glassPane)

glassPane 프로퍼티를 설정합니다.

  • 매개변수: glassPane - 이 프레임의 glassPane 객체

getGlassPane

public Component getGlassPane()

이 프레임의 glassPane 객체를 반환합니다.

  • 반환값: glassPane 프로퍼티 값

setLayout

public void setLayout(LayoutManager manager)

LayoutManager를 설정합니다. 호출을 contentPane으로 조건부로 전달하도록 재정의되었습니다.

  • 매개변수: manager - LayoutManager

remove

public void remove(Component comp)

컨테이너에서 지정된 컴포넌트를 제거합니다. comp가 rootPane이 아니면 contentPane으로 호출을 전달합니다. comp가 JFrame이나 contentPane의 자식이 아니면 아무것도 하지 않습니다.

  • 재정의: Container 클래스의 remove
  • 매개변수: comp - 제거할 컴포넌트
  • 예외: NullPointerException - comp가 null인 경우

더 알아보기