태그 : JMenuBar

메뉴바 만들기.

이번 글에서는 메뉴바를 만들어 보도록 하겠습니다.
그리고 awt에 있는 Menu가 아닌 swing에 있는 JMenu를 예로 합니다.

위에 보이는 그림은 현재 프로젝트를 진행하고 있는 기본 인터페이스 입니다. 저것을 가지고 쉽게 그림으로 알아보도록 합시다.

메뉴를 위와 같이 구성 하려면 다음의 3가지 클래스를 이용해야 합니다.
JMenuBar 클래스
JMenu 클래스
JMenuItem 클래스

조금 귀찮죠 -_-? 그래도 오히려 이 때문에 더 쉽게 기억 될 수 있으니 철자만 잘 외우세요 -_-;


가장 먼저 위에 그림에서 활성화 된 부분에 해당하는 클래스는 JMenuBar 클래스 입니다.
모든 메뉴의 내용들은 최종적으로  JMenuBar 클래스에 들어가게 됩니다.

더 쉽게 말하자면 우리가 각종 JButton, JTextArea, JPanel은 모두 JFrame에 들어가는 것과 같다고 할 수 있습니다.

그럼 다음 그림을 보도록 합시다.
좀 전에 그림과 약간 비슷하지만 위에 활성화 된 영역은 JMenu 클래스 입니다.
파일에 해당하는 JMenu 객체
게임에 해당하는 JMenu 객체
도움말에 해당하는 JMenu 객체
이렇게 3개가 존재하게 됩니다.

이 3개의 객체들은 JMenuBar에 들어가게 되는 것이지요.
JMenuBar 객체.add(파일);
JMenuBar 객체.add(게임);
JMenuBar 객체.add(도움말);
이런 식입니다.

그럼 마지막으로
위에 보이는 활성화 된 영역은 JMenuItem 클래스 입니다.
형식은 List 클래스 활용과 비슷하기도 합니다. 허나 다른점은 각 메뉴별로 JMenuItem형 객체라는 점이지요
현재 보이는 그림을 예로 들면
로그인 부터 종료 까지 총 6개의 JMenuItem 객체가 JMenu형 객체(파일)에 속하는 것입니다.
JMenu 객체.add(로그인);
.....
JMenu 객체.add(종료);

이런식입니다. 아주 간단하고 쉽습니다.

이를 예제 소스의 일부를 보도록 합시다.

  file = new JMenu("파일");
  game = new JMenu("게임");
  help = new JMenu("도움말");
  
//파일 메뉴의 항목들
  file_login = new JMenuItem("로그인");
  file_idCreate = new JMenuItem("계정생성");
  file_idSearch = new JMenuItem("계정/암호 찾기");
  file_passChange = new JMenuItem("암호변경");
  file_logout = new JMenuItem("로그아웃");
  file_exit = new JMenuItem("종료");
  
//게임 메뉴의 항목들
  game_start = new JMenuItem("게임시작");
  game_rank = new JMenuItem("랭킹보드");
  
//도움말 메뉴의 항목들
  help_info = new JMenuItem("게임정보");
  help_update = new JMenuItem("업데이트");
  
//항목을 해당 목록에 넣기
  file.add(file_login);
  file.add(file_idCreate);
  file.add(file_idSearch);
  file.add(file_passChange);
  file.add(file_logout);
  file.add(file_exit);
  
  game.add(game_start);
  game.add(game_rank);
  
  help.add(help_info);
  help.add(help_update);

//메뉴바에 모두 배치  
  menubar = new JMenuBar();
  
  menubar.add(file);
  menubar.add(game);
  menubar.add(help);

전체적으로 봤을 때 awt를 배울 때와 같은 형식입니다. 쉽게 생각하도록 합시다.

그리고 각 메뉴를 클릭 했을 때 일어나야 할 이벤트들은 ActionListener을 써야 한다는 점을 생각해보도록 합시다.
왜? 라는 생각을 할 수도 있겠지만 ActionListener가 무엇을 하는 것인가? 라는 것을 생각해 보면 알 수 있습니다.

그리고 JFrame에 적용 시키는 방법은 약간 다릅니다.
add()를 활용하는 것이 아니라 setJMenuBar() 메소드를 이용해야 합니다.

JFrame형객체.setJMenuBar(JMenuBar형객체);

여기까지가 메뉴바에 대한 간단한 설명이었습니다. 더 자세한건 API를 참고하면 됩니다.

다음 글에는 JInternalFrame에 대해서 이야기를 해봅시다.

by 만성피로 | 2008/11/07 21:56 | 정리할 자료들 | 트랙백 | 덧글(1)

◀ 이전 페이지다음 페이지 ▶