在构建Frame之后为什么我的代码没有被读取?

时间:2017-11-23 05:49:08

标签: java swing syntax-error

在我创建一个新的Frame对象以将未来的JPanels附加到对象" j"之后。没有被认可。

package engine;

import javax.swing.*;

public class GamePanel extends JFrame{

    final int HEIGHT=700, WIDTH=500;

    JFrame j= new JFrame("LittleRPG");
    j.setSize(HEIGHT, WIDTH);
}

j.setSize();没有被接受并且出现错误(这适用于初始构造之后的所有对象引用)。我需要帮助确定原因;新鲜的眼睛总是有帮助 - 谢谢你

3 个答案:

答案 0 :(得分:1)

您不需要创建单独的JFrame对象来设置大小,因为您已经从JFrame扩展了GamePanel类。因此,您可以直接在构造函数GamePanel中将其设置为代码:

package engine;

import javax.swing.*;

public class GamePanel extends JFrame
{

    final int HEIGHT=700, WIDTH=500;

    GamePanel ()
    {
      setSize(HEIGHT, WIDTH);
    }

} 

答案 1 :(得分:1)

您的setSize(HEIGHT, WIDTH);方法必须位于构造函数或其他方法中。就像@Vikas Suryawanshi所说,你可以调用JFrame的方法,你不需要创建一个新的Object。

答案 2 :(得分:0)

@Tupfer和@Vikas的答案是正确的。 你仍然希望使用Jframe然后

的对象来做
package engine;

import javax.swing.*;
import java.awt.Color;

public class GamePanel extends JPanel{

   final int HEIGHT=700, WIDTH=500;

   public static void main(String[] args){
       JFrame j= new JFrame("LittleRPG");
       j.setSize(HEIGHT, WIDTH);
       j.getContentPane().add(new GamePanel());
       j.setVisible(true);
       j.setLocationRelativeTo(null);
       j.setBackground(Color.BLUE);
       j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

此外,您无需延长JFrame