感謝您抽出時間閱讀本。我希望它不會造成混淆,如果需要其他信息,請告訴我!內用JFrame的一個JPanel沒有大小和位置正確
Issue: 我在製作一個類似Snake的遊戲,並創建了一個JFrame,然後添加了JPanel。那麼,如果我沒有在JFrame中設置它的大小,它的大小就會達到100 x 20左右。當我設置它的大小時,它將保持在設置的尺寸上。但是,如果我打包()它,當我在JPanel中定義大小時,它會縮回到100 x 20左右。我也設置了界限,沒有運氣。我使用FlowLayout()和BorderLayout()也沒有成功。現在我的遊戲運行正常,除了幀以外沒有任何問題。它會切斷雙方,除非我做一些我不想做的體操。
目標: 我希望能夠正確地指定幀的大小以適應指定的寬度和高度,並讓面板向下移動一點,爲遊戲文本添加空間,以免阻塞任何內容。
基本上我很困惑與慌張,我已經花了幾天就這一點,我還沒有成功的任何東西爲止。
JFrame類:
public class main extends JFrame {
/**
* @param args the command line arguments
*/
public main(){
Board game = new Board();
setLayout(new BorderLayout(0, 50));
setSize(game.getGameWidth(), game.getGameHeight());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("BlockRunner");
getContentPane().add(game);
setResizable(false);
setVisible(true);
}
}
我Board類:
public class Board extends JPanel implements ActionListener, KeyListener{
private int width = 600;
private int height = 400;
Board(){
addKeyListener(this);
setFocusable(true);
setBackground(Color.LIGHT_GRAY);
setSize(width, height);
InitGame();
}
}
我願意嘗試任何事情有人願意拿出有我。 謝謝你的時間!
編輯1 :(由於用戶的回答。) 使用setPerferredSize(),setMinmumSize()和setMaximumSize()不會影響結果。
有你嘗試setPrefferedSize()? –
@FredrikLS閱讀編輯:P – WilliamShatner
@WilliamShatner確定 –