그래서 순서대로 회전해야하는 다른 색상의 일곱 패널이 있습니다. 내 코드는 대부분 잘 작동하지만 첫 번째 패널과 마지막 패널은 항상 같은 색상을 사용합니다. 이 문제를 어떻게 해결할 수 있습니까?JPanel이 올바른 순환 순서로 색상을 변경하도록하려면 어떻게해야합니까?
각 패널의 색상이 시작될 때마다 다른지 확인했습니다.
코드 : (변경 전)
public void run()
{
TimerTask colorAction = new TimerTask(){
public void run()
{
redPanel.setBackground(orangePanel.getBackground());
orangePanel.setBackground(yellowPanel.getBackground());
yellowPanel.setBackground(greenPanel.getBackground());
greenPanel.setBackground(bluePanel.getBackground());
bluePanel.setBackground(indigoPanel.getBackground());
indigoPanel.setBackground(violetPanel.getBackground());
violetPanel.setBackground(redPanel.getBackground());
}
};
java.util.Timer utilTimer = new java.util.Timer();
utilTimer.scheduleAtFixedRate(colorAction, START_AFTER, DELAY);
}
스냅 샷 :
스냅 샷 (변경 후)
자, 먼저 java.util.Timer를 사용하지 말고'javax.swing.Timer'를 사용하십시오! – MadProgrammer
@MadProgrammer 우리가 java.util.Timer를 사용한다는 것을 강조하는 과제입니다.하지만 조언을 구할 것입니다. – user2840682
다음은 스윙의 단일 스레드 요구 사항을 위반하므로 할당이 잘못되었습니다. – MadProgrammer