728x90
메뉴를 누르면 상호작용을 하게 코드를 짰다고 생각했지만 상호작용을 하지 않는 분들을 위한 팁입니다.
저도 swing 과제를 하면서 이 문제에 부닥쳤습니다.
교과서에 나온 것처럼 e.getActionCommand와 switch문을 써봤지만 아무리 메뉴를 눌러도 꿈쩍도 않습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
private void createMenu() {
JMenuBar mb = new JMenuBar();
JMenu screenMenu = new JMenu("만든분");
screenMenu.addActionListener(new MenuActionListener());
JMenu add = new JMenu("단어 추가");
mb.add(screenMenu);
add.addActionListener(new MenuActionListener());
mb.add(add);
setJMenuBar(mb);
}
class MenuActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
switch(cmd) {
case "만든 분":
v_a.setVisible(true);
break;
case "단어 추가":
ct.setVisible(true);
break;
|
cs |
답은 교과서에 있습니다.
저는 명품자바프로그래밍을 보며 공부를 했는데, 거기에 나온 예제에는 분명히
이 메뉴가 아니라
메뉴를 누르면 아래로 내려오는 MenuItem에 액션을 다는 것이었습니다.
그렇기에 저렇게 메뉴에 추가해서 MenuItem에 액션을 넣어서 써도 되지만
걍 그럴것 없이 메뉴바에 메뉴를 눌러서 사용하려면
그냥 MenuBar에 MenuItem을 추가해주면 됩니다.
[메뉴 코딩 보기]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
private void createMenu() {
mb = new JMenuBar();
View_all = new JMenuItem("전체 단어 보기");
Add_words = new JMenuItem("단어 추가하기");
creator = new JMenuItem("만드신 분");
mb.add(View_all);
View_all.addActionListener(new MenuActionListener());
mb.add(Add_words);
Add_words.addActionListener(new MenuActionListener());
mb.add(creator);
creator.addActionListener(new MenuActionListener());
setJMenuBar(mb);
}
class MenuActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
switch(cmd) {
case "전체 단어 보기":
v_a.setVisible(true);
break;
case "만드신 분":
ct.setVisible(true);
break;
case "단어 추가하기":
aw.setVisible(true);
}
}
}
|
cs |
*저도 수 시간 고민하다가 옆 사람한테 이 이야기를 들었을때 어처구니가 없었습니다.
**언제나 글을 잘 읽는 습관을 들여야겠지요.
***여러분은 저처럼 오래 고민하시지 않고 해답을 찾기를 바라겠습니다.
****긴 글 읽어봐주셔서 감사합니다.
728x90
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
<JAVA> Optional (0) | 2021.10.04 |
---|---|
<JAVA> 중복되지 않는 무작위 숫자 만들기 Math.random() (0) | 2021.07.24 |
<Java>명품 Java programming 7장 1번 ~ 6번 (0) | 2021.07.16 |
<Java> 자바의 정석 9장 1~4,7번 (0) | 2021.07.14 |
<Java> 명품 Java programming 6장 9~11 (0) | 2021.07.14 |