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」変数がローカルであるためです。以下のコードで行うように、それらを静的クラス変数として宣言し、メイン メソッドで初期化すると、シンボルが見つからないというエラーがクリアされます。

コードは次のようになります:-

 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 に答える