1

为了避免设置为可见后的任何闪烁,我已经这样做了-但我仍然看到一些(树:-> -> )旧文本JWindow几毫秒,然后文本更改为新值(必须在之前完成是设置为可见):JLabelJWindowJPanelJLabelJWindow

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();
        } 
    }
}

也许我也应该验证或用 s 做点什么JLabel

4

1 回答 1

0

试试看: jLabel.setText("new text") 在使对话框可见之前(SomeJWindow.setVisible(true);)。

无论如何,似乎没有必要使用 SwingWorker。我不会覆盖setVisible(boolean visible).

只需在调用之前在标签上设置文本someExtendedJWindow .setVisible(true)

于 2015-06-25T08:49:15.037 回答