필자는 생각했던 것처럼 업데이트/다시 그리기를하지 않는 Java Swing UI가 있습니다. 앱이 XMPP 메시지를 보내고 다른 스레드에서 응답을받습니다. 해당 응답이 처리되고 메시지에 포함 된 정보를 반영하도록 UI가 업데이트됩니다. 응답이 수신 invokeLater를 사용한 후에 스윙 UI가 업데이트되지 않습니다.
, 나는javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() { /* execute logic to update panel */ }
});
이 상당히 언젠가 내가 자바로 개발,하지만 내 연구 온라인 invokeLater을 기반으로 한 이래로상의 실행을 위해 실행 가능한을 큐에있어 사용하여 JPanel의 구성 요소를 업데이트 GUI 스레드. 그러나 창 크기를 조정하는 등 다시 칠하는 응용 프로그램에서 다른 작업을 수행 할 때까지 내 GUI가 업데이트되지 않습니다. 내가 뭘 놓치고 있니? 패널을 업데이트하는 로직을 수행 한 후에 invalidate() 및 repaint()의 다양한 조합을 시도했지만 여전히 결과는 동일합니다. 즉, 창 크기를 조정할 때까지 GUI가 업데이트되지 않습니다.
편집 : 내가 패널을 업데이트한다고 할 때, 나는 구체적으로 removeAll()을 수행하고 몇 개의 JLabel을 추가하고 있습니다.
수천 번 업데이트하고 싶습니다. – JCasso