Ich arbeite an einem Spiel, wo Sie Ihre Statistiken in einem Geschäft aktualisieren können. Wenn Sie etwas kaufen, sollte es das JLabel aktualisieren, das Ihre Münzen zeigtaktualisieren JFrame Java ohne neue JFrame
Gibt es eine Möglichkeit, das zu tun, ohne einen neuen JFrame zu machen?
public void actionPerformed(ActionEvent e) {
user.setCoin(user.getCoin() - 5);
user.setMaxJump(5);
EpixController.getInstance().coinsUpdate(user, -5);
SwingUtilities.updateComponentTreeUI(epix);
epix.revalidate();
epix.repaint();
}
Dies ist der Code der Action wo ich der Code der Ansicht, die JFrame epix
Hier aktualisieren mag
public EpixView(User user) {
this.setUser(user);
JFrame epix = new JFrame();
System.out.println(user.getMaxJump());
epix.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
epix.setResizable(false);
epix.setBounds(100, 100, 801, 523);
epix.setLocationRelativeTo(null);
epix.getContentPane().removeAll();
/*
* menuCard
*/
menuCard.setLayout(null);
//coin
menuCardCoinImage.setBounds(0, 10, 64, 64);
menuCard.add(menuCardCoinImage);
menuCardCoinImage.setIcon(new ImageIcon(coinSpinPath));
menuCardCoinLabel = new JLabel("" + getUser().getCoin());
menuCardCoinLabel.setFont(new Font("Modern No. 20", Font.PLAIN, 26));
menuCardCoinLabel.setBounds(67, 10, 56, 64);
menuCard.add(menuCardCoinLabel);
//player
menuCardPlayerLabel = new JLabel("Willkommen zurück, " + getUser().getUsername());
menuCardPlayerLabel.setBounds(598, 18, 239, 36);
menuCard.add(menuCardPlayerLabel);
spielenButton.setBounds(485, 319, 89, 23);
menuCard.add(spielenButton);
ranglisteButton.setBounds(485, 353, 89, 23);
menuCard.add(ranglisteButton);
menuCardBackgroundImage.setIcon(new ImageIcon(backgroundPath));
menuCardBackgroundImage.setBounds(0, 0, 801, 523);
menuCard.add(menuCardBackgroundImage);
cards.add(menuCard, "menuCard");
/*
* upgradeCard
*/
upgradeCard.setLayout(null);
//coin
upgradeCardCoinImage.setBounds(0, 10, 64, 64);
upgradeCardCoinImage.setIcon(new ImageIcon(coinSpinPath));
upgradeCard.add(upgradeCardCoinImage);
upgradeCardCoinLabel = new JLabel(""+ getUser().getCoin());
upgradeCardCoinLabel.setBounds(67, 10, 56, 64);
upgradeCardCoinLabel.setFont(new Font("Modern No. 20", Font.PLAIN, 26));
upgradeCard.add(upgradeCardCoinLabel);
//player
upgradeCardPlayerLabel = new JLabel("Willkommen zurück, " + getUser().getUsername());
upgradeCardPlayerLabel.setBounds(598, 18, 239, 36);
upgradeCard.add(upgradeCardPlayerLabel);
//maxHealthBar
healthLabel.setHorizontalAlignment(SwingConstants.RIGHT);
healthLabel.setBounds(191, 127, 110, 36);
upgradeCard.add(healthLabel);
JProgressBar maxHealthBar = new JProgressBar();
maxHealthBar.setValue(0);
maxHealthBar.setBounds(327, 127, 185, 36);
upgradeCard.add(maxHealthBar);
plusHealthButton.setBounds(522, 130, 41, 30);
upgradeCard.add(plusHealthButton);
//maxJumpBar
jumpLabel.setHorizontalAlignment(SwingConstants.RIGHT);
jumpLabel.setBounds(191, 174, 110, 36);
upgradeCard.add(jumpLabel);
JProgressBar maxJumpBar = new JProgressBar();
maxJumpBar.setValue(0);
maxJumpBar.setBounds(327, 174, 185, 36);
upgradeCard.add(maxJumpBar);
plusJumpButton.setBounds(522, 177, 41, 30);
plusJumpButton.addActionListener(new PlusJumpListener(getUser(), maxJumpBar, epix));
upgradeCard.add(plusJumpButton);
//maxSpeed
speedLabel.setHorizontalAlignment(SwingConstants.RIGHT);
speedLabel.setBounds(191, 221, 110, 36);
upgradeCard.add(speedLabel);
JProgressBar maxSpeedBar = new JProgressBar();
maxSpeedBar.setValue(0);
maxSpeedBar.setBounds(327, 221, 185, 36);
upgradeCard.add(maxSpeedBar);
plusSpeedButton.setBounds(522, 224, 41, 30);
upgradeCard.add(plusSpeedButton);
//damageBar
damageLabel.setHorizontalAlignment(SwingConstants.RIGHT);
damageLabel.setBounds(191, 268, 110, 36);
upgradeCard.add(damageLabel);
JProgressBar damageBar = new JProgressBar();
damageBar.setValue(0);
damageBar.setBounds(327, 268, 185, 36);
upgradeCard.add(damageBar);
plusDamageButton.setBounds(522, 271, 41, 30);
upgradeCard.add(plusDamageButton);
levelAuswählenButton.setBounds(395, 361, 168, 30);
upgradeCard.add(levelAuswählenButton);
upgradeZurückButton.setBounds(254, 361, 131, 30);
upgradeCard.add(upgradeZurückButton);
upgradeCardBackgroundImage.setBounds(0, 0, 801, 523);
upgradeCardBackgroundImage.setIcon(new ImageIcon(backgroundPath));
upgradeCard.add(upgradeCardBackgroundImage);
cards.add(upgradeCard, "upgradeCard");
/*
* levelAuswahlCard
*/
levelAuswahlCard.setLayout(null);
level1Button.setBounds(67, 159, 171, 170);
EpixController.getInstance().checkLevelSaved(user, level1Button);
levelAuswahlCard.add(level1Button);
level2Button.setBounds(308, 159, 171, 170);
EpixController.getInstance().checkLevelSaved(user, level2Button);
levelAuswahlCard.add(level2Button);
bossLevelButton.setBounds(550, 159, 171, 170);
EpixController.getInstance().checkLevelSaved(user, bossLevelButton);
levelAuswahlCard.add(bossLevelButton);
levelZurückBtton.setBounds(334, 378, 121, 28);
levelAuswahlCard.add(levelZurückBtton);
levelAuswahlCardCoinImage.setBounds(0, 10, 64, 64);
levelAuswahlCardCoinImage.setIcon(new ImageIcon(coinSpinPath));
levelAuswahlCard.add(levelAuswahlCardCoinImage);
levelAuswahlCardCoinLabel = new JLabel("" + getUser().getCoin());
levelAuswahlCardCoinLabel.setBounds(67, 10, 56, 64);
levelAuswahlCardCoinLabel.setFont(new Font("Modern No. 20", Font.PLAIN, 26));
levelAuswahlCard.add(levelAuswahlCardCoinLabel);
levelAuswahlCardPlayerLabel = new JLabel("Willkommen zurück, " + getUser().getUsername());
levelAuswahlCardPlayerLabel.setBounds(598, 18, 239, 36);
levelAuswahlCard.add(levelAuswahlCardPlayerLabel);
levelAuswahlCardBackgroundImage.setIcon(new ImageIcon(backgroundPath));
levelAuswahlCardBackgroundImage.setBounds(0, 0, 801, 523);
levelAuswahlCard.add(levelAuswahlCardBackgroundImage);
cards.add(levelAuswahlCard, "levelAuswahlCard");
/*
* Listener
*/
//menuCard
spielenButton.addActionListener(new MenuCardButtonListener(cards));
//upgradeCard
upgradeZurückButton.addActionListener(new UpgradeCardButtonListener(cards));
levelAuswählenButton.addActionListener(new UpgradeCardButtonListener(cards));
//levelAuswahlCard
levelZurückBtton.addActionListener(new LevelAuswahlCardButtonListener(cards, getUser(), epix));
level1Button.addActionListener(new LevelAuswahlCardButtonListener(cards, getUser(), epix));
level2Button.addActionListener(new LevelAuswahlCardButtonListener(cards, getUser(), epix));
bossLevelButton.addActionListener(new LevelAuswahlCardButtonListener(cards, getUser(), epix));
epix.setContentPane(cards);
epix.setVisible(true);
}
Können Sie einen Teil Ihres Codes veröffentlichen, um ihn anzuzeigen. Dies hilft viel – user2891133
getan @ user2891133 –
Post Rest der Klasse bitte :) Zumindest können wir sehen, wo die JLabel und wo es hinzugefügt. – user2891133