ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java :: GUI 프로그래밍-3
    IT/Java & JSP & FW 2011. 12. 28. 12:54
    메뉴예제
    (MenuTest.java)
    import java.awt.*;
    import java.awt.event.*;
    
    public class MenuTest extends Frame implements ActionListener{
    
    	MenuBar mb;
    	Menu m_file, m_file2, m_file2_1;
    	MenuItem mi_load, mi_save, mi_close, mi_y, mi_g, mi_r, mi_b;
    	BorderLayout bl;
    	Label p;
    	
    	public MenuTest(){
    		mb=new MenuBar();  //윈도우는 이미 일정영역이 메뉴바로 할당이 되어 있다
    		this.setMenuBar(mb);  //컴포넌트를 붙이듯이 add 대신에 set으로 부착해준다.
    		
    		//대메뉴
    		m_file=new Menu("파일");
    		mb.add(m_file);
    		m_file2=new Menu("색상");
    		mb.add(m_file2);
    		
    		
    		//1번 파일 세부메뉴
    		mi_load=new MenuItem("열기");
    		mi_save=new MenuItem("저장");
    		mi_close=new MenuItem("닫기");
    		
    		m_file.add(mi_load);
    		m_file.add(mi_save);
    		m_file.addSeparator();  //구분선 넣기
    		m_file.add(mi_close);
    		
    		mi_load.addActionListener(this);
    		mi_save.addActionListener(this);
    		mi_close.addActionListener(this);
    		
    		//2번 파일 세부메뉴
    		mi_y=new MenuItem("노랑");
    		mi_g=new MenuItem("회색");
    		m_file2_1=new Menu("기타");
    		
    		m_file2.add(mi_y);
    		m_file2.add(mi_g);
    		m_file2.addSeparator();
    		m_file2.add(m_file2_1);
    		
    		mi_y.addActionListener(this);
    		mi_g.addActionListener(this);
    		
    		//2-기타 세부메뉴
    		mi_r=new MenuItem("빨강");
    		mi_b=new MenuItem("파랑");
    		
    		m_file2_1.add(mi_r);
    		m_file2_1.add(mi_b);
    		
    		mi_r.addActionListener(this);
    		mi_b.addActionListener(this);
    		
    		//내용영역
    		bl=new BorderLayout();
    		this.setLayout(bl);
    		this.setBackground(Color.green);
    		
    		p=new Label("test");
    		this.add(p, "South");
    
    	}
    	
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		
    		Object obj=e.getSource();
    		if(obj==mi_load){
    			FileDialog fd=new FileDialog(this,"파일열기",FileDialog.LOAD);
    			fd.setVisible(true);
    			System.out.println(fd.getDirectory());
    			System.out.println(fd.getFile());
    		}else if(obj==mi_save){
    			FileDialog fd=new FileDialog(this,"파일저장",FileDialog.SAVE);
    			fd.setVisible(true);
    		}else if(obj==mi_close){
    			System.exit(0);
    		}else if(obj==mi_y){
    			this.setBackground(Color.yellow);
    		}else if(obj==mi_g){
    			this.setBackground(Color.gray);
    		}else if(obj==mi_r){
    			p.setBackground(Color.red);
    		}else if(obj==mi_b){
    			p.setBackground(Color.blue);
    		}
    		
    	}
    
    	public static void main(String[] args) {
    		
    		MenuTest mt=new MenuTest();
    		mt.setSize(300,300);
    		mt.setVisible(true);
    	}
    }
    
     
    팝업예제
    (PopupTest.java)
    import java.awt.*;
    import java.awt.event.*;
    
    public class PopupTest extends Frame implements MouseListener{
    	
    	PopupMenu pm;
    	MenuItem mi_open,mi_close;
    	
    	public PopupTest(){
    		
    		pm=new PopupMenu();
    		mi_open=new MenuItem("파일열기");
    		mi_close=new MenuItem("종료하기");
    		pm.add(mi_open);
    		pm.add(mi_close);
    		this.add(pm);
    		
    		this.addMouseListener(this);
    	}
    
    	public Insets insets() {
    		return new Insets(40,20,20,20);
    	}
    	
    	public void mouseClicked(MouseEvent e) {
    		System.out.println(e);
    		int x=e.getX();
    		int y=e.getY();
    		int bt=e.getButton();  //마우스 버튼 정보는 int 형으로 저장이 된다. 저장후 비교를 통해 어떤 마우스 버튼으로 동작할지 제어한다.
    		System.out.println("x="+x+"/y+"+y);
    		if(bt==3){
    			pm.show(this, x, y);  //마우스 위치에서 팝업창 띄우기
    		}
    		
    	}
    	
    	public void mouseEntered(MouseEvent e) {
    		this.setBackground(Color.blue);
    	}
    
    	public void mouseExited(MouseEvent e) {
    		this.setBackground(Color.white);
    	}
    	
    	public void mousePressed(MouseEvent e) {
    		
    	}
    	
    	public void mouseReleased(MouseEvent e) {
    		
    	}
    	
    	public static void main(String[] args) {
    		PopupTest p=new PopupTest();
    		p.setSize(300, 300);
    		p.setVisible(true);
    	}
    
    }
    

    그래픽예제
    (GrapTest.java)
    import java.awt.*;
    import java.awt.event.*;
    
    
    public class GrapTest extends Frame implements MouseMotionListener{
    	
    	String str="안녕";
    	int x=100,y=100;
    	
    	public GrapTest(){
    		this.addMouseMotionListener(this);
    	}
    	
    	@Override
    	public void paint(Graphics g) {
    		g.setColor(Color.red);
    		g.drawString(str, x, y);  //그래픽으로 문자를 띄운다.
    	}
    	
    	@Override
    	public void update(Graphics g) {
    		g.setColor(Color.red);
    		g.drawString(str, x, y);
    	}
    	
    	@Override
    	public void mouseDragged(MouseEvent e) {
    		x=e.getX();
    		y=e.getY();
    		repaint();  //paint 를 다시 호출함으로써 제대로 동작하도록한다.
    	}
    	
    	@Override
    	public void mouseMoved(MouseEvent e) {
    		// TODO Auto-generated method stub
    		
    	}
    	
    	@Override
    	public boolean inside(int x, int y) {
    		// TODO Auto-generated method stub
    		return super.inside(x, y);
    	}
    	
    	public static void main(String[] args) {
    		GrapTest f=new GrapTest();
    		f.setSize(400,400);
    		f.setVisible(true);
    	}
    
    }

    'IT > Java & JSP & FW' 카테고리의 다른 글

    java :: jdbc-2  (0) 2011.12.30
    java :: JDBC 연동, SQL 연동 및 SQL 기초 설명  (0) 2011.12.29
    java :: GUI 프로그래밍-2  (0) 2011.12.27
    java :: GUI 프로그래밍-1  (0) 2011.12.26
    java :: InnerClass (내부클래스)  (0) 2011.12.23
Designed by Tistory.