[英]Java - Change label text when button is clicked
我有一個我無法解決的問題。
我要這個:
當我打開GUI時,我將顯示一個隨機數字和一個顯示“更改數字”的按鈕。
然后,當單擊按鈕時,我希望先前的隨機數變為另一個隨機數,依此類推。
這是我的代碼:
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;
}
}
}
我怎樣才能做到這一點? 先感謝您 :)
您可以將(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));
}
}
希望這可以幫助!
添加numero.setText(num + "");
在您的聽眾里面。
編輯:將JLabel numero
聲明為類變量,它將起作用。
您需要在ActionPreformed方法內部有效地調用numero.setText(num)。 我建議也許添加一條與此類似的檢查語句。
if(e.getSource() == sendButton) {
numero.setText(num);
}
我看到的另一個問題是,您可能無法知道numero或sendButton的值。 隨便可以在主類中將它們設為公共變量,也可以將它們作為參數傳遞。
要獲得隨機數,可以使用Math.random();
並乘以10,然后加1。 (然后在1到10之間)。要設置按鈕文字,請使用
Button myButton=(Button)this.findViewById(R.id.yourButtonsID);
myButton.setText(yourRandomNumber);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.