자바 AWT 컴포넌트 MenuBar, Menu , MenuItem, CheckboxMenuItem 클래스

자바 AWT 컴포넌트 MenuBar, Menu , MenuItem, CheckboxMenuItem 클래스


java.awt.MenuBar 클래스


MenuBar는 단독적으로 사용되었을 때는 프레임에 형태를 나타내지 않고 하나 이상의 메뉴가 추가 되었을 경우에 그 형태를 확인할수 있다

생성자 (Constructs)
Construct 내용
MenuBar() 기본 MenuBar Component객채 생성

메서드(Methods)
Method 내용
Menu add(Menu m) 현재 MenuBar에 메뉴 추가하기
Menu getHelpMenu() 현재 MenuBar 에 있는 HelpMenu얻기
Menu getMenu(int i) 특정 위치 번쨰의 메뉴 객체얻기
int getMenuCount() 현재 MenuBar에 추가되어 있는 메뉴의 총 개수 얻기
void remove(int index) index 위치번째의 메뉴 삭제하기
void remove(MenuComponent m) m이라는 이름의 MenuComponent 사제하기
void setHelpMenu(Menu m) m이라는 이름의 HelpMenu 추가하기

java.awt.Menu 클래스


생성자(Constructs)
Construct 내용
Menu() 기본 Menu 컴포넌트 객체 생성
Menu(String label) 특정 label을 가지는 Menu컴포넌트 객체

메서드(Methods)
Method 내용
MenuItem add(MenuItem m) 현재 메뉴에 MenuItem추가하기
void add(String label) 현재 메뉴에 문자열 추가하기
void addSeparator() MenuItem들 사이의 분할선 추가하기
MenuItem getItem(int index) index번째의 MenuItem 얻기
int geitemCount() 현재 메뉴에 추가되어 있는 MenuItem 총 개수 얻어내기
void insert(MenuItem mi, int index) index위치에 mi객체 추가하기
void insert(String str, int index) index위치에 str 문자열 추가하기
void insertSeparator(int index) index위치에 분할선 추가하기
void remove(int index) index 위치의 객체 재거하기
void remove(MenuComponent item) item 이름의 객체 제거하기
void removeAll() 현재 메뉴에 추가되어 있는 모든 하위 객체 제거하기

ex )

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
56
57
import java.awt.*;

public class Round17_Ex02 {
public static void main(String[] ar) {
Round17_Ex02_Sub round = new Round17_Ex02_Sub();
}
}

class Round17_Ex02_Sub extends Frame {
private Dimension dimen, dimen1;
private int xpos, ypos;
private MenuBar mb = new ManuBar();
// 메뉴들을 추가하기 위해 MenuBar객체를 선언한다
private Menu file = new Menu("파일");
private Menu edit = new Menu("편집");
private Menu view = new Menu("보기");
private Menu help = new Menu("도움말");

// 각각의 메뉴 객체를 선언한다
public Round17_Ex02_Sub() {
super("제목넣기");
// Frame을 상속받았기 때문에 super로 상위 상속자 호출
this.init();
this.start();
this.setSize(300, 200);
// Frame을 상속받아 this의 메소드 호출한다 가로300, 세로 200의 Frame세팅
dimen = Toolkit.getDefaultToolkit().getScreenSize();
// 화면의 스크린 가로/세로 스크린 사이즈를 가져온다
dimen1 = this.getSize();
// Frame의 가로/세로 스크린 사이즈를 가져온다
xpos = (int) (dimen.getWidth() / 2 - dimen1.getWidth() / 2);
// 정중앙의 x값을 구한다 화면의 가로 사이즈를 2로 나눈값과 Frame의 가로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 x값을 구한다
ypos = (int) (dimen.getHeight() / 2 - dimen1.getHeight() / 2);
// 정중앙의 y값을 구한다 화면의 세로 사이즈를 2로 나눈값과 Frame의 세로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 y값을 구한다
this.setLocation(xpos, ypos);
// Frame의 띄울 위치를 x값과 y값으로 띄울 위치를 설정한다.
this.setVisible(true);
// 화면에 보이게 한다
}

public void init() {
// 화면 구성 넣을 부분
this.setMenuBar(mb);
// 현제 프레임에 MenuBar를 담는다
mb.add(file);
mb.add(edit);
mb.add(view);
mb.add(help);
// 메뉴들을 add시킨다
}

public void start() {
// Event나 Thread 처리할 부분
}
}

