1

我不断导入更多的包,但我得到相同的“错误:找不到符号”,所有包含鼠标事件的方法。我想我缺少一个需要扩展或实现的包或类,但我找不到哪个。有任何想法吗?

import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Component;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.*;

public class t1 implements MouseListener
{ 
    public static void main(String[] args)
    {
    // Create frame with title
        Frame frame = new Frame("Click Counter Project");

        // Create a component to add to the frame
        final TextArea textArea = new TextArea("Click");
    }
    public void mousePressed(MouseEvent event)
    { 
            textArea.setText("Mouse pressed. x = "+ event.getX() + " y = " +         event.getY());
    } 
    public void mouseReleased(MouseEvent event)
    { 
        textArea.setText("Mouse released. x = "+ event.getX() + " y = " + event.getY());
} 
public void mouseClicked(MouseEvent event)
{ 
    textArea.setText("Mouse clicked. x = "+ event.getX() + " y = " + event.getY());
    } 
    public void mouseEntered(MouseEvent event)
    { 
        textArea.setText("Mouse entered. x = "+ event.getX() + " y = " + event.getY());
    } 
    public void mouseExited(MouseEvent event)
    { 
            textArea.setText("Mouse exited. x = "+ event.getX() + " y = " + event.getY());
    }
    public void t1()
    {
        frame.add(textArea, BorderLayout.NORTH);
            int width = 300;
            int height = 300;
            frame.setSize(width, height);
            frame.setVisible(true);
    }
}
4

2 回答 2

1

您的变量textArea在内部声明为局部变量main,因此它超出了其他方法的范围。

在类内部但在所有方法外部声明textArea——作为实例变量。然后它将在您的整个班级的范围内,包括您的所有方法。

public class t1 implements MouseListener
{
    // Here!
    final TextArea textArea = new TextArea("Click");

    public static void main(String[] args)
    {
        // ...

您将需要对frame变量执行相同的操作。

于 2013-07-18T18:39:00.603 回答
1

已导入所有必需的包和文件。出现“找不到符号”错误的原因是因为“textArea”字段和“frame”变量是本地的。像下面的代码那样将它们声明为静态类变量,然后在 main 方法中初始化它们,并且找不到符号错误被清除。

代码应该是这样的: -

 public class t1 implements MouseListener
    { 
    static TextArea textArea;
    static Frame frame;
        public static void main(String[] args)
        {
        // Create frame with title
          frame = new Frame("Click Counter Project");

            // Create a component to add to the frame
             textArea = new TextArea("Click");
             t1 clickCount= new t1();
        }
    ...
 t1()
    {
        frame.add(textArea, BorderLayout.NORTH);
            int width = 300;
            int height = 300;
            frame.setSize(width, height);
            frame.addMouseListener(this);
            frame.setVisible(true);
    }
    }
于 2013-07-18T18:52:01.720 回答