2017-08-12 2 views
0

sera heureux si vous pouvez m'aider. De droit j'ai 2 classes. Le premier est la classe UI (GameJPanel) où j'ai déclaré tous mes boutons privés etc .. La deuxième classe est gameEngine (GameMechanismPlayer) qui génère des valeurs à définir sur le JButton "textFields". La valeur générée par gameEngine est Integers. J'essaie de, à partir de la deuxième classe, changer le texte du bouton, mais je reçois erreur. Je crois que je devrais utiliser des getters et setters de la classe d'interface utilisateur. Pouvez-vous s'il vous plaît m'aider ..Changer le texte JButton d'une autre classe avec une valeur de Int

public class GameJPanel extends JPanel 
{ 
    private static final long serialVersionUID = 1L; 
    private JToggleButton die1, 
    private JButton rollDice; 

    public GameJPanel() 
    { 
     //Dice Toggle Buttons  
     die1 = new JToggleButton("Die 1"); 
     die1.setBounds(300,350,70,25); 
     add(die1); 
     //Roll Dice 
     rollDice = new JButton("Roll Dice"); 
     rollDice.setBounds(400,400,270,50); 
     add(rollDice); 

     rollDice.addActionListener(new ActionListener() 
     { 
      public void actionPerformed(ActionEvent e) 
      { 
       playGame.play(); 
      }  
     }); 
     setVisible(true); 
     setLayout(null); 
     } 

    public JToggleButton getDie1() 
    { 
     return die1; 
    } 

    public void setDie1(JToggleButton die1) 
    { 
     this.die1 = die1; 
    } 
} 


public class GameMechanismPlayer 
{ 
    private int[] randomDiceArrayNumber; 
    private int dieIndexPosition; 
    private Random randomDice; 
    private boolean isPlayerOneTurn = true; 
    GameJPanel uI = new GameJPanel(); 

    public GameMechanismPlayer() 
    { 
     play();  
    } 

    public void play() 
    { 

     for(turn = 0 ; turn <= 3 || scoreSelected == true; turn++) 
     { 
      randomDice = new Random(); 
      randomDiceArrayNumber = new int [5]; 

      for(dieIndexPosition = 0; dieIndexPosition < randomDiceArrayNumber.length; dieIndexPosition++) 
      { 
       randomDiceArrayNumber[dieIndexPosition] = 1+randomDice.nextInt(6); 
      } 
      sumsMutipleByItsOwnNumber(); 

      if(isPlayerOneTurn = true) 
      { 
       //Here it is not working 
       uI.setDie1(String.valueof(randomDiceArrayNumber[0])) 
      } 
     } 
    } 
} 

Répondre

0

Types incompatibles!

  1. Votre définition:

    // this expects an argument of type JToggleButton 
    public void setDie1(JToggleButton die1) { 
        this.die1 = die1; 
    } 
    
  2. Votre déclaration d'appel:

    uI.setDie1(String.valueof(randomDiceArrayNumber[0])); // this is trying to pass a String to the method setDie1 
    
  3. Au lieu de cela, quelque chose comme ceci (juste corriger la syntaxe) devrait fonctionner:

    uI.setDie1(new JToggleButton(String.valueof(randomDiceArrayNumber[0])));