Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 JFrame随机渲染图形_Java_Swing_Graphics_Jframe_Jpanel - Fatal编程技术网

Java JFrame随机渲染图形

Java JFrame随机渲染图形,java,swing,graphics,jframe,jpanel,Java,Swing,Graphics,Jframe,Jpanel,我是Java游戏编程新手。我听了一些教程,看了一些视频。我显然做错了什么,因为我每加载应用程序10次,图形就会显示一次 游戏概念是一本足球手册。我的目标是教我8岁的孩子,当不同的场景存在时,应该在这个领域的哪一部分 我使用Eclipse作为IDE。以下是课程和相关成员的摘要。下面表示的类用于绘制字段和字段上的几行 注意:为了最小化此帖子的大小,删除了很多逻辑。如果你需要更多信息,请告诉我 public class SoccerPlaybook { public static void m

我是Java游戏编程新手。我听了一些教程,看了一些视频。我显然做错了什么,因为我每加载应用程序10次,图形就会显示一次

游戏概念是一本足球手册。我的目标是教我8岁的孩子,当不同的场景存在时,应该在这个领域的哪一部分

我使用Eclipse作为IDE。以下是课程和相关成员的摘要。下面表示的类用于绘制字段和字段上的几行

注意:为了最小化此帖子的大小,删除了很多逻辑。如果你需要更多信息,请告诉我


public class SoccerPlaybook {

  public static void main(String[] args) {
    new SoccerPlaybook();
  }

  public SoccerPlaybook() {
    JFrame frame = new JFrame();
    frame.add(new Game(this));
  }
}

public class Game extends JPanel {

  public Game(SoccerPlaybook soccerPlaybook) {
    this.soccerPlaybook = soccerPlaybook;
  }

  public void paintComponent(Graphics g) {      
    field.paintComponent(g);
  } 
}

public class Field extends JPanel {

  public Field(Game game) {
    this.game = game;
  }

  public void paintComponent(Graphics g) {
    g.setColor(Color.GREEN);
    g.fillRect(0, 0, game.getSoccerPlaybook().getWidth(), game.getSoccerPlaybook().getHeight());

    g.setColor(Color.WHITE);
    g.drawLine(200, 50, 400, 50);
    g.drawLine(200, 300, 400, 300);
    g.drawLine(200, 50, 200, 300);
    g.drawLine(325, 100, 400, 100);
    g.drawLine(325, 250, 400, 250);
    g.drawLine(325, 100, 325, 250);
  } 
}
我试过使用油漆和油漆组件。两者似乎有相同的结果


谢谢您的帮助。

我想您需要做:

frame.pack();
frame.setVisible(true);
这将布局框架并确保其得到显示。您应该在添加游戏JPanel后立即执行此操作

您还可能会发现,您需要为游戏JPanel设置一个首选大小。如果是这样,请在游戏构造器中放置以下内容:

this.setPreferredSize(new Dimensions(600, 400));

我认为你需要做:

frame.pack();
frame.setVisible(true);
这将布局框架并确保其得到显示。您应该在添加游戏JPanel后立即执行此操作

您还可能会发现,您需要为游戏JPanel设置一个首选大小。如果是这样,请在游戏构造器中放置以下内容:

this.setPreferredSize(new Dimensions(600, 400));

就这样。非常感谢,就这样。非常感谢你。