【发布时间】:2014-05-02 03:04:22
【问题描述】:
作为新手项目,我正在创建一个非常简单的游戏。它基于一款名为“Castlewars”的在线纸牌游戏。有两个玩家,每个人都有一个塔,塔会受到他们和对手打出的牌的影响。目前,我有集合和类的基本框架,我需要让游戏在一个非常简单的级别上运行,但是我在向用户显示这些效果时遇到了问题。我有以下代码,除其他外,它应该更新代表玩家塔的 jFrame GUI(在 NetBeans 7.4 中构建)上的两个 jLabel:
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
- (调整后的 Tower().height) - 100
- (调整后的标签高度)- 100
这表明我正在尝试做的是在某种程度上工作,但实际标签在视觉上保持相同的大小。
在开始时(游戏开始时应该将标签设置为可见大小的一半): 几场比赛后 - 蓝队的新塔高显示在左上角
我尝试过启用和禁用标签和框架上的调整大小属性,我曾经设法让它调整大小,但它随后以一种不幸的方式移动了框架的其他组件.如您所见,底部的“卡片”似乎确实会自行调整大小,尽管我没有明确指示他们这样做(可能是“卡片”中文本长度的影响?)我做错了什么?
【问题讨论】:
-
据我所知,所有代码都在Swing中,根本没有JavaFX代码,所以标题中的[javafx]标签和JavaFX引用应该去掉?跨度>