diff --git a/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java b/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java
index 10ece3d3ab..44e697d043 100644
--- a/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java
+++ b/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java
@@ -21,8 +21,8 @@ import java.awt.Frame;
/**
* 加载进度弹窗
* 使用注意点:
- * 1-需要等到 父frame 启动好之后,才能启动进度条。
- * 2-或者到使用时再初始化,不要作为属性存在
+ * 必须到使用时再初始化,不要作为属性存在
+ * 因为涉及到 大小/位置 相对于 parent 的相对判断
* 见 {@link com.fr.design.gui.iprogressbar.ProgressDialogTest}
*/
public class ProgressDialog extends UIDialog {
diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java
index 8905d6004c..6c2f4ba91f 100644
--- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java
+++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java
@@ -81,8 +81,6 @@ public class StartupPageWindow extends JFrame {
private JPanel body;
- private StartupLoadingPanel loadingPanel;
-
public StartupPageWindow(StartupPageModel pageModel) {
patchUIAction(pageModel);
@@ -102,9 +100,6 @@ public class StartupPageWindow extends JFrame {
setFullScreen();
- // 必须放最后
- // 见 https://work.fineres.com/browse/REPORT-85293
- loadingPanel = new StartupLoadingPanel(this);
}
private void initCenter(StartupPageModel pageModel) {
@@ -232,45 +227,49 @@ public class StartupPageWindow extends JFrame {
private void enterWorkspace(Runnable action) {
UIUtil.invokeAndWaitIfNeeded(() -> {
+
+ // 必须直接初始化
+ // 见 https://work.fineres.com/browse/REPORT-85293
+ StartupLoadingPanel loadingPanel = new StartupLoadingPanel(this);
loadingPanel.show();
setEnabled(false);
- });
-
- SwingWorker task = new SwingWorker() {
- @Override
- protected Void doInBackground() throws Exception {
- action.run();
- return null;
- }
- @Override
- protected void done() {
-
- try {
- Void result = get();
- setVisible(false);
- } catch (Exception e) {
- // 处理错误
- UIUtil.invokeLaterIfNeeded(() -> {
- UIExpandDialog.Builder()
- .owner(StartupPageWindow.this)
- .title(Toolkit.i18nText("Fine-Design_Basic_Remote_Env_Try"))
- .message(Toolkit.i18nText("Fine-Design_Basic_Connection_Failed"))
- .messageType(UIExpandDialog.WARNING_MESSAGE)
- .detail(e.getMessage())
- .expand(true)
- .modal(false)
- .build()
- .setVisible(true);
- setEnabled(true);
- });
- FineLoggerFactory.getLogger().error(e.getMessage(), e);
- } finally {
- loadingPanel.hide();
+ SwingWorker task = new SwingWorker() {
+ @Override
+ protected Void doInBackground() throws Exception {
+ action.run();
+ return null;
}
- }
- };
- task.execute();
+
+ @Override
+ protected void done() {
+
+ try {
+ Void result = get();
+ setVisible(false);
+ } catch (Exception e) {
+ // 处理错误
+ UIUtil.invokeLaterIfNeeded(() -> {
+ UIExpandDialog.Builder()
+ .owner(StartupPageWindow.this)
+ .title(Toolkit.i18nText("Fine-Design_Basic_Remote_Env_Try"))
+ .message(Toolkit.i18nText("Fine-Design_Basic_Connection_Failed"))
+ .messageType(UIExpandDialog.WARNING_MESSAGE)
+ .detail(e.getMessage())
+ .expand(true)
+ .modal(false)
+ .build()
+ .setVisible(true);
+ setEnabled(true);
+ });
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ } finally {
+ loadingPanel.hide();
+ }
+ }
+ };
+ task.execute();
+ });
}
private JPanel generateRecentOpenPanel(StartupPageModel pageModel) {