Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java代码不工作,在eclipse上给了我一个错误_Java_Swing - Fatal编程技术网

Java代码不工作,在eclipse上给了我一个错误

Java代码不工作,在eclipse上给了我一个错误,java,swing,Java,Swing,eclipse给我的唯一错误是:此项目中存在错误。在我添加新类之前,代码运行良好 代码: 您的错误是:“无法引用非最终变量帧 在不同方法中定义的内部类中。“ 您可以通过将frame定义为final来修复它 final JFrame=new JFrame() 这是编译时的问题。那么您可能需要 如果代码没有达到预期效果,请进一步修复代码 您的错误是:“无法引用非最终变量帧 在不同方法中定义的内部类中。“ 您可以通过将frame定义为final来修复它 final JFrame=new JFrame(

eclipse给我的唯一错误是:
此项目中存在错误。在我添加新类之前,代码运行良好

代码:

您的错误是:“无法引用非最终变量帧
在不同方法中定义的内部类中。“
您可以通过将
frame
定义为final来修复它

final JFrame=new JFrame()

这是编译时的问题。那么您可能需要
如果代码没有达到预期效果,请进一步修复代码

您的错误是:“无法引用非最终变量帧
在不同方法中定义的内部类中。“
您可以通过将
frame
定义为final来修复它

final JFrame=new JFrame()

这是编译时的问题。那么您可能需要

如果代码没有达到预期效果,请进一步修复代码

你读到错误了吗?你不能在你的主方法中定义一个新的类。@tobias_k,我可以问一下吗(特别是例子8.1.3-2.内部类声明)?我最初也这么认为,但我只是测试了一下,这是可能的。不是我最喜欢的java功能…@Boristeider哦,天哪,我不知道这个功能。谢谢你指出。你读到错误了吗?你不能在你的主方法中定义一个新的类。@tobias_k,我可以问一下吗(特别是示例8.1.3-2.内部类声明)?我最初也这么认为,但我只是测试了一下,这是可能的。不是我最喜欢的java功能…@Boristeider哦,天哪,我不知道这个功能。谢谢您指出。我认为带有
frame.add
的行只属于另一行(直接在main方法中),那么
frame
不需要是
final
,还有。@tobias_k你完全正确-创建一个
新HelloComponent
并在每次调用
paint
时将其添加到
框架中可能不是OP的意图。我认为带有
frame.add
的行只属于另一行(直接在主方法中),那么
框架
也不需要是
最终的
。@tobias_k你完全正确-创建一个
新的Hello组件
,并在每次调用
绘制
时将其添加到
框架
,这可能不是OP的意图。
import javax.swing.*;
import java.awt.*;

public class Helloworld {
    public static void main(String[]args){
        JFrame frame = new JFrame ();

        class HelloComponent extends JComponent{
            public void paintComponent (Graphics g){
                g.drawString("Hello, Java", 123, 95);
                frame.add(new HelloComponent());
            }
        }
    }
}