Raspberry PI에서 실행되는 Swing GUI 테스트를 시도합니다. 내 목표는 1 초마다 시스템 시간을 표시하는 것입니다. 모든 "cycleTime"초마다 "planValue"가 업데이트됩니다. 데스크톱에서 테스트하면 정상입니다. RaspPI를 실행할 때 "planValue"를 업데이트하거나 새로운 Dialog를 팝업 할 때 매우 느리고 시간이 지연됩니다. 나는 새로운 타이머 planTimer타이머와 성능 사이에 성능 차이가 있습니까?
Timer planTimer = new Timer(cycleTime * 1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
planValue += 1;
}
});
planTimer.start(); //Timer updPlan start
만들거나 actionPerformed(ActionEvent e)
@Override
public void actionPerformed(ActionEvent e) {
showDisplay();
if(counter == cycleTime) {
planValue += 1;
counter = 1;
} else {
counter++;
}
}
}
어떤 제안에 루프를 사용하는 경우
이 MainScreen 클래스
public class MainScreen extends javax.swing.JFrame implements ActionListener {
private javax.swing.JLabel jLabelPlan;
private javax.swing.JLabel jLabelSysTime;
int planValue;
int cycleTime = 5; //5 seconds
int counter = 1;
public MainScreen() {
initComponents();
//start timer.
javax.swing.Timer timer = new javax.swing.Timer(1000,this);
timer.start();
}
@Override
public void actionPerformed(ActionEvent e) {
showDisplay();
}
public void showDisplay() {
DateFormat formatTime = new SimpleDateFormat("HH:mm:ss");
jLabelSysTime.setText(formatTime.format(Calendar.getInstance().getTime()));
jLabelPlan.setText(String.valueOf(planValue));
}
}
은? 또는 Raspberri PI에서 내 GUI를 실행하기위한 최상의 솔루션입니다. 감사.
는'javax.swing.Timer' 당신이 찾고 무엇에 충분하다. 'javax.swing.SwingWorker'도 참조하십시오. 루프를 사용하지 마십시오. 그 대신 매 타이머를'1' 초마다 발사하도록하십시오. –
'showDisplay'는'repaint (10L);'에서 끝나야 할 수도 있습니다. –