Files
swing-examples/Writerside2/topics/Top-Level-Containers.md
2024-06-12 13:10:10 +09:00

1.9 KiB

최상위 컨데이너

JFrame, JDialog, JApplet 등이 최상위 컨테이너이며, 프로그램 창(윈도우)이라고도 이해할 수 있다. 최상위 컨테이너는 시각적 컴포넌트를 위한 영역인 content pane을 가지고 있다.

JFrame

  • getDefaultCloseOperation() / setDefaultCloseOperation(int) : DO_NOTHING_ON_CLOSE | HIDE_ON_CLOSE | DISPOSE_ON_CLOSE | EXIT_ON_CLOSE

  • getIconImage() / setIconImage(java.awt.Image)

  • getTitle() / setTitle(String)

  • isUndecorated() / setUndecorated(boolean)

  • isDefaultLookAndFeelDecorated() / setDefaultLookAndFeelDecorated(boolean)

  • getSize() / setSize(int,int) / setSize(Dimension)

  • getBounds() / setBounds(int,int,int,int) / setBounds(Rectangle) : x, y, width, height

  • getLocation() / setLocation(int,int) / setLocationRelativeTo(Component)

  • pack()

  • getContentPane() / setContentPnae(Container)

  • getRootPane() / setRootPane(JRootPane) / createRootPane()

  • getJMenuBar() / setJMenuBar(JMenuBar)

  • getGlassPane() / setGlassPane(Component)

  • getLayeredPane() / setLayeredPane(JLayeredPane)

public static void main(String... args) {
    // 컨텐트 패널에 버튼 등의 컴포넌트를 구성한다.
    final JPanel contentPane = new JPanel();
    contentPane.setBackground(Color.PINK);

    // 프레임을 생성한다.
    final JFrame jFrame = new JFrame();
    jFrame.setTitle("Example");
    jFrame.setSize(800, 600);
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jFrame.setContentPane(contentPane);

    // 이벤트 디스패치 스레드에서 프레임을 표시한다.
    SwingUtilities.invokeLater(() -> {
        jFrame.setVisible(true);
    });
}

JDialog

Full-screen Exclusive mode

if(graphicsDevice.isFullScreenSupported()){
    graphicsDevice.setFullScreenWindow(jFrame);
	// graphicsDevice.setFullScreenWindow(null); //null to exit
}

DisplayMode