To avoid any flickers after JWindow
is set to visible I've done it this way - but still I see for a few milliseconds some JLabel
(tree: JWindow
-> JPanel
-> JLabel
) old text, then text changes to new value (it must be done before JWindow
is set to visible):
public SomeExtendedJWindow extends SomeJWindow {
@Override
public void setVisible(boolean visible) {
if (visible) {
class doGraphics extends SwingWorker<Void, Object> {
@Override
public Void doInBackground() {
validate();
pack();
return null;
}
@Override
protected void done() {
SomeJWindow.super.setVisible(true);
}
}
(new doGraphics()).execute();
}
}
}
Maybe I should validate or do something with JLabel
s also?