JFrame「GameWindow」と「Combat」という名前のクラスがあります。
Combat クラスの変数から GameWindow のさまざまなコンポーネント (JLabels、JProgressBars など) を更新しようとしています。ただし、詳細は更新されないようです。次の点を考慮してください。
public class Combat {
public static String attackName1;
public static String pUnitName;
public static void setPlayerUnit(GameUnit u) {
attackName1 = u.getAttackName1();
pUnitName = u.getName().toUpperCase();
}
}
と:
public GameWindow() {
initialize();
gameFrame.setVisible(true);
}
private void initialize() {
gameFrame = new JFrame();
gameFrame.setResizable(false);
gameFrame.setTitle("GameWindow");
gameFrame.setBounds(100, 100, 800, 480);
gameFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
JButton pAttack1 = new JButton(Combat.attackName1); //<--------NOT BEING CHANGED
sl_gamePanel.putConstraint(SpringLayout.NORTH, pAttack1, 0, SpringLayout.NORTH, gameTextPanel);
sl_gamePanel.putConstraint(SpringLayout.WEST, pAttack1, 6, SpringLayout.EAST, textAttackSeparator);
sl_gamePanel.putConstraint(SpringLayout.SOUTH, pAttack1, 34, SpringLayout.NORTH, gameTextPanel);
sl_gamePanel.putConstraint(SpringLayout.EAST, pAttack1, 157, SpringLayout.EAST, textAttackSeparator);
gamePanel.add(pAttack1);
JLabel pMobName = new JLabel(Combat.pUnitName); //<--------NOT BEING CHANGED
sl_pPanel.putConstraint(SpringLayout.NORTH, pMobName, 10, SpringLayout.NORTH, pPanel);
sl_pPanel.putConstraint(SpringLayout.WEST, pMobName, 129, SpringLayout.WEST, pPanel);
pPanel.add(pMobName);
ボタン/JLabels のテキストが更新されないのはなぜですか? 「Combat.variable」を「Combat.getVariable()」に変更する必要がありますか? これは可能ですか?もしそうなら、どうすればそれを機能させることができますか?