지금 미니 그림판? ㅜ_ㅜ 만드는 중임...
근데 밑에 마우스 이벤트에 있는 e.getPoint(); 에서 오류표시가떠여..
좌표가져올때그렇게 가져오던데ㅠㅠㅠㅠㅠㅠㅠ
도대체 왜그럴까여 큐... 이렇게 통째로 보시는 거 싫으시려나 죄송ㅎㅎㅎㅎ
답답해서 물어보러왔어여 ㅜ.ㅜ..
package finalproject;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PictureBoard extends JFrame{
JButton btnLine = new JButton("선");
JButton btnRect = new JButton("사각형");
JButton btnOval = new JButton("원");
JButton btnRed = new JButton();
JButton btnYel = new JButton();
JButton btnGre = new JButton();
JButton btnBlu = new JButton();
JButton btnWhi = new JButton();
JButton btnBla = new JButton();
JPanel picture = new JPanel();
Point p1, p2;
int DRAW=0;
Color color;
Graphics g;
public PictureBoard() {
this.setSize(500,400);
this.setLocation(300,200);
this.setTitle("그림판");
addWindowListener(new Bye());
Container cp = getContentPane();
cp.setLayout(null);
btnLine.setBounds(10, 10, 75, 30);
btnLine.addActionListener(new DrawPic());
btnOval.setBounds(10, 50, 75, 30);
btnOval.addActionListener(new DrawPic());
btnRect.setBounds(10, 90, 75, 30);
btnRect.addActionListener(new DrawPic());
btnRed.setBounds(10, 150, 30, 30);
btnRed.setBackground(Color.red);
btnRed.addActionListener(new DrawPic());
btnBlu.setBounds(50, 150, 30, 30);
btnBlu.setBackground(Color.blue);
btnBlu.addActionListener(new DrawPic());
btnYel.setBounds(10, 190, 30, 30);
btnYel.setBackground(Color.yellow);
btnYel.addActionListener(new DrawPic());
btnGre.setBounds(50, 190, 30, 30);
btnGre.setBackground(Color.green);
btnGre.addActionListener(new DrawPic());
btnWhi.setBounds(10, 230, 30, 30);
btnWhi.setBackground(Color.white);
btnWhi.addActionListener(new DrawPic());
btnBla.setBounds(50, 230, 30, 30);
btnBla.setBackground(Color.black);
btnBla.addActionListener(new DrawPic());
cp.add(btnLine);
cp.add(btnOval);
cp.add(btnRect);
cp.add(btnRed);
cp.add(btnBlu);
cp.add(btnYel);
cp.add(btnGre);
cp.add(btnWhi);
cp.add(btnBla);
picture.setBounds(90,0,410,400);
picture.setBackground(Color.white);
picture.addMouseListener(new MouseEvent());
this.setVisible(true);
}
public void drawLine(Color color) { //선그리기
g = picture.getGraphics();
g.setColor(color);
g.drawLine((int)p1.getX(),(int)p1.getY(),(int)p2.getX(),(int)p2.getY());
}
public void drawRect(Color color) { //사각형 그리기
g = picture.getGraphics();
g.setColor(color);
g.drawRect((int)p1.getX(),(int)p1.getY(),(int)p2.getX()-(int)p1.getX(),(int)p2.getY()-(int)p1.getY());
}
public void drawOval(Color color) { //원그리기
g = picture.getGraphics();
g.setColor(color);
g.drawOval((int)p1.getX(),(int)p1.getY(),(int)p2.getX()-(int)p1.getX(),(int)p2.getY()-(int)p1.getY());
}
class DrawPic implements ActionListener {
public void actionPerformed(ActionEvent e) { //ActionListener 구현
if (e.getActionCommand().equals("선")) //선 버튼일 경우
DRAW=1;
else if (e.getActionCommand().equals("사각형")) //사각형 버튼일 경우
DRAW=2;
else if (e.getActionCommand().equals("원")) { //원 버튼일 경우
DRAW=3;
if(e.getActionCommand().equals(btnRed))
color = Color.red;
else if(e.getActionCommand().equals(btnBlu))
color = Color.blue;
else if(e.getActionCommand().equals(btnYel))
color = Color.yellow;
else if(e.getActionCommand().equals(btnGre))
color = Color.green;
else if(e.getActionCommand().equals(btnWhi))
color = Color.white;
else if(e.getActionCommand().equals(btnBla))
color = Color.black;
}
}
}
class Bye extends WindowAdapter {
public void windowClosing(WindowEvent we){
dispose();
}
}
class MouseEvent extends MouseAdapter {
public void mousePressed(MouseEvent e) {
p1 = e.getPoint(); //////////요기가 문제임
}
public void mouseReleased(MouseEvent e) {
p2 = e.getPoint(); ///////////요기도ㅠ
switch(DRAW) {
case 1:drawLine(color);break;
case 2:drawRect(color);break;
case 3:drawOval(color);break;
}
}
}
}
class MouseEvent extends MouseAdapter implements MouseMotionListener 이래해야하지 않나..