Java 2秒后的第二个线程
我的函数绘制三个随机数,并根据此数为JLabel设置适当的图标(一、二、三)。我需要在2秒钟后更改此图标Java 2秒后的第二个线程,java,multithreading,random,jlabel,Java,Multithreading,Random,Jlabel,我的函数绘制三个随机数,并根据此数为JLabel设置适当的图标(一、二、三)。我需要在2秒钟后更改此图标 public void random() { Random rand = new Random(); num1 = rand.nextInt(3); num2 = rand.nextInt(3); num3 = rand.nextInt(3); if (num1==0){ one.setIcon(icon7);
public void random() {
Random rand = new Random();
num1 = rand.nextInt(3);
num2 = rand.nextInt(3);
num3 = rand.nextInt(3);
if (num1==0){
one.setIcon(icon7);
}
if (num1==1){
one.setIcon(icon8);
}
if (num1==2){
one.setIcon(icon9);
}
if (num2==0){
two.setIcon(icon7);
}
if (num2==1){
two.setIcon(icon8);
}
if (num2==2){
two.setIcon(icon9);
}
if (num3==0){
three.setIcon(icon7);
}
if (num3==1){
three.setIcon(icon8);
}
if (num3==2){
three.setIcon(icon9);
}}
2秒钟后,我想更改如下图标:
one.setIcon(icon10);
two.setIcon(icon10);
three.setIcon(icon10);
我不知道,怎么做,请帮帮我:)
此代码每2秒调用一次setIcon函数,但如果只想调用一两次,可以将条件置于actionPerformed函数下。。。希望它对你有帮助
此代码每2秒调用一次setIcon函数,但如果只想调用一两次,可以将条件置于actionPerformed函数下。。。希望它对你有帮助
此代码每2秒调用一次setIcon函数,但如果只想调用一两次,可以将条件置于actionPerformed函数下。。。希望它对你有帮助
此代码每2秒调用一次setIcon函数,但如果只想调用一两次,可以将条件置于actionPerformed函数下。。。希望它对你有帮助 我会先更改一下您的代码:
private static final Random rand = new Random();
//somewhere on init.
final JLabel[] myLabels = new JLabel[3];
for(int i = 0; i < myLabels.length; ++i) {
myLabels[i] = new JLabel();
//add to panel or whatever.
}
private void setIcon(final int value, final JLabel label) {
switch(value) {
case 0:
label.setIcon(icon7);
break;
case 1:
label.setIcon(icon8);
break;
case 2:
label.setIcon(icon9);
break;
default:
throw new IllegalArgumentException("Value must be between 0 and 2.");
}
}
public void random() {
for(int i = 0; i < myLabels.length; ++i) {
setLabel(rand.nextInt(3), myLabels[i]);
}
scheduleReset();
}
我会先更改一下您的代码:
private static final Random rand = new Random();
//somewhere on init.
final JLabel[] myLabels = new JLabel[3];
for(int i = 0; i < myLabels.length; ++i) {
myLabels[i] = new JLabel();
//add to panel or whatever.
}
private void setIcon(final int value, final JLabel label) {
switch(value) {
case 0:
label.setIcon(icon7);
break;
case 1:
label.setIcon(icon8);
break;
case 2:
label.setIcon(icon9);
break;
default:
throw new IllegalArgumentException("Value must be between 0 and 2.");
}
}
public void random() {
for(int i = 0; i < myLabels.length; ++i) {
setLabel(rand.nextInt(3), myLabels[i]);
}
scheduleReset();
}
我会先更改一下您的代码:
private static final Random rand = new Random();
//somewhere on init.
final JLabel[] myLabels = new JLabel[3];
for(int i = 0; i < myLabels.length; ++i) {
myLabels[i] = new JLabel();
//add to panel or whatever.
}
private void setIcon(final int value, final JLabel label) {
switch(value) {
case 0:
label.setIcon(icon7);
break;
case 1:
label.setIcon(icon8);
break;
case 2:
label.setIcon(icon9);
break;
default:
throw new IllegalArgumentException("Value must be between 0 and 2.");
}
}
public void random() {
for(int i = 0; i < myLabels.length; ++i) {
setLabel(rand.nextInt(3), myLabels[i]);
}
scheduleReset();
}
我会先更改一下您的代码:
private static final Random rand = new Random();
//somewhere on init.
final JLabel[] myLabels = new JLabel[3];
for(int i = 0; i < myLabels.length; ++i) {
myLabels[i] = new JLabel();
//add to panel or whatever.
}
private void setIcon(final int value, final JLabel label) {
switch(value) {
case 0:
label.setIcon(icon7);
break;
case 1:
label.setIcon(icon8);
break;
case 2:
label.setIcon(icon9);
break;
default:
throw new IllegalArgumentException("Value must be between 0 and 2.");
}
}
public void random() {
for(int i = 0; i < myLabels.length; ++i) {
setLabel(rand.nextInt(3), myLabels[i]);
}
scheduleReset();
}
如果您想在设置时只调用一次,请说
timer.setRepeats(false)代码>在创建后立即调用。如果您想在设置时调用一次,请说timer.setRepeats(false)代码>在创建后立即调用。如果您想在设置时调用一次,请说timer.setRepeats(false)代码>在创建后立即调用。如果您想在设置时调用一次,请说timer.setRepeats(false)代码>在其创建之后。