gpt4 book ai didi

java - 如何让我的按钮切换而不循环?

转载 作者:行者123 更新时间:2023-11-30 07:49:28 26 4
gpt4 key购买 nike

我想知道如何在我从不同类(class)调用的类(class)中切换我的按钮。但它进去后只更改了按钮一次,仅此而已。

package code;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;


public class Something implements ActionListener {

private Game G;
private int random;
private JButton a;
private JButton b;
private JButton c;
private Font i;

public Something(Game g, int rand, JButton d, JButton e, JButton f, Font h) {
G = g;
random = rand;
a = d;
b = e;
c = f;
i = h;
}

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
G.increment();
if (random == 0) {
a.setText("A");
a.setEnabled(true);
b.setEnabled(false);
c.setEnabled(false);
SuperSize(a);
SmallerSize(b);
SmallerSize(c);
random = RandomNum();
;
} else if (random == 1) {
b.setText("B");
a.setEnabled(false);
b.setEnabled(true);
c.setEnabled(false);
SuperSize(b);
SmallerSize(a);
SmallerSize(c);
random = RandomNum();
} else if (random == 2) {
c.setText("C");
a.setEnabled(false);
b.setEnabled(false);
c.setEnabled(true);
SuperSize(c);
SmallerSize(a);
SmallerSize(b);
random = RandomNum();
}
}

public int RandomNum() {
Random r = new Random();
int rand = 0;
rand = r.nextInt(3);
return rand;
}

public void SuperSize(JButton a) {
Font myFont = i.deriveFont(Font.BOLD, i.getSize() * 4);
a.setFont(myFont);
}

public void SmallerSize(JButton a) {
a.setFont(i);
}
}

}

我不知道该怎么办,你们能帮我吗?

最佳答案

不要每次调用 RandomNum 时都创建一个新的 Random 实例,而是在构造函数中创建一个实例并继续重复使用它。

public class Something implements ActionListener {

//...

private Random rnd;

public Something(Game g, int rand, JButton d, JButton e, JButton f, Font h) {
//...
rnd = new Random();
}

public int RandomNum() {
return rnd.nextInt(3);
}

关于java - 如何让我的按钮切换而不循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33471033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com