/*
 * Copyright (c) 2024. Elex. All Rights Reesrved.
 * https://www.elex-project.com/
 */

package com.elex_project.examples.frame;

import javax.swing.*;
import java.awt.*;

public class InternalFrameExample {

	public static void main(String... args) {
		// 컨텐트 패널에 버튼 등의 컴포넌트를 구성한다.
		final JInternalFrame internalFrame = new JInternalFrame("Frame 1");
		internalFrame.setSize(400,300);
		internalFrame.setBackground(Color.PINK);
		internalFrame.setVisible(true);
		internalFrame.setIconifiable(true);

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

		JDesktopPane jDesktopPane = new JDesktopPane();
		jDesktopPane.add(internalFrame);
		jFrame.setContentPane(jDesktopPane);

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

		// 어플리케이션 종료시에 처리할 내용은 셧다운 훅을 사용한다.
		Runtime.getRuntime().addShutdownHook(new Thread(() -> {
			// do something
		}));

	}
}
