我是一个刚开始的程序员,现在我只是在尝试创建一个程序,在该程序中我可以使用键盘使角色在屏幕上四处移动。我写的其他大多数东西都已经过测试,但是由于一个简单的错误,我无法编译它。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.List;
import java.util.ArrayList;

public class TryGUI
{

   public static void main(String[] args)
   {
      Gladiator red = new Gladiator(200, 200);
      java.awt.EventQueue.invokeLater(new Runnable()
      {
         public void run()
         {
            CreateAndShowGUI();
         }
      });
   }

   private static void CreateAndShowGUI()
   {
      JFrame newGUI = new JFrame("New");
      newGUI.pack();
      newGUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      newGUI.getContentPane().add(new ManageGladiator());
      //newGUI.setLocationRelativeTo(null);
      newGUI.setVisible(true);
      red.repaint();

   }

}


由于某种原因,当程序到达red.repaint时,出现此错误:

TryGUI.java:30: error: cannot find symbol
      red.repaint();
      ^
  symbol:   variable red
  location: class TryGUI
1 error


我不明白为什么该对象不能被识别为已存在,因为它在程序中早先被调用过。

最佳答案

我建议阅读“可变范围”。变量仅在其作用域内可用,而从其作用域之外访问变量将引发错误。这样,您就可以在不同的实例中重用变量名,例如将变量“ i”用作许多循环的迭代器,或者创建几个使用变量“ tmp”的函数。否则,当您获得几百到几千(或更多)行代码时,您的变量名将变得荒谬,如“ the_iterator_for_loop_in_class_foo”

这是一个教程:http://www.java-made-easy.com/variable-scope.html

10-06 11:23