AWT 그림판 완성
import java.awt.*; import java.awt.event.*; public class MyDrawing3Demo extends Frame { Panel p1, p2; Button red, green, blue, large, small, clear, allClear; MyCanvas can; public MyDrawing3Demo(){ super(":: ◆그림판 v1.1◆ ::"); p1=new Panel(); p1.setBackground(Color.blue); add(p1,"North"); //Anonymous 클래스 만들기--- p2=new Panel(){ public Insets getInsets(){ return new Insets(40,20,20,20); }//------------- }; p2.setBackground(Color.darkGray); add(p2,"Center"); //버튼 만들어 p1에 부착--- p1.add(red=new Button("RED")); p1.add(green=new Button("GREEN")); p1.add(blue=new Button("BLUE")); p1.add(large=new Button("크게")); p1.add(small=new Button("작게")); p1.add(clear=new Button("지우기")); p1.add(allClear=new Button("모두 지우기")); //캔버스 부착---- can=new MyCanvas(); can.setSize(300,300); can.setBackground(Color.white); p2.add(can); //버튼과 캔버스에 리스너 부착---- MyHandler my=new MyHandler(); red.addActionListener(my); green.addActionListener(my); blue.addActionListener(my); large.addActionListener(my); small.addActionListener(my); clear.addActionListener(my); allClear.addActionListener(my); can.addMouseMotionListener(my); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); }//생성자------- //이벤트 핸들러-이너클래스---- class MyHandler extends MouseMotionAdapter implements ActionListener { public void mouseDragged(MouseEvent e){ can.x=e.getX(); can.y=e.getY(); can.repaint(); }//----- public void actionPerformed(ActionEvent e){ Object o=e.getSource(); can.flag=0;//flag를 0으로 주어 그리기가 기본작업이 되게 한다. if(o==red){ can.cr=Color.red; }else if(o==green){ can.cr=Color.green; }else if(o==blue){ can.cr=Color.blue; }else if(o==large){ can.w++;//can.w+=2; can.h++; }else if(o==small){ if(can.w >3){//3이하로는 더 작아지지 않게끔... can.w--; can.h--; } }else if(o==clear){ can.cr=can.getBackground(); //배경색을 칠해서 지우기 }else if(o==allClear){ can.flag=1; can.repaint(); } }//------ }/////////// public static void main(String[] args) { MyDrawing3Demo d=new MyDrawing3Demo(); d.setSize(500,500); d.setVisible(true); } }////////////////////////////// class MyCanvas extends Canvas { int x=-13, y=-13, w=7, h=7; Color cr=Color.black; int flag=0; public void paint(Graphics g){ if(flag==0){ //1. 그리기 g.setColor(cr); g.fillOval(x, y, w, h); }else if(flag==1){ //2. 모두 지우기.. g.clearRect(0,0,300,300); } }//paint()------- public void update(Graphics g){ paint(g); }//update()----- }/////////////////////////////
'Java > Awt_Swing' 카테고리의 다른 글
AWT Applet에 이미지 오디오 파일 띄우기 (0) | 2011.12.02 |
---|---|
AWT 멀티 프레임 연동 (1) | 2011.12.02 |
AWT 그림판 Mouse Event ( Canvas 영역에 그리기 ) (0) | 2011.12.01 |
AWT 그림판 Mouse Event(mouseDragged) (0) | 2011.12.01 |
AWT Window Event 처리 및 Anonymous 클래스 사용 (0) | 2011.12.01 |