这个问题什么意思? 编译的时候出现这样一个错误,请大家指点ArcTest is not abstract and does not override abstract method windowOpened(java.awt.event.WindowEvent) in java.awt.event.WindowListener多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 程序是这样的,应该怎么改啊,刚刚学,什么都不会:(import java.awt.*;import java.awt.event.*;import java.applet.*;public class ArcTest extends Applet implements WindowListener { ArcControls controls;public void init(){ //Applet的入口方法setLayout(new BorderLayout());ArcCanvas c=new ArcCanvas(); add("Center",c);add("South",controls=new ArcControls(c));}public void start(){ controls.setEnabled(true); //激活controls}public void stop(){controls.setEnabled(false); }public void windowActivated(WindowEvent e){ } //重写WindowListener的方法public void windowClosed(WindowEvent e){ } //重写WindowListener的方法public void windowClosing(WindowEvent e){ //重写WindowListener的方法System.exit(0); }public void windowDeactivated(WindowEvent e){} //重写WindowListener的方法public void windowDeiconified(WindowEvent e){} //重写WindowListener的方法public void windowIconified(WindowEvent e){ } //重写WindowListener的方法public void windowOpend(WindowEvent e){ } //重写WindowListener的方法public static void main(String args[]) {Frame f=new Frame("ArcTest"); //构造FrameArcTest arcTest=new ArcTest(); //构造arcTestarcTest.init();arcTest.start();f.add("Center",arcTest);f.setSize(300,300);f.show();f.addWindowListener(arcTest);}}class ArcCanvas extends Canvas {//类ArcCanvasint startAngle=0;int endAngle=45;boolean filled=false;Font font;public void paint(Graphics g){ //paint方法,该方法的作用是在Canvas上画图Rectangle r=getBounds();int hlines=r.height/10;int vlines=r.width/10;g.setColor(Color.pink);for(int i=1;i<=hlines;i++) {g.drawLine(0,i*10,r.width,i*10); }for(int i=1;i<=vlines;i++) {g.drawLine(i*10,0,i*10,r.height);}g.setColor(Color.red);if(filled) {g.fillArc(0,0,r.width-1,r.height-1,startAngle,endAngle); }else { g.drawArc(0,0,r.width-1,r.height-1,startAngle, endAngle); }g.setColor(Color.black);g.setFont(font);g.drawLine(0,r.height/2,r.width,r.height/2);g.drawLine(r.width/2,0,r.width/2,r.height);g.drawLine(0,0,r.width,r.height);g.drawLine(r.width,0,0,r.height);int sx=10;int sy=r.height-28;g.drawString("S="+startAngle,sx,sy);g.drawString("E="+endAngle,sx,sy+14);}public void redraw(boolean filled,int start,int end){ //重画方法this.filled=filled;this.startAngle=start;this.endAngle=end;repaint(); //通过调用repaint()方法,从而最终调用paint方法完成重画}}class ArcControls extends Panel implements ActionListener { //ArcControls类TextField s;TextField e;ArcCanvas canvas;public ArcControls(ArcCanvas canvas) {Button b=null;this.canvas=canvas;add(s=new TextField("0",4));add(e=new TextField("45",4));b=new Button("Fill");b.addActionListener(this);add(b);b=new Button("Draw");b.addActionListener(this);add(b);}public void actionPerformed(ActionEvent ev) { //实现接口ActionListener的方法String label=ev.getActionCommand();canvas.redraw(label.equals("Fill"),50,50);Integer.parseInt(s.getText().trim());Integer.parseInt(e.getText().trim());}} 楼主的语句:public void windowOpend(WindowEvent e){ } 写错了,应该是public void windowOpened(WindowEvent e){ } 因为类声明实现了 WindowListener 接口,而方法又写错了,因此编译器认为你没有实现public void windowOpened(WindowEvent e); 方法,而这个方法又因为你声明实现了 WindowListener 接口而成为 ArcTest 类的方法。所以,一个类中存在声明了却没有实现的方法,这个类就必须被声明为抽象类。 JDBC直接连接oracle数据库 问一个正则表达式 inner class存在的意义 [请斑竹进来一下]好好的回复为什么不允许? 关于struts-config.xml 200分求问题答案 在Jtable中的遇到的问题!! 关于父类、子类静态代码块的问题 如何将两个类放在同一个包中? 一个JBUILDER的编译错误,大家帮我看看 帮帮我看下面的将AU格式转换为WAV格式的程序 哪里错了哦 关于Class的问题!!!!!!!!!!!!!!!!!!!
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class ArcTest extends Applet implements WindowListener {
ArcControls controls;
public void init(){ //Applet的入口方法
setLayout(new BorderLayout());
ArcCanvas c=new ArcCanvas();
add("Center",c);
add("South",controls=new ArcControls(c));
}
public void start(){
controls.setEnabled(true); //激活controls
}
public void stop(){
controls.setEnabled(false);
}
public void windowActivated(WindowEvent e){ }
//重写WindowListener的方法
public void windowClosed(WindowEvent e){ }
//重写WindowListener的方法
public void windowClosing(WindowEvent e){
//重写WindowListener的方法
System.exit(0); }
public void windowDeactivated(WindowEvent e){}
//重写WindowListener的方法
public void windowDeiconified(WindowEvent e){}
//重写WindowListener的方法
public void windowIconified(WindowEvent e){ }
//重写WindowListener的方法
public void windowOpend(WindowEvent e){ }
//重写WindowListener的方法public static void main(String args[]) {
Frame f=new Frame("ArcTest"); //构造Frame
ArcTest arcTest=new ArcTest(); //构造arcTest
arcTest.init();
arcTest.start();
f.add("Center",arcTest);
f.setSize(300,300);
f.show();f.addWindowListener(arcTest);
}
}
class ArcCanvas extends Canvas {//类ArcCanvas
int startAngle=0;
int endAngle=45;
boolean filled=false;
Font font;
public void paint(Graphics g){
//paint方法,该方法的作用是在Canvas上画图
Rectangle r=getBounds();
int hlines=r.height/10;
int vlines=r.width/10;
g.setColor(Color.pink);
for(int i=1;i<=hlines;i++) {
g.drawLine(0,i*10,r.width,i*10);
}
for(int i=1;i<=vlines;i++) {
g.drawLine(i*10,0,i*10,r.height);
}
g.setColor(Color.red);
if(filled) {
g.fillArc(0,0,r.width-1,r.height-1,startAngle,endAngle); }
else { g.drawArc(0,0,r.width-1,r.height-1,startAngle, endAngle);
}
g.setColor(Color.black);
g.setFont(font);
g.drawLine(0,r.height/2,r.width,r.height/2);
g.drawLine(r.width/2,0,r.width/2,r.height);
g.drawLine(0,0,r.width,r.height);
g.drawLine(r.width,0,0,r.height);
int sx=10;
int sy=r.height-28;
g.drawString("S="+startAngle,sx,sy);
g.drawString("E="+endAngle,sx,sy+14);
}
public void redraw(boolean filled,int start,int end){ //重画方法
this.filled=filled;
this.startAngle=start;
this.endAngle=end;
repaint();
//通过调用repaint()方法,从而最终调用paint方法完成重画
}
}
class ArcControls extends Panel implements ActionListener { //ArcControls类
TextField s;
TextField e;
ArcCanvas canvas;
public ArcControls(ArcCanvas canvas) {
Button b=null;
this.canvas=canvas;
add(s=new TextField("0",4));
add(e=new TextField("45",4));
b=new Button("Fill");
b.addActionListener(this);
add(b);
b=new Button("Draw");
b.addActionListener(this);
add(b);
}
public void actionPerformed(ActionEvent ev) {
//实现接口ActionListener的方法
String label=ev.getActionCommand();
canvas.redraw(label.equals("Fill"),50,50);
Integer.parseInt(s.getText().trim());
Integer.parseInt(e.getText().trim());
}
}
public void windowOpened(WindowEvent e){ }
因为类声明实现了 WindowListener 接口,而方法又写错了,因此编译器认为你没有实现public void windowOpened(WindowEvent e); 方法,而这个方法又因为你声明实现了 WindowListener 接口而成为 ArcTest 类的方法。所以,一个类中存在声明了却没有实现的方法,这个类就必须被声明为抽象类。