java.awt.MenuItem 클래스


생성자(Constructs)
Construct 내용
MenuItem() 기본 MenuItem컴포넌트 객체 생성
MenuItem(String label) 특정 label을 가지는 MenuItem객체 생성

메서드(Methods)
Method 내용
String getActionCommand() 이벤트와 함께 사용될 명령어 얻기
String getLabel() MenuItem의 label얻기
boolean isEnabled() 활성화 되어 있는지를 확인하기
String paramString() 현재 MenuItem의 설명 문자열을 보여주기
void setActionCommand(String str) 액션 명령어 설정하기
void setEnabled(boolean b) 활성화 가능 유무 설정하기
void setLabel(String label) MenuItem의 label설정하기

ex )

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import java.awt.*;

public class Round17_Ex02 {
public static void main(String[] ar) {
Round17_Ex02_Sub round = new Round17_Ex02_Sub();
}
}

class Round17_Ex02_Sub extends Frame {
private Dimension dimen, dimen1;
private int xpos, ypos;
private MenuBar mb = new ManuBar();
// 메뉴들을 추가하기 위해 MenuBar객체를 선언한다
private Menu file = new Menu("파일");
private Menu edit = new Menu("편집");
private Menu view = new Menu("보기");
private Menu help = new Menu("도움말");
// 각각의 메뉴 객체를 선언한다
private MenuItem fnew = new MenuItem("새파일");
private MenuItem fopen = new MenuItem("열기");
private MenuItem fsave = new MenuItem("저장");
private MenuItem fsaveas = new MenuItem("다른이름으로 저장");
private MenuItem fexit = new MenuItem("종료");
private MenuItem esearch = new MenuItem("찾기");
private MenuItem echange = new MenuItem("바꾸기");
private MenuItem emove = new MenuItem("이동");
// 각각의 메뉴 아이템을 설정한다
private Menu vmo = new Menu("모양"); // Menu에는 Menu도 추가할수 있다 .
private MenuItem vmbasic = new MenuItem("기본모양");
private MenuItem vmweb = new MenuItem("웹모양");
private MenuItem vmprint = new MenuItem("인쇄 모양");
private Menu vtool = new Menu("도구모음"); // Menu에는 Menu도 추가할수 있다 .
private MenuItem hver = new MenuItem("버전정보");

public Round17_Ex02_Sub() {
super("제목넣기");
// Frame을 상속받았기 때문에 super로 상위 상속자 호출
this.init();
this.start();
this.setSize(300, 200);
// Frame을 상속받아 this의 메소드 호출한다 가로300, 세로 200의 Frame세팅
dimen = Toolkit.getDefaultToolkit().getScreenSize();
// 화면의 스크린 가로/세로 스크린 사이즈를 가져온다
dimen1 = this.getSize();
// Frame의 가로/세로 스크린 사이즈를 가져온다
xpos = (int) (dimen.getWidth() / 2 - dimen1.getWidth() / 2);
// 정중앙의 x값을 구한다 화면의 가로 사이즈를 2로 나눈값과 Frame의 가로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 x값을 구한다
ypos = (int) (dimen.getHeight() / 2 - dimen1.getHeight() / 2);
// 정중앙의 y값을 구한다 화면의 세로 사이즈를 2로 나눈값과 Frame의 세로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 y값을 구한다
this.setLocation(xpos, ypos);
// Frame의 띄울 위치를 x값과 y값으로 띄울 위치를 설정한다.
this.setVisible(true);
// 화면에 보이게 한다
}

public void init() {
// 화면 구성 넣을 부분
this.setMenuBar(mb);
// 현제 프레임에 MenuBar를 담는다
file.add(fnew);
file.addSeparator();
// 구분선을 넣는다.
file.add(fnew);
file.add(fnew);
file.add(fnew);
// file 의 Menu에 MenuItem을 add시킨다.
fsaveas.setEnabled(false);// "다른이름으로 저장 "을 비활성화 시킨다
file.add(fsaveas);
file.addSeparator();
file.add(fexit);
edit.add(esearch);
edit.add(echange);
edit.add(emove);
view.add(vmo);// Menu에는 Menu도 추가할수 있다 .
vmo.add(vmbasic);
vmo.add(vmweb);
vmo.add(vmvmprint);
view.add(vtool);// Menu에는 Menu도 추가할수 있다 .
help.add(hver);
mb.add(file);
mb.add(edit);
mb.add(view);
mb.add(help);
// 메뉴들을 add시킨다
}

public void start() {
// Event나 Thread 처리할 부분
}
}

