スコアを表示するゲームの上にラベルを貼ろうとしていますが、ラベルを空白の灰色の画面に表示してゲームが表示されません。コードとJLabelを挿入しようとしている領域を添付します。あなたが同じフレームに両方の要素を追加しているので、あなたはレイアウトになっているはずですJava Swing。
public static void main(String[] args) throws InterruptedException {
int timer = 0;
int Time = 0;
JFrame frame = new JFrame("Grid Hopper");
frame.setSize(1120,800);
frame.setResizable(false);
frame.setVisible(true);
frame.setTitle("Grid Hopper");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridHopper game = new GridHopper();
game.setBackground(Color.gray);
frame.add(game);
JLabel score = new JLabel();
score.setText("Score to be calculated");
frame.add(score);
//ACTUAL GAME-RUN WHILE LOOP!
while(game.dead != true){
game.repaint();
//game.moveBall(); NOW USED FOR PLAYER MOVEMENT
if (Time > 3){
game.moveBall5();
}
if (Time > 10){
game.moveBall4();
}
if (Time > 30){
game.moveBall2();
}
if (Time > 60){
game.moveBall3();
}
game.collision();
Thread.sleep(2);
timer++;
if (timer%500 == 0){
Time++;
System.out.println(Time);
}
}
}
'frame.add(game、BorderLayout.CENTER);と' frame.add(score、BorderLayout.NORTH); 'を試してみて、' frame.setVisible(true); 'レイアウトが行われます。 – Berger
それは感謝しました! – Cutter
JFrameで使用されるデフォルトのレイアウトマネージャー(内容ペインでも)はBorderLayoutで、私の答えを説明しています。レイアウトマネージャの仕組みを確認できます:https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html – Berger