2015-11-09 7 views
1

У меня есть проблема, которую я не могу решить.Java - изменить текст ярлыка при нажатии кнопки

Я хочу это:

Когда я открыть графический интерфейс, я покажу случайное число и кнопку с надписью «номер изменения».

Затем, когда нажата кнопка, я хочу, чтобы предыдущее случайное число менялось на другое случайное число и так далее.

Это мой код:

public class RandomDisplayPanel extends JPanel { 




    public RandomDisplayPanel() { 

    JPanel panel = new JPanel(); 
    add(panel); 
    JPanel inside = new JPanel(); 
    panel.setBackground(Color.yellow); 


    JButton sendButton = new JButton("Send"); 

    Random generator = new Random(); 
    int num; 
    num = generator.nextInt(100) +1; 
    JLabel numero = new JLabel("" + num); 


    inside.add(numero); 
    inside.add(sendButton); 
    panel.add(inside); 


    sendButton.addActionListener(new RandomDisplayPanel.RandomListener()); 
} 

private class RandomListener implements ActionListener { 


     @Override 
     public void actionPerformed(ActionEvent e) { 

      Random generator = new Random(); 

      int num; 
      num = generator.nextInt(100) +1; 
     } 

    } 
} 

Как я могу это сделать? заранее спасибо :)

+0

я нету GUI в Выполненные некоторое время, но я думаю, что вам просто нужно добавить 'numero.setText (NUM),' в кнопку мыши раздел –

ответ

0

Добавить numero.setText(num + ""); внутри вашего слушателя.

EDIT: Объявите JLabel numero как переменную класса, и она будет работать.

+2

Я думаю, что numero не будет известно внутри слушателя ... – ParkerHalo

+0

aaah Я вижу. не заметил –

+1

@MuratK. Это не будет, поскольку это не переменная экземпляра. – BackSlash

0

Вам необходимо эффективно вызвать numero.setText (num) внутри вашего метода ActionPreformed. Я рекомендовал бы, возможно добавление проверки заявление, похожее на это ..

if(e.getSource() == sendButton) { 
    numero.setText(num); 
} 

Существует еще одна проблема, которую я вижу, в том, что вы не могли бы знать значения Numero или послать Отправить. Небрежно вы можете сделать их общедоступными переменными в своем основном классе, или вы можете передать их в качестве параметров.

2

Вы можете передать (JLabel) число слушателю следующим образом:

sendButton.addActionListener(new RandomDisplayPanel.RandomListener(number)); 

private class RandomListener implements ActionListener { 
    private JLabel target; 
    public RandomListener(JLabel target) { 
     this.target = target;  
    } 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     Random generator = new Random(); 

     int num; 
     num = generator.nextInt(100) +1; 
     this.target.setText(String.valueOf(num)); 
    } 
} 

Надеюсь, что это помогает!

0

Чтобы получить случайное число, вы можете использовать Math.random(); и умножить его на 10 и добавить 1, например. (Тогда между 1 и 10) Чтобы установить, то текст кнопки используйте

Button myButton=(Button)this.findViewById(R.id.yourButtonsID); 
    myButton.setText(yourRandomNumber); 
Смежные вопросы