import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
/**
* Date: 11-12-30
* Time: 16:08:00
*/
public class DrawLine extends JFrame implements ActionListener {
private class MyCanvas extends Canvas {
private String s_color;
public void setS_color(String s_color) {
this.s_color = s_color;
}
int x1, x2, y1, y2;
public MyCanvas() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent event) {
x1 = event.getX();
y1 = event.getY();
}
public void mouseReleased(MouseEvent event) {
x2 = event.getX();
y2 = event.getY();
Graphics g = getGraphics() ;
if("red".equals(s_color)){
g.setColor(Color.RED);
} else{
g.setColor(Color.BLUE);
}
g.drawLine(x1,y1,x2,y2);
}
});
}
}
JPanel p = new JPanel();
JButton b1 = new JButton("red"){{
addActionListener(DrawLine.this);
}};
JButton b2 = new JButton("blue"){{
addActionListener(DrawLine.this);
}};
MyCanvas canvas = new MyCanvas();
public void actionPerformed(ActionEvent e) {
canvas.setS_color(e.getActionCommand());
}
public DrawLine() {
setFrame();
getP().add(b1);
JPanel buttom = new JPanel();
buttom.setLayout(new GridLayout(1, 2));
buttom.add(b1);
buttom.add(b2);
getP().add(buttom, BorderLayout.SOUTH);
getP().add(canvas, BorderLayout.CENTER);
}
private JPanel getP() {
return p;
}
private void setFrame() {
setLayout(new BorderLayout());
getP().setLayout(new BorderLayout());
add(getP());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setVisible(true);
}
public static void main(String[] args) throws Exception {
new DrawLine();
}
}