초보 프로그램 개발자

[ 5주차 ] Java - JFrame 본문

교육 일지/java

[ 5주차 ] Java - JFrame

Ji_HG 2023. 6. 5. 17:02
JFrame

JFrame 또한 윈도우 개발 툴로 간략하게 코드만 작성하려고 한다.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
// 아래부터 JFrame 에 관련된 import
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

// Swing

public class Test7 extends JFrame implements ActionListener {

	private JLabel lb;

	public Test7() {

		lb = new JLabel("메세지", JLabel.CENTER);
		add(lb);

		// 메뉴
		JMenuBar mbar = new JMenuBar();
		JMenu menu;
		JMenuItem mi;

		menu = new JMenu("메세지대화상자");
		mi = new JMenuItem("입력");
		menu.add(mi);
		mi.addActionListener(this);

		mi = new JMenuItem("메세지");
		menu.add(mi);
		mi.addActionListener(this);

		mi = new JMenuItem("종료");
		menu.add(mi);
		mi.addActionListener(this);

		mbar.add(menu);

		setJMenuBar(mbar);

		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});

		setTitle("대화상자");
		setSize(300, 300);
		setVisible(true);

	}

	public static void main(String[] args) {
		new Test7();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// 문자로 들어옴, 종료 입력 메세지 ...
		String str = e.getActionCommand();

		if (str.equals("입력")) {
			String age = JOptionPane.showInputDialog(this, "나이를 입력하세요 : ", "나이", JOptionPane.QUESTION_MESSAGE);
			lb.setText("나이 : " + age + "살");

		} else if (str.equals("메세지")) {
			JOptionPane.showMessageDialog(this, "오늘은 금요일입니다.", "불금", JOptionPane.INFORMATION_MESSAGE);
		} else if (str.equals("종료")) {
			int result;

			result = JOptionPane.showConfirmDialog(this, "프로그램을 종료하시겠습니까?", "종료", JOptionPane.YES_NO_OPTION,
					JOptionPane.QUESTION_MESSAGE);

			if (result == JOptionPane.YES_OPTION) {
				System.exit(0);
			}

		}

	}

}