Jtogglebutton의 배경색을 동적으로 설정하는 데 문제가 있습니다. Jtogglebutton이 500ms와 같은 결정적인 시간에 켜고 끄는 것처럼 깜박 거리고 싶습니다. 나는 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);
}
} 내가 Timer 클래스를 사용하여 지점이 표시되지 않는
1) 빨리 더 도움 들어, [MCVE] 또는 게시 [포함 된 짧은, 자기를 올바른 예 (http://www.sscce.org/). 2) 더 이상 고칠 수없는 문제에 대해서는 [코드 블록의 걸쇠 대괄호 탐지/수정] (http://meta.stackexchange.com/q/251795/155831)을 참조하십시오. –
잘 모르겠다. 색상을 500ms마다 전환하고 싶거나 단추의 상태를 전환 한 다음 색상 전환을 실행하고 싶습니까? –
버튼의 색을 500ms마다 전환하고 싶습니다. 국가는 중요하지 않습니다. –