Java-单击按钮时更改标签文本

Java-单击按钮时更改标签文本,java,swing,random,jbutton,jlabel,Java,Swing,Random,Jbutton,Jlabel,我有个无法解决的问题 我想要这个: 当我打开gui时,我会显示一个随机数和一个按钮,上面写着“更改编号” 然后,当点击按钮时,我希望前一个随机数变成另一个随机数,依此类推 这是我的代码: public class RandomDisplayPanel extends JPanel { public RandomDisplayPanel() { JPanel panel = new JPanel(); add(panel); JPanel inside =

我有个无法解决的问题

我想要这个:

当我打开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;
        }

    }
}
我该怎么做?提前感谢:)

添加
numero.setText(num+“”)在您的侦听器中


编辑:将
JLabel numero
声明为类变量,它将起作用。

您需要在ActionPreformed方法中有效地调用numero.setText(num)。我建议可能添加一个类似于此的检查声明

if(e.getSource() == sendButton) {
    numero.setText(num);
}
我看到的另一个问题是,您可能无法知道numero或sendButton的值。您可以在主类中将它们作为公共变量,也可以将它们作为参数传递。

您可以将(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));
    }
}

希望这有帮助

要获取随机数,可以使用
Math.random()并将其与10相乘,例如加1。(那么它介于1和10之间)
要设置按钮文本,请使用

Button myButton=(Button)this.findViewById(R.id.yourButtonsID);
    myButton.setText(yourRandomNumber);

我已经有一段时间没有做GUI了,但我认为您只需要添加
numero.setText(num)在按钮中单击部分aaah我看到了。没有notice@MuratK. 它不会,因为它不是一个实例变量。