2008. 8. 27. 16:19
Part 6. AWT - III 윈도우창에 메뉴바와 메뉴 만들기
2008. 8. 27. 16:19 in 수업/자바2JDK입문
===================================================================================
CardLayout을 통한 메인
===================================================================================
package pack01;
import java.awt.CardLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame implements ActionListener{
CardLayout card;
MenuItem mi01, mi02, mi03, mi04, mi05;
public void actionPerformed(ActionEvent e) {
Object menu=e.getSource();
if(menu == mi01 || menu == mi02 || menu == mi03 ){
card.show(this, e.getActionCommand());
}
else if(menu==mi04){
CalcDialog dlg=new CalcDialog();
}
else if(menu==mi05){
AboutDialog adlg=new AboutDialog(this);
}
}
FrameTest(){
card=new CardLayout();
Panel p01=new CusPanel();
Panel p02=new VideoPanel();
Panel p03=new RentPanel();
// 패널을 프레임에 추가하되 배치관리자가 CardLayout일 경우에는 이름을 주어야 한다.
setLayout(card);
add(p01,"고객 관리");
add(p02,"비디오 관리");
add(p03,"대여 관리");
card.show(this, "대여관리");
MenuBar mb=new MenuBar();
setMenuBar(mb);
Menu m01=new Menu("비디오 대여관리");
mb.add(m01);
Menu m02=new Menu("도움말");
mb.add(m02);
mi01=new MenuItem("고객 관리");
m01.add(mi01);
mi02=new MenuItem("비디오 관리");
m01.add(mi02);
mi03=new MenuItem("대여 관리");
m01.add(mi03);
mi04=new MenuItem("계산기");
m02.add(mi04);
mi05=new MenuItem("about 비디오관리");
m02.add(mi05);
mi01.addActionListener(this);
mi02.addActionListener(this);
mi03.addActionListener(this);
mi04.addActionListener(this);
mi05.addActionListener(this);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
고객관리 CusPanel.java, 비디오관리 VideoPanel, 대여관리 RentPanel
===================================================================================
package pack01;
import java.awt.Label;
import java.awt.Panel;
public class CusPanel extends Panel {
CusPanel(){
add(new Label("고객 관리"));
}
}
package pack01;
import java.awt.Label;
import java.awt.Panel;
public class VideoPanel extends Panel{
VideoPanel(){
add(new Label("비디오 관리"));
}
}
package pack01;
import java.awt.Label;
import java.awt.Panel;
public class RentPanel extends Panel{
RentPanel(){
add(new Label("대여관리"));
}
}
===================================================================================
도움말 메뉴 - 계산기
===================================================================================
package pack01;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class CalcDialog extends Dialog {
CalcDialog(){
super(new Frame());
setSize(200,100);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
dispose();
}
}
);
}
}
===================================================================================
도움말 메뉴 - about 비디오관리
===================================================================================
package pack01;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class AboutDialog extends Dialog {
FrameTest fe;
public AboutDialog(FrameTest fe) {
super(fe);
this.fe = fe;
setSize(200,100);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
dispose();
}
}
);
}
}
===================================================================================
CardLayout을 통한 메인
===================================================================================
package pack01;
import java.awt.CardLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameTest extends Frame implements ActionListener{
CardLayout card;
MenuItem mi01, mi02, mi03, mi04, mi05;
public void actionPerformed(ActionEvent e) {
Object menu=e.getSource();
if(menu == mi01 || menu == mi02 || menu == mi03 ){
card.show(this, e.getActionCommand());
}
else if(menu==mi04){
CalcDialog dlg=new CalcDialog();
}
else if(menu==mi05){
AboutDialog adlg=new AboutDialog(this);
}
}
FrameTest(){
card=new CardLayout();
Panel p01=new CusPanel();
Panel p02=new VideoPanel();
Panel p03=new RentPanel();
// 패널을 프레임에 추가하되 배치관리자가 CardLayout일 경우에는 이름을 주어야 한다.
setLayout(card);
add(p01,"고객 관리");
add(p02,"비디오 관리");
add(p03,"대여 관리");
card.show(this, "대여관리");
MenuBar mb=new MenuBar();
setMenuBar(mb);
Menu m01=new Menu("비디오 대여관리");
mb.add(m01);
Menu m02=new Menu("도움말");
mb.add(m02);
mi01=new MenuItem("고객 관리");
m01.add(mi01);
mi02=new MenuItem("비디오 관리");
m01.add(mi02);
mi03=new MenuItem("대여 관리");
m01.add(mi03);
mi04=new MenuItem("계산기");
m02.add(mi04);
mi05=new MenuItem("about 비디오관리");
m02.add(mi05);
mi01.addActionListener(this);
mi02.addActionListener(this);
mi03.addActionListener(this);
mi04.addActionListener(this);
mi05.addActionListener(this);
setSize(300,200);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
dispose();
System.exit(0);
}
}
);
}
}
public class Ex01 {
public static void main(String[] args) {
new FrameTest();
}
}
===================================================================================
고객관리 CusPanel.java, 비디오관리 VideoPanel, 대여관리 RentPanel
===================================================================================
package pack01;
import java.awt.Label;
import java.awt.Panel;
public class CusPanel extends Panel {
CusPanel(){
add(new Label("고객 관리"));
}
}
package pack01;
import java.awt.Label;
import java.awt.Panel;
public class VideoPanel extends Panel{
VideoPanel(){
add(new Label("비디오 관리"));
}
}
package pack01;
import java.awt.Label;
import java.awt.Panel;
public class RentPanel extends Panel{
RentPanel(){
add(new Label("대여관리"));
}
}
===================================================================================
도움말 메뉴 - 계산기
===================================================================================
package pack01;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class CalcDialog extends Dialog {
CalcDialog(){
super(new Frame());
setSize(200,100);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
dispose();
}
}
);
}
}
===================================================================================
도움말 메뉴 - about 비디오관리
===================================================================================
package pack01;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class AboutDialog extends Dialog {
FrameTest fe;
public AboutDialog(FrameTest fe) {
super(fe);
this.fe = fe;
setSize(200,100);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
dispose();
}
}
);
}
}
===================================================================================
'수업 > 자바2JDK입문' 카테고리의 다른 글
[기타] 성적 처리 프로그램 - 포스팅 중 (0) | 2008.09.11 |
---|---|
Part 6. AWT - IV 입력관련 이벤트 처리 (5) | 2008.08.28 |
Part 6. AWT - II 컴포넌트의 이벤트 처리(2) (0) | 2008.08.27 |
Part 6. AWT - II 컴포넌트의 이벤트 처리(1) (0) | 2008.08.23 |
Part 6. AWT - I AWT를 이용한 GUI 작성 (0) | 2008.08.21 |