컴퓨터프로그래밍/JAVA

Java-awt-MenuBar

zelkova 2016. 6. 21. 13:45

<목차로 돌아가기>

  Menu컴포넌트

Menu 컴포넌트의 구성요소를 정리해 보았습니다.


 구성요소

 기능

 MenuBar() 메뉴바 메모리에 생성

 Menu add(menu)

 메뉴바에 매개인자로 주어진 메뉴의 제일 뒤에 배치

 void remove(int)

 메뉴바에 배치된 메뉴의 순서에 다라 주어지는 인덱스를 매개인자로 하여 해당 메뉴를 삭제

 Menu(String)

 매개인자로 주어진 문자열을 표식으로 새로운 메뉴를 메모리에 생성

 MenuItem add(MenuItem)

 해당 메뉴아이템을 메뉴의 제일 뒤에 배치

 void remove(int)

 메뉴에 배치된 메뉴아이템의 순서에 따라 주어진 인덱스를 매개인자로 하여 해당 메뉴아이템을 삭제

 void insert(menu, int)

 메뉴에 배치된 메뉴아이템의 순석에 다라 주어지는 인덱스를 매개인자로 하여 해당 위치에 새로운 메뉴아이템 삽입

 static void addSeparator()

 메뉴 분리자 삽입

 MenuItem(String)

 매개인자로 주어진 문자열을 표식으로 새로운 메뉴아이템을 메뉴에 생성
 void setShortcut
(MenuShortcut)

 해당 메뉴아이템의 단축키 설정 

 void setEnabled(boolean) 해당 메뉴아이템의 활성 및 비활성화


  실습해보기

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

 import java.awt.*; 

 class Exam extends Frame

 {

    Label lbl; 

    MenuBar mbar; 

    Menu mbarFile,mbarEdit,mbarHelp; 

    Frame f; 

    MenuItem mbarNew,mbarOpen,mbarSave,mbarExit; 

    Exam() 

    {

       f = new Frame();

       f.setSize(300, 150);

       lbl = new Label();

       mbar = new MenuBar();

       mbarFile = new Menu("파일");

       mbarEdit = new Menu("설정");

       mbarHelp = new Menu("도움말");

       mbarNew=new MenuItem("새로 만들기");

       mbarOpen=new MenuItem("열기");

       mbarSave=new MenuItem("저장");

       mbarExit=new MenuItem("종료");

       mbar.add(mbarFile);

       mbar.add(mbarEdit);

       mbar.add(mbarHelp);

       mbarFile.add(mbarNew);

       mbarFile.addSeparator();

       mbarFile.add(mbarOpen);

       mbarFile.add(mbarSave);

       mbarFile.add(mbarExit);

       lbl.setText("메뉴를 만들어 봅세~");

       lbl.setBounds(10,80,150,20);

       f.setMenuBar(mbar);

       f.setLayout(null);

       f.add(lbl);

       f.setVisible(true);

    }

    public static void main(String[] args)

    {

       Exam run = new Exam();

    }

 } 


  단축키 사용방법

이 아래내용은 지금 이해하실 필요 없습니다. 

AWT이벤트 처리를 익히신 뒤에 살펴보시면 됩니다.


위의 내용과 별 다를건 없습니다.

바뀐 내용은 패키지 사용과 이벤트 리스너 사용 shorKey를 설정해 주었을 뿐입니다.

참 쉽죠?


Exam.java


1

2

3

4

5

6

7

8

9

10

11

12

 package test;


 import java.awt.*;

 import java.awt.event.*;


 class Exam extends Frame

 {

    public static void main(String[] args)

    {

       ClassFrame classFrame = new ClassFrame();

    }

 }



ClassFrame.java


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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

 package test; 


 import java.awt.*;

 import java.awt.event.*;


 public class ClassFrame extends Frame

 {

    Frame f; 

    Label lbl;

    MenuBar mbar;

    Menu mbarFile,mbarEdit,mbarHelp;

    MenuItem mbarNew,mbarOpen,mbarSave,mbarExit;

    public ClassFrame()

    {

       this.createComponents();

       this.connectEvent();

    }

    public void createComponents()

    {

       f = new Frame();

       f.setSize(300, 150);

       lbl = new Label();

       mbar = new MenuBar();

       mbarFile = new Menu("파일");

       mbarEdit = new Menu("설정");

       mbarHelp = new Menu("도움말");

       mbarNew=new MenuItem("새로 만들기");

       mbarOpen=new MenuItem("열기");

       mbarSave=new MenuItem("저장");

       mbarExit=new MenuItem("종료");

       mbar.add(mbarFile); mbar.add(mbarEdit);

       mbar.add(mbarHelp); mbarFile.add(mbarNew);

       mbarFile.addSeparator();

       mbarFile.add(mbarOpen);       

       mbarFile.add(mbarSave);

       mbarFile.add(mbarExit);

       lbl.setText("메뉴를 만들어 봅세~");

       lbl.setBounds(10,80,150,20);

       f.setMenuBar(mbar);

       f.setLayout(null);

       f.add(lbl);

       f.setVisible(true);

       MenuShortcut ms = new 

            MenuShortcut(KeyEvent.getExtendedKeyCodeForChar('N'), false);  

       mbarNew.setShortcut(ms);

    }

    public void connectEvent()

    {

       ClassListener ls = new ClassListener(this);

       mbarNew.addActionListener(ls);

       mbarOpen.addActionListener(ls);

       mbarSave.addActionListener(ls);

       mbarExit.addActionListener(ls);

    }

 }



ClassListener.java


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

32

package test; 

 import java.awt.*; 

 import java.awt.event.*; 


 public class ClassListener implements ActionListener

 {

    ClassFrame classFrame;

    public ClassListener(ClassFrame classFrame)

    {

       this.classFrame = classFrame;

    }

    public void actionPerformed(ActionEvent e)

    {

       MenuItem menuItem = (MenuItem)e.getSource();

       if(menuItem.getLabel().equals("새로 만들기"))

       {

          System.out.println("결과는 요로콤나옴");

       }

       if(menuItem.getLabel().equals("열기"))

       {

          System.out.println("이것은 열기");

       }

       if(menuItem.getLabel().equals("저장"))

       {

          System.out.println("이것은 저장");

       }

       if(classFrame.mbarEdit.equals("종료"))

       {

          System.out.println("요거는 종료");

       }

    }

 }




반응형

'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글

Java - String 관련 내용  (0) 2016.06.25
Java - awt - TextArea  (0) 2016.06.21
Java-awt-List  (0) 2016.06.20
Java-awt-Choice  (0) 2016.06.20
Java-awt-CheckBox  (0) 2016.06.20