需要 addMouseListener 和标识符
addMouseListener and identifier expected
我和我的搭档试图为实验室制作退出按钮,但我们无法弄清楚为什么它会出现标识符预期错误。
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import java.awt.event.ActionListener;
public class EnterExitListener extends JFrame
{
public static void main(String [] args)
{
JFrame frame=new JFrame();
final int FRAME_WIDTH=500;
final int FRAME_HEIGHT=600;
frame.setSize(FRAME_WIDTH,FRAME_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
class MouseEnterExitListener implements MouseListener
{
public void mouseEntered(MouseEvent event)
{
System.out.println("ENTER");
frame.setBackground(Color.BLUE);
}
public void MouseExited(MouseEvent event)
{
System.out.println("EXIT");
frame.setBackground(Color.RED);
}
public void mouseReleased(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
public void mousePressed(MouseEvent event) {}
MouseListener listener=new MouseListener();
frame.addMouseListener(listener);
}
}
}
如果我尝试编译这段代码,它会出现这个错误
EnterExitListener.java:34: error: <identifier> expected
EnterExitListener.addMouseListener(listener);
^
EnterExitListener.java:34: error: <identifier> expected
EnterExitListener.addMouseListener(listener);
^
第 34 行 frame.addMouseListener(listener);
当前是您内部 class 定义的一部分。您此时无法进行方法调用。
import java.awt.Color; // added import
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import java.awt.event.ActionListener;
public class EnterExitListener extends JFrame
{
public static void main(String [] args)
{
JFrame frame=new JFrame();
final int FRAME_WIDTH=500;
final int FRAME_HEIGHT=600;
frame.setSize(FRAME_WIDTH,FRAME_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
class MouseEnterExitListener implements MouseListener
{
public void mouseEntered(MouseEvent event)
{
System.out.println("ENTER");
frame.setBackground(Color.BLUE);
}
public void mouseExited(MouseEvent event) // lowercase 'm'
{
System.out.println("EXIT");
frame.setBackground(Color.RED);
}
public void mouseReleased(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
public void mousePressed(MouseEvent event) {}
} // moved closing bracket
MouseListener listener = new MouseEnterExitListener(); // instantiate class, not interface
frame.addMouseListener(listener);
}
}
我和我的搭档试图为实验室制作退出按钮,但我们无法弄清楚为什么它会出现标识符预期错误。
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import java.awt.event.ActionListener;
public class EnterExitListener extends JFrame
{
public static void main(String [] args)
{
JFrame frame=new JFrame();
final int FRAME_WIDTH=500;
final int FRAME_HEIGHT=600;
frame.setSize(FRAME_WIDTH,FRAME_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
class MouseEnterExitListener implements MouseListener
{
public void mouseEntered(MouseEvent event)
{
System.out.println("ENTER");
frame.setBackground(Color.BLUE);
}
public void MouseExited(MouseEvent event)
{
System.out.println("EXIT");
frame.setBackground(Color.RED);
}
public void mouseReleased(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
public void mousePressed(MouseEvent event) {}
MouseListener listener=new MouseListener();
frame.addMouseListener(listener);
}
}
}
如果我尝试编译这段代码,它会出现这个错误
EnterExitListener.java:34: error: <identifier> expected
EnterExitListener.addMouseListener(listener);
^
EnterExitListener.java:34: error: <identifier> expected
EnterExitListener.addMouseListener(listener);
^
第 34 行 frame.addMouseListener(listener);
当前是您内部 class 定义的一部分。您此时无法进行方法调用。
import java.awt.Color; // added import
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import java.awt.event.ActionListener;
public class EnterExitListener extends JFrame
{
public static void main(String [] args)
{
JFrame frame=new JFrame();
final int FRAME_WIDTH=500;
final int FRAME_HEIGHT=600;
frame.setSize(FRAME_WIDTH,FRAME_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
class MouseEnterExitListener implements MouseListener
{
public void mouseEntered(MouseEvent event)
{
System.out.println("ENTER");
frame.setBackground(Color.BLUE);
}
public void mouseExited(MouseEvent event) // lowercase 'm'
{
System.out.println("EXIT");
frame.setBackground(Color.RED);
}
public void mouseReleased(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
public void mousePressed(MouseEvent event) {}
} // moved closing bracket
MouseListener listener = new MouseEnterExitListener(); // instantiate class, not interface
frame.addMouseListener(listener);
}
}