프로그래밍

화이트보드(사각형 여러개)미완

Dilrong 2013. 12. 2. 15:38
import java.applet.Applet; 
import java.awt.Checkbox; 
import java.awt.CheckboxGroup; 
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.event.ActionEvent; 
import java.awt.event.ItemEvent; 
import java.awt.event.ItemListener; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseMotionAdapter; 


public class WhiteBoard extends Applet implements ItemListener {
     Checkbox chk1, chk2, chk3, chk4; 
    Checkbox chk5, chk6, chk7; 
     
    Color curCol = Color.black; 
    int[] x = new int [10];
     int[] y = new int [10];
     int[] w = new int [10];
     int[] h = new int [10];
     int i=0;
      
    public void init() {
         setBackground(Color.white); 
        CheckboxGroup cbg = new CheckboxGroup();
         CheckboxGroup cbg2 = new CheckboxGroup();
          
        chk5 = new Checkbox("사각형", cbg2, false);
         chk5.setBackground(Color.orange); 
        chk5.addItemListener(this); 
         
        chk6 = new Checkbox("원", cbg2, false);
         chk6.setBackground(Color.orange); 
        chk6.addItemListener(this); 
         
        chk7 = new Checkbox("선", cbg2, true);
         chk7.setBackground(Color.orange); 
        chk7.addItemListener(this); 
         
        chk1 = new Checkbox("검정색", cbg, true);
         chk1.setBackground(Color.black); 
        chk1.setForeground(Color.white); 
        chk1.addItemListener(this); 
         
        chk2 = new Checkbox("빨강색", cbg, false);
         chk2.setBackground(Color.red); 
        chk2.addItemListener(this); 
         
        chk3 = new Checkbox("보라색", cbg, false);
         chk3.setBackground(Color.magenta); 
        chk3.addItemListener(this); 
         
        chk4 = new Checkbox("녹 색", cbg, false);
         chk4.setBackground(Color.green); 
        chk4.addItemListener(this); 
         
        add(chk1); 
        add(chk2); 
        add(chk3); 
        add(chk4); 
        add(chk5); 
        add(chk6); 
        add(chk7); 
        addMouseListener(new MouseEventHdl());
         addMouseMotionListener(new MouseMotionHdl());
     } 
     
    public void itemStateChanged(ItemEvent e) {
         if (e.getItem().equals("검정색")) curCol = Color.black;
         else if (e.getItem().equals("빨강색")) curCol = Color.red;
         else if (e.getItem().equals("보라색")) curCol = Color.magenta;
         else if (e.getItem().equals("녹 색")) curCol = Color.green;
     } 
     
    public void actionPerFormed(ActionEvent e) {
     } 
     
    public void paint(Graphics g) {
         int j; 
        g.setColor(curCol); 
        for(j=0; j<i; j++)
         g.drawRect(x[j], y[j], w[j], h[j]); 
    } 
     
    public class MouseMotionHdl extends MouseMotionAdapter {
         public void mouseDragged(MouseEvent e) {
             w[i]=Math.abs(x[i]-e.getX()); 
            h[i]=Math.abs(y[i]-e.getY()); 
            repaint(); 
        } 
    } 
     
    public class MouseEventHdl extends MouseAdapter {
         public void mousePressed(MouseEvent e) {
             x[i] = e.getX(); 
            y[i] = e.getY(); 
        } 
        public void mouseReleused(MouseEvent e) {
             w[i] = Math.abs(x[i]-e.getX()); 
            h[i] = Math.abs(y[i]-e.getY()); 
            i++; 
        } 
    } 
}
반응형

'프로그래밍' 카테고리의 다른 글

이진 트리의 순회 프로그램  (0) 2014.12.22
이중 연결 리스트를 이용한 덱 프로그램  (0) 2013.12.03
화이트보드(사각형)  (0) 2013.12.02
화이트보드(선)  (0) 2013.12.02
계산기(미완)  (0) 2013.11.27