我有一個動態設置Jtogglebutton的背景顏色的問題。我想讓Jtoggle按鈕像指示燈一樣閃爍,並在特定時間開啓和關閉,如500毫秒。我試圖重寫paint和paintComponent方法。但也不能成功。我卡住了。這是我的代碼,感謝您的幫助。Jtogglebutton動態設置背景
領導類:
public class Led extends JToggleButton {
private Color okColor = Color.GREEN;
private Color notOkColor = Color.RED;
private static int BLINK_FREQUENCY=500;
public Led() {
this.setPreferredSize(new Dimension(50, 50));
timer.start();
}
Timer timer=new Timer(BLINK_FREQUENCY, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setBackground(okColor);
System.out.println("ok");
try {
Thread.sleep(BLINK_FREQUENCY);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
setBackground(notOkColor);
System.out.println("notok");
}
});
}
大型機級:
public class MainFrame {
private JFrame frame;
private Led led;
private JPanel panel;
public MainFrame() {
initializeComponents();
}
private void initializeComponents() {
frame = new JFrame("Blinking Led");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
{
panel = new JPanel();
led = new Led();
panel.add(led);
frame.add(panel);
}
}
public void setVisible(boolean visible) {
frame.setVisible(visible);
}
}
1)爲了更好地幫助更快,發佈[MCVE]或[短的,獨立的,正確的示例](http://www.sscce.org/)。 2)請參閱[檢測/修復代碼塊的懸掛緊密支架](http://meta.stackexchange.com/q/251795/155831),以解決問題,我不再擔心修復問題。 –
我不確定我是否理解,您希望顏色每隔500毫秒切換一次,或者您希望按鈕的狀態切換,然後觸發顏色切換? –
我想每隔500ms切換一次按鈕的顏色。國家並不重要。 –