надо сделать анимацию из кнопок
1.как реализовать периодическую смену цвета кнопки
2.пока работает цикл паралельно слушать кнопку "Stop" и при нажатии ставить цикл на паузу
код
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class testV extends JFrame{
JPanel windowContent= new JPanel();
Panel centerPanel=new Panel();
JButton squares[][];
Button newGameButton;
Label scored;
int turn=0;String trn=Integer.toString(turn);
Color clearCell=new Color(212, 208, 200);
public testV() {
windowContent.setLayout(new BorderLayout());
newGameButton=new Button("Stop");
newGameButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(newGameButton.getLabel()=="Stop") {
//здесь ставить цикл на паузу
newGameButton.setLabel("Play");
}
else if(newGameButton.getLabel()=="Play") {
//здесь снимать с паузы
newGameButton.setLabel("Stop");
}
}
});
Panel topPanel=new Panel(new BorderLayout());
topPanel.add(newGameButton,"South");
windowContent.add(topPanel,"South");
scored=new Label(trn);
topPanel.add(scored,"North");
centerPanel.setLayout(new GridLayout(5,5));
windowContent.add(centerPanel,"Center");
squares=new JButton[5][5];
for(int i=0;i<squares.length;i++){
for (int j = 0; j < squares[i].length; j++){
squares[i][j]=new JButton();
squares[i][j].setBorderPainted(false);
squares[i][j].setBackground(Color.BLACK);
centerPanel.add(squares[i][j]);
}
}
if(turn<10)
M1();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(500, 500));
setContentPane(windowContent);
pack();
setVisible(true);
}//public Logo()
void M1() {//тут мы должны последовательно менять цвет
slp();
st();
squares[2][2].setBackground(clearCell);
slp();
st();
squares[2][2].setBackground(Color.BLACK);
}
void slp() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {e.printStackTrace();
Thread.currentThread().interrupt();}
}
void st(){
turn=turn+1;
trn=Integer.toString(turn);
scored.setText(trn);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new testV();
}
});
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости