package myPackage;
import java.applet.Applet;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.*;
import java.awt.Color;
import java.awt.Font;
import java.util.Random;
public class Colorgame extends Applet implements Runnable , ActionListener{
boolean starter = true;
public void init(){
this.setSize(800, 650);
this.setLayout(null);
this.setBackground(Color.pink);
myFont = new Font("Times New Roman",Font.BOLD,20);
new Thread(this).start();
//button
start = new Button("Start");
start.setBounds(370, 610, 50, 30);
start.addActionListener(this);
add(start);
}
public void run(){
while(starter){
try{
ranColor = rand.nextInt(6);
switch (ranColor) {
case 0:
dieColor = Color.red;
Thread.sleep(100);
repaint();
break;
case 1:
dieColor = Color.blue;
Thread.sleep(100);
repaint();
break;
case 2:
dieColor = Color.green;
Thread.sleep(100);
repaint();
break;
case 3:
dieColor = Color.yellow;
Thread.sleep(100);
repaint();
break;
case 4:
dieColor = Color.orange;
Thread.sleep(100);
repaint();
break;
case 5:
dieColor = Color.magenta;
Thread.sleep(100);
repaint();
break;
default:
break;
}
}catch(Exception e){
}
}
}
public void paint(Graphics g){
g.setColor(dieColor);
g.fillRect(355, 90, 80, 80); //colour die
}
и эта кнопка запускает/останавливает случайные изменения цветовой матрице, но когда я нажал на кнопку булево starter
становится «ложным», но в методе Run() он никогда не изменяетЯ создаю цветную игру, как я могу обновить переменную в методе run()?
public void actionPerformed(ActionEvent e) {
if(e.getSource() == start){
if(starter == true){
starter = false;
start.setLabel("Stop");
}
else if(starter == false){
starter = true;
start.setLabel("Start");
}
}
Я знаю, что вы могли бы подумать, что это не связано, но это: Пожалуйста, попробуйте использовать код форматирования, чтобы организовать свой код. Код станет намного читабельнее. Большинство современных редакторов Java могут автоматически применять стиль кода для вас. Когда код становится более читаемым, у вас есть больше шансов найти разделы проблемных кодов. – brimborium
Извините, сэр. Я здесь новый, поэтому я пытаюсь справиться. Кстати, спасибо за совет –
Не волнуйся. Это была не жалоба, а совет для вашего программирования. Лучше начинать как можно раньше с организации кода. Это также увеличивает скорость обучения. Читаемость (а иногда и ремонтопригодность) важнее, чем думают многие. ;) – brimborium