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