当用户单击我的应用程序中的特定按钮时,我试图在新的JFrame中显示“正在加载图像”。显示了JFrame,但它什么也没有显示!也有白色背景,而所有JFrame都有默认的灰色背景。这是怎么了

stop.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            analyzer.running=false;
            JFrame Load1=new JFrame("Load1");
            ImageIcon icon1=new ImageIcon("./ajax-loader.gif");
            System.out.println(icon1.getIconHeight());
            Load1.add(new JLabel("Retrieving...", icon1, JLabel.CENTER),BorderLayout.CENTER);
            Load1.pack();
            Load1.setSize(400,400);
            Load1.setVisible(true);

            System.out.println("Start Processing");
            parser.parse();  // Time Consuming method


            nw_Creator.create();
            System.out.println("End Processing");
            Load1.setVisible(false);

            home.setVisible(false);
            screen2.setVisible(true);

        }
    });

最佳答案

不要将耗时的部件放在事件处理程序或事件分发线程中运行的任何方法中。您可能要使用swing worker代替。

10-06 02:03