gpt4 book ai didi

Java C/S 应用程序预加载器(如 Ajax)

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:15 28 4
gpt4 key购买 nike

我想在 Java 桌面应用程序(我使用 Swing)中实现“等待”预加载消息,就像 Ajax/Flash 开发人员在 Web 应用程序中使用的预加载器一样。

我的应用程序使用客户端/服务器架构,由于服务器的响应时间,从一个窗口移动到另一个窗口时可能会出现一些延迟,但是在加载所有内容之前用户不应该能够执行任何操作

执行此操作的最佳做​​法是什么? 我有两个想法,但我认为应该有更好的方法来处理这个问题:

1 个想法)阻止事件调度程序线程(这可能吗?)

替代想法)隐藏整个JFrame,直到与服务器的消息交换完成并且内容准备好,显示另一个“等待”JFrame,但我不太喜欢这个解决方案,因为主JFrame在用户交互过程中会不断闪烁

编辑:感谢一些提示,我找到了答案,但我无法给任何人答案(没有人真正回答,我只有评论!),我应该投票删除这个问题吗?

最佳答案

我使用 JDialog 解决了这个问题,使用 setVisible(true/false) 并拒绝用户通过按 X 按钮关闭对话框的可能性,使用setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);

public class PreloaderDialog extends JDialog {              

publicPreloaderDialog() {

initialize();
}

public final void initialize() {

JLabel waittext = new JLabel("Wait, please");
add(waittext);

setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
setModalityType(ModalityType.APPLICATION_MODAL);

setTitle("Loading in progress");

setLocationRelativeTo(null);
setSize(300, 120);
}

public void hide() {

setVisible(false);
}

public void show() {

setVisible(true);
}

}

关于Java C/S 应用程序预加载器(如 Ajax),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337387/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com