繁体   English   中英

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

[英]Java C/S Application preloader (like Ajax)

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

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

最佳做法是什么? 我有两个想法,但我认为应该有更好的方法来解决这个问题:

1个想法)阻塞事件分派器线程(甚至可能吗?)

另一种想法)隐藏整个JFrame,直到与服务器的消息交换完成并且内容准备就绪为止,显示另一个“等待” JFrame,但是我不太喜欢这种解决方案,因为主JFrame在用户使用期间会不断地闪烁相互作用

编辑:由于一些提示我弄清楚了,但我无法将答案提供给任何人(没有人实际回答,我只有评论!),我应该投票删除问题吗?

我使用JDialog解决了该问题,使用setVisible(true / false)并使用setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)来按下X按钮,以防止用户关闭对话框。

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

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM