Notice
Recent Posts
Recent Comments
Link
투케이2K
193. (java/자바) GUI (awt/swing) - JFrame 프레임 창에 JMenuBar 메뉴바 추가 및 클릭 이벤트 정의 실시 본문
Java
193. (java/자바) GUI (awt/swing) - JFrame 프레임 창에 JMenuBar 메뉴바 추가 및 클릭 이벤트 정의 실시
투케이2K 2021. 4. 7. 08:46/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : Eclipse
개발 언어 : Java
/* =========================== */
/* =========================== */
[소스 코드]
package ex5;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MainActivity14 extends JFrame implements ActionListener{
//TODO 전역변수 생성 부분
static MainActivity14 mainActivity;
static JLabel txt;
//TODO 메인 메소드 시작 부분
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("[GUI (awt/swing) - JFrame 프레임 창에 JMenuBar 메뉴바 추가 및 클릭 이벤트 정의 실시]");
/*[설 명]
* 1. 자바에서는 JFrame을 사용해서 GUI 프로그램을 만들 수 있습니다
* 2. JMenuBar : 메뉴바 틀을 생성합니다
* 3. JMenu : 대메뉴를 설정합니다
* 4. JMenuItem : 서브메뉴를 설정합니다
* */
//TODO 클래스 객체 생성 (클릭 이벤트 위함)
mainActivity = new MainActivity14();
//TODO 부모 프레임 생성
JFrame frm = new JFrame("프레임 창 메뉴바 생성");
//TODO 부모 프레임 크기 설정 (가로, 세로)
frm.setSize(500, 500);
//TODO 부모 프레임을 화면 가운데에 배치
frm.setLocationRelativeTo(null);
//TODO 부모 프레임을 닫았을 때 메모리에서 제거되도록 설정
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//TODO 부모 프레임 창 크기 고정 실시
frm.setResizable(false);
//TODO 부모 레이아웃 설정
frm.getContentPane().setLayout(null);
//TODO 자식 레이아웃 [메뉴바] 생성
JMenuBar menu = new JMenuBar(); //메뉴바 틀 설정
JMenu file = new JMenu("파일"); //TODO 대메뉴 설정
JMenuItem open = new JMenuItem("열기");
JMenuItem close = new JMenuItem("닫기");
open.addActionListener(mainActivity); //TODO 메뉴에 클릭이벤트 적용
close.addActionListener(mainActivity); //TODO 메뉴에 클릭이벤트 적용
file.add(open);
file.add(close);
JMenu help = new JMenu("도움말"); //TODO 대메뉴 설정
JMenu sub_help = new JMenu("브라우저");
JMenuItem google = new JMenuItem("구글");
JMenuItem naver = new JMenuItem("네이버");
google.addActionListener(mainActivity); //TODO 메뉴에 클릭이벤트 적용
naver.addActionListener(mainActivity); //TODO 메뉴에 클릭이벤트 적용
sub_help.add(google);
sub_help.add(naver);
help.add(sub_help);
menu.add(file); //TODO 메뉴바 틀에 대메뉴 추가
menu.add(help); //TODO 메뉴바 틀에 대메뉴 추가
menu.setBounds(0, 0, 500, 30); //setBounds(가로위치, 세로위치, 가로길이, 세로길이);
//TODO 자식 레이아웃 [라벨 텍스트] 생성
txt = new JLabel("");
txt.setBounds(0, 35, 500, 100); //setBounds(가로위치, 세로위치, 가로길이, 세로길이);
txt.setFont(new Font("맑은 고딕", 0, 20)); //TODO 폰트 정의
txt.setHorizontalAlignment(JLabel.CENTER); //TODO 텍스트 센터 표시 설정
//TODO 부모 프레임에다가 자식 컴포넌트 추가
frm.getContentPane().add(menu);
frm.getContentPane().add(txt);
//TODO 부모 프레임이 보이도록 설정
frm.setVisible(true);
}//메인 종료
//TODO 버튼 클릭 이벤트 수행 부분
@Override
public void actionPerformed(ActionEvent e) {
//TODO Auto-generated method stub
//TODO 컴포넌트에 정의된 text 받아오는역할
switch(e.getActionCommand()){
//TODO getActionCommand() 버튼의 텍스트를 얻어옵니다
case "열기":
txt.setText("열기");
break;
case "닫기":
txt.setText("닫기");
break;
case "구글":
txt.setText("구글");
break;
case "네이버":
txt.setText("네이버");
break;
default :
txt.setText("NO");
break;
}
}
}//클래스 종료
/* =========================== */
[결과 출력]
/* =========================== */
/* =========================== */
[요약 설명]
* 1. 자바에서는 JFrame을 사용해서 GUI 프로그램을 만들 수 있습니다
* 2. JMenuBar : 메뉴바 틀을 생성합니다
* 3. JMenu : 대메뉴를 설정합니다
* 4. JMenuItem : 서브메뉴를 설정합니다
/* =========================== */
반응형
'Java' 카테고리의 다른 글
Comments