我是一名初学程序员,现在我正在尝试创建一个程序,在其中我可以使用我的键在屏幕上移动角色。我编写的大多数其他内容已经过测试,但由于一个简单的错误,我无法编译它。
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
我不明白为什么对象不被识别为现有的,因为它在程序中早先被调用。
答案 0 :(得分:1)
我建议阅读变量范围。变量仅在其范围内可用,并且从其范围外部访问它将引发错误。这允许您在不同的实例中重用变量名称,例如使用变量“i”作为许多循环的迭代器,或创建多个使用变量“tmp”的函数。否则,当你得到几百到几千(或更多)行代码时,你的变量名就会像“the_iterator_for_loop_in_class_foo”那样变得荒谬了