importjava.awt.event.*;importjava.awt.*;importjava.applet.*;importjava.util.Vector;classDrawTestextendsAppletimplementsActionListener{staticintTimes=0;DrawPanelpanel;stat...
import java.awt.event.*;
import java.awt.*;
import java.applet.*;
import java.util.Vector;
class DrawTest extends Applet implements ActionListener
{
static int Times = 0;
DrawPanel panel;
static Frame f = new Frame();//("DrawTest");
static DrawTest drawTest = new DrawTest();
static Button
Red_Button = new Button("Red") ,
Blue_Button = new Button("Blue") ,
Green_Button = new Button("Green"),
Black_Button = new Button("Black"),
Yellow_Button = new Button("Yellow"),
Gray_Button = new Button("Gray"),
Pink_Button = new Button("Pink"),
Orange_Button = new Button("Orange");
public void init()
{
setLayout(new BorderLayout());
panel = new DrawPanel();
add("Center",panel);
}
public static void main(String args[])
{
drawTest.init();
f.setTitle("Easy Paint");
f.add("Center",drawTest);
f.setSize(1024,720);
f.show();
f.addWindowListener
(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
f.add(Black_Button);
f.add(Red_Button);
f.add(Blue_Button);
f.add(Yellow_Button);
Black_Button.addActionListener(f);
Red_Button.addActionListener(f);
Blue_Button.addActionListener(f);
Yellow_Button.addActionListener(f);
}
public void actionPerformed(ActionEvent e)
{
Times++;
if( Times%3 == 0)f.setBackground(Color.white);
else if (Times%3 == 1) f.setBackground(Color.red);
else f.setBackground(Color.gray);
}
}
class DrawPanel extends Panel implements MouseListener , MouseMotionListener
{
Vector lines = new Vector();
int x1 , y1;
int x2 , y2;
public DrawPanel()
{
setBackground (Color.white);
addMouseMotionListener(this);
addMouseListener(this);
}
public void SetDrawMode(int mode){}
public void mouseDragged(MouseEvent e)
{
x2 = e.getX();
y2 = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e){}
public void mousePressed(MouseEvent e)
{
x1 = e.getX();
y1 = e.getY();
x2 = -1;
}
public void mouseReleased(MouseEvent e)
{
lines.addElement(new Rectangle(x1,y1,e.getX(),e.getY()));
x2 = -1;
repaint();
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void paint(Graphics g)
{
int np = lines.size();
g.setColor(Color.black);
for ( int i = 0 ;i < np ; i ++ )
{
Rectangle p = (Rectangle)lines.elementAt(i);
g.drawLine(p.x,p.y,p.width,p.height);
}
if(x2!=-1)g.drawLine(x1,y1,x2,y2);
}
}
这是把裸的画图和按钮拼接起来的,下面是编译信息:
draw_ver1.0.java:50: 错误: 无法将类 Button中的方法 addActionListener应用到给定类
型;
Black_Button.addActionListener(f);
^
需要: ActionListener
找到: Frame
原因: 无法通过方法调用转换将实际参数Frame转换为ActionListener
请帮忙找出原因,并指出改正方法。
展开