我是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);
}
}
我尝试过使用paint和paintComponent。两者似乎都有相同的结果。
感谢您的帮助。
答案 0 :(得分:1)
我认为你需要这样做:
frame.pack();
frame.setVisible(true);
这将布置框架并确保其显示。您应该在添加Game JPanel之后立即执行此操作。
您可能还会发现需要为Game JPanel设置首选大小。如果是这样,请在Game构造函数中添加以下内容:
this.setPreferredSize(new Dimensions(600, 400));