我有一個非常簡單的遊戲,我正在創建一個新手項目。它基於名爲「Castlewars」的在線紙牌遊戲。有兩名球員,每名球員都有一個受到他們和對手打牌的牌的影響。目前,我有一個基本的集合和類的框架,我需要使遊戲在一個非常簡單的層面上運行,但我在向用戶顯示這些效果時遇到了問題。我有以下的代碼,它應該更新,除其他事項外,在JFrame GUI(在NetBeans 7.4構建的),它代表了玩家的防禦塔兩個JLabel:Java Swing:調整JFrame中的組件而不影響其他組件
private void adjustScreen(){
System.out.println (Integer.toString(jLabel1.getSize().height));
jLabel1.setSize(100, (playerRed.getTower().currentHeight() * 2));
System.out.println(Integer.toString(playerRed.getTower().currentHeight() * 2));
System.out.println (Integer.toString(jLabel1.getSize().height));
jLabel2.setSize(100, (playerBlue.getTower().currentHeight() * 2));
jLabel5.setText(Integer.toString(playerBlue.getTower().currentHeight()));
jLabel6.setText(Integer.toString(playerBlue.getGold()));
jLabel9.setText(Integer.toString(playerRed.getTower().currentHeight()));
jLabel10.setText(Integer.toString(playerRed.getGold()));
if (TurnBlue){
jPanel21.setBackground(inPlay);
jPanel10.setBackground(outPlay);
}else{
jPanel10.setBackground(inPlay);
jPanel21.setBackground(outPlay);
}
}
當我運行它,我得到以下的輸出:
- (初始標籤高度) - 200
- (調整塔()高度) - 100
- (調整標籤高度) - 100
這表明我想要做的是在某個層面上工作,但實際的標籤在視覺上保持相同的大小。
在開始(遊戲的開始應該設置標籤一半可見大小): 幾個劇本後 - 藍的新塔的高度將顯示在左上角
我已經玩過了在標籤和框架上啓用和禁用resize屬性的功能,而且我曾經設法調整大小,但它卻以不幸的方式轉移了框架的其他組件。正如你所看到的,儘管我沒有明確地指示他們這樣做(可能是「卡片」中的文本長度的影響),但底部的「卡片」似乎自己調整大小?我做錯了什麼?
據我所知,所有代碼都在Swing中,並且根本沒有JavaFX代碼,所以標題中的[javafx]標記和JavaFX引用應該被刪除? – jewelsea