/*huatu继承监听接口,在main中监听时才产生,且匿名
*
*Container=e.getSource()
*Container.getGraphics()
*
*e.getActionCommand()
*e.getActionCommand().equals("hong"),不可以用==
*
*p=getContentPane(),p监听画图动作
*
*hxz*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class HuaTu implements MouseMotionListener,ActionListener{
static final int r=3;
static int ox, oy;
static int flag=1;
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("红")){//hxz不能用==
flag=1;
}
else if (e.getActionCommand().equals("黑")){
flag=2;
}
else if (e.getActionCommand().equals("退出"))
System.exit(0);
}
public void mouseDragged(MouseEvent e){
Container c=(Container)e.getSource();//Container=e.getSource()
Graphics g=c.getGraphics();//Container.getGraphics
if (ox>=0) {//移动时ox=-1
if(flag==1){
g.setColor(new Color(168,0,255));
g.drawLine(ox,oy,e.getX(),e.getY());}
else{
g.setColor(new Color(0,0,0));
g.drawLine(ox,oy,e.getX(),e.getY());}
}
ox=e.getX();oy=e.getY();
}
public void mouseMoved(MouseEvent e){
ox=-1;oy=-1;
}
public static void main(String arg[]){
JFrame f=new JFrame("Paint");
Container p=f.getContentPane();
p.setLayout(new FlowLayout());
JButton jButton1 = new JButton("红");
JButton jButton2 = new JButton("黑");
JButton jButton3 = new JButton("退出");
//Graphics g.setColor(new Color(255,0,0));
//ButtonEvent arg=new ButtonEvent(arg);
jButton1.addActionListener(new HuaTu());//huatu继承监听接口
jButton2.addActionListener(new HuaTu());
jButton3.addActionListener(new HuaTu());
p.addMouseMotionListener(new HuaTu());//contentPane监听
p.add(jButton1);
p.add(jButton2);
p.add(jButton3);
f.setSize(200,200);
f.setVisible(true);
}
}