2015-05-08 27 views
5

İstatistiklerinizi bir mağazada yükseltebileceğiniz bir oyun üzerinde çalışıyorum. Bir şey satın aldığınızda, para biriminizi gösteren JLabel'ı yenilemeniz gerekir. Bu, JLrame'i yapmadan yapmanın bir yolu var mı? refresh JFrame Java yeni JFrame yapmadan 0 JFrame

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(); 
    } 

Bu

İşte

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); 

    } 
+0

Kodunuzun bir kısmını gösterilecek şekilde gönderir misiniz? Bu, – user2891133

+2

'un tamamının yapılmasına yardımcı olur. @ User2891133 –

+0

Sınıfın geri kalanı lütfen lütfen :) En azından JLabel'in nerede ve nerede eklendiğini görebiliriz. – user2891133

cevap

2

yenilemediğinizden gerekmez View kod ben JFrame Epix

yenilemek isteyen ActionListener arasında kodudur Çerçeve veya JPanel. Actionlistener'da, CardLayout 'yükseltme kartlarını' levelauswahllistener'de yaptığınız gibi göstermeniz gerekir. O zaman yenilemelidir.

2
menuCardPlayerLabel.setText(yourVariable); 
+2

zaten bunu denedim ... –

+0

de onu yenilemedim –

+3

ok. Sorunuzu düzenlerseniz ve bunu çalışan bir örnek yaparsanız, deneyebiliriz. – user2891133

İlgili konular