import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class PictureBoard extends JFrame implements MouseListener,ActionListener
{
private JButton buttonCanvas;
private JButton buttonLine;
private JButton buttonRect;
private JButton buttonOval;
private JPanel canvas;
private JPanel component;
private Point p1,p2; //좌료얻기위한 변수
private Graphics g; //그리기수행하는 변수
private int DRAW_MODE=0;//1 : 선 2 : 사각형 3 : 원
public PictureBoard() //기본생성자
{
this.getContentPane().setLayout(new BorderLayout());
buttonCanvas = new JButton();
buttonLine = new JButton("Line"); //버튼생성
buttonOval = new JButton("Rect");
buttonRect = new JButton("Squre");
component = new JPanel(new FlowLayout());
component.add(buttonCanvas);
component.add(buttonLine);
component.add(buttonOval);
component.add(buttonRect);
canvas=new JPanel();
canvas.setBackground(Color.white);
canvas.addMouseListener(this);
this.getContentPane().add(component,BorderLayout.NORTH);
this.getContentPane().add(canvas,BorderLayout.CENTER);
buttonCanvas.addActionListener(this);
buttonLine.addActionListener(this);
buttonOval.addActionListener(this);
buttonRect.addActionListener(this);
}
public void drawLine() //선그리기
{
g = canvas.getGraphics();
g.drawLine((int)p1.getX(),(int)p1.getY(),(int)p2.getX(),(int)p2.getY());
}
public void drawRect() //사각형그리기
{
g = canvas.getGraphics();
g.draw3DRect((int)p1.getX(),(int)p1.getY(),(int)p2.getX(),(int)p2.getY(),true);
}
public void drawOval() //원그리기
{
g = canvas.getGraphics();
g.drawOval((int)p1.getX(),(int)p1.getY(),(int)p2.getX(),(int)p2.getY());
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e)
{
p1=e.getPoint();
}
public void mouseReleased(MouseEvent e)
{
p2=e.getPoint();
switch(DRAW_MODE){
case 1: drawLine(); break;
case 2: drawRect(); break;
case 3: drawOval(); break;
}
}
public void actionPerformed(ActionEvent e) //ActionListener 구현
{
if(e.getActionCommand().equals("Line")){//액션 이벤트가 발생한 버튼의 텍스트
DRAW_MODE = 1;
}else if(e.getActionCommand().equals("Squre")){
DRAW_MODE = 2;
}else if(e.getActionCommand().equals("Rect")){
DRAW_MODE = 3;
}
}
public static void main(String[] args) //메인메소드
{
PictureBoard f = new PictureBoard();
f.setTitle("그림판");
f.setSize(500, 400);
f.setVisible(true);
}
}
'JAVA/JSP > Source' 카테고리의 다른 글
JOptionPane (0) | 2008.07.15 |
---|---|
ActionListenerTest (0) | 2008.07.15 |
substance look&feel colorchart (0) | 2008.07.14 |
substance look&feel 사용예 (0) | 2008.07.14 |
Garbage Collection 사용예 (0) | 2008.07.14 |