java.awt.CheckboxMenuItem 클래스


메뉴아이템은 말그래도 체크 표시를 할수있는 MenuItem이다

생성자 (Constructs)
Constructs 내용
CheckboxMenuItem() 기본 CheckboxMenuItem컴포넌트 객체
CheckboxMenuItem(String label) 특정 label을 가지는 CheckboxMenuItem객체
CheckboxMenuItem(String label, boolean state) label 을 가지고 체크된 상태 유무를 결정하는 생성자

Methods
Method 내용
Object[] getSelectedObject() 체크된 MenuItem들을 배열로 얻기
boolean getState() MenuItem의 체크상태 얻기
void setState(boolean state) MenuItem의 체크상태 설정하기

ex )

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import java.awt.*;

public class Round17_Ex02 {
public static void main(String[] ar) {
Round17_Ex02_Sub round = new Round17_Ex02_Sub();
}
}

class Round17_Ex02_Sub extends Frame {
private Dimension dimen, dimen1;
private int xpos, ypos;
private MenuBar mb = new ManuBar();
// 메뉴들을 추가하기 위해 MenuBar객체를 선언한다
private Menu file = new Menu("파일");
private Menu edit = new Menu("편집");
private Menu view = new Menu("보기");
private Menu help = new Menu("도움말");
// 각각의 메뉴 객체를 선언한다
private CheckboxMenuItem vcustom = new CheckboxMenuItem("표준", true);
// 표준이라는 CheckboxMenuItem에 기본값이 표시된 Item
private CheckboxMenuItem vtform = new CheckboxMenuItem("서식", false);
// 서식이라는 CheckboxMenuItem에 기본값이 표시안된 Item
private CheckboxMenuItem vtextam = new CheckboxMenuItem("검토", false);

public Round17_Ex02_Sub() {
super("제목넣기");
// Frame을 상속받았기 때문에 super로 상위 상속자 호출
this.init();
this.start();
this.setSize(300, 200);
// Frame을 상속받아 this의 메소드 호출한다 가로300, 세로 200의 Frame세팅
dimen = Toolkit.getDefaultToolkit().getScreenSize();
// 화면의 스크린 가로/세로 스크린 사이즈를 가져온다
dimen1 = this.getSize();
// Frame의 가로/세로 스크린 사이즈를 가져온다
xpos = (int) (dimen.getWidth() / 2 - dimen1.getWidth() / 2);
// 정중앙의 x값을 구한다 화면의 가로 사이즈를 2로 나눈값과 Frame의 가로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 x값을 구한다
ypos = (int) (dimen.getHeight() / 2 - dimen1.getHeight() / 2);
// 정중앙의 y값을 구한다 화면의 세로 사이즈를 2로 나눈값과 Frame의 세로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 y값을 구한다
this.setLocation(xpos, ypos);
// Frame의 띄울 위치를 x값과 y값으로 띄울 위치를 설정한다.
this.setVisible(true);
// 화면에 보이게 한다
}

public void init() {
// 화면 구성 넣을 부분
this.setMenuBar(mb);
// 현제 프레임에 MenuBar를 담는다
file.add(fnew);
file.addSeparator();
// 구분선을 넣는다.
file.add(fnew);
file.add(fnew);
file.add(fnew);
// file 의 Menu에 MenuItem을 add시킨다.
fsaveas.setEnabled(false);// "다른이름으로 저장 "을 비활성화 시킨다
file.add(fsaveas);
file.addSeparator();
file.add(fexit);
edit.add(esearch);
edit.add(echange);
edit.add(emove);
view.add(vmo);// Menu에는 Menu도 추가할수 있다 .
vmo.add(vmbasic);
vmo.add(vmweb);
vmo.add(vmvmprint);
view.add(vtool);// Menu에는 Menu도 추가할수 있다 .
vtool.add(vcustom);
vtool.add(vtform);
vtool.add(vtextam);
// CheckboxMenuItem을 추가한다.
help.add(hver);
mb.add(file);
mb.add(edit);
mb.add(view);
mb.add(help);
// 메뉴들을 add시킨다
}

public void start() {
// Event나 Thread 처리할 부분
}
}

Share