Java 无法理解并解决此程序的方法重写错误
错误如下:Java 无法理解并解决此程序的方法重写错误,java,swing,event-handling,awt,Java,Swing,Event Handling,Awt,错误如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class test extends JFrame implements MouseListener { JFrame f; JPanel p; JButton b; test() { f=new JFrame("My Frame"); p=new JPanel(); f.add(p); b=new JBu
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test extends JFrame implements MouseListener
{
JFrame f;
JPanel p;
JButton b;
test()
{
f=new JFrame("My Frame");
p=new JPanel();
f.add(p);
b=new JButton("Button");
p.add(b);
f.setSize(100,100);
f.setVisible(true);
b.addMouseListener(new MouseListener()
{
public void mouseClicked(MouseEvent ae)
{
System.out.print("mouse clicked");
}
});
b.addMouseListener(new MouseListener()
{
public void mouseEntered(MouseEvent ae)
{
System.out.print("mouse Entered");
}
});
b.addMouseListener(new MouseListener()
{
public void mouseExited(MouseEvent ae)
{
System.out.print("mouse Exited");
}
});
b.addMouseListener(new MouseListener()
{
public void mousePressed(MouseEvent ae)
{
System.out.print("mouse Pressed");
}
});
b.addMouseListener(new MouseListener()
{
public void mouseReleased(MouseEvent ae)
{
System.out.print("mouse Released");
}
});
}
public static void main(String args[])
{
new test();
}
}
我对AWT不太熟悉,但似乎您有一个非抽象类测试,它没有实现接口MouseListener的抽象方法 您需要实施:
--------------------Configuration: <Default>--------------------
C:\Users\SHUBHENDU\Documents\test.java:19: <anonymous test$1> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
C:\Users\SHUBHENDU\Documents\test.java:26: <anonymous test$2> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
C:\Users\SHUBHENDU\Documents\test.java:33: <anonymous test$3> is not abstract and does not override abstract method mouseEntered(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
C:\Users\SHUBHENDU\Documents\test.java:40: <anonymous test$4> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
C:\Users\SHUBHENDU\Documents\test.java:47: <anonymous test$5> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
5 errors
如果你的类是抽象的,你就不需要实现这些方法了,这将由下一个非抽象的子类来完成。我对AWT不太熟悉,但你似乎有一个非抽象的类测试,它没有实现接口MouseListener的抽象方法 您需要实施:
--------------------Configuration: <Default>--------------------
C:\Users\SHUBHENDU\Documents\test.java:19: <anonymous test$1> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
C:\Users\SHUBHENDU\Documents\test.java:26: <anonymous test$2> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
C:\Users\SHUBHENDU\Documents\test.java:33: <anonymous test$3> is not abstract and does not override abstract method mouseEntered(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
C:\Users\SHUBHENDU\Documents\test.java:40: <anonymous test$4> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
C:\Users\SHUBHENDU\Documents\test.java:47: <anonymous test$5> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
{
^
5 errors
如果你的类是抽象的,你就不需要实现这些方法了,这将由下一个非抽象的子类来完成。如果你有一个具体的Java类非抽象类,你必须实现一个接口的所有方法,当然如果你的类实现了这个接口。
因此,将MouseListener接口的未实现方法添加到代码中。但每次都会在同一个按钮上添加一个新的鼠标侦听器。这不是它的使用方式。您可以/应该在同一代码体中实现所有MouseListener方法。删除JButton b中多余的MouseListener添加项。如果您有一个具体的Java类非抽象类,那么您必须实现接口的所有方法,当然,如果您的类实现了该接口。
因此,将MouseListener接口的未实现方法添加到代码中。但每次都会在同一个按钮上添加一个新的鼠标侦听器。这不是它的使用方式。您可以/应该在同一代码体中实现所有MouseListener方法。删除JButton b中多余的MouseListener添加项。如果您只想覆盖MouseListener接口的一种方法,可以使用MouseAdapter,如下所示:
mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
如果您只想覆盖MouseListener接口的一个方法,可以使用MouseAdapter,如下所示:
mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
要修复这些错误
JButton button = new JButton("Click");
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("mouse was clicked");
}
});
要修复这些错误
JButton button = new JButton("Click");
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("mouse was clicked");
}
});
不相关,但您的类名应该大写,以免与方法混淆。公共类testnotrelated,但是您的类名应该大写,这样就不会与方法混淆。公共类Testthanx buddy也很有用:thanx buddy也很有用: