Java Swing GUI控件停止运行,并在后端执行操作

时间:2013-09-26 09:54:49

标签: java swing user-interface

enter image description here

现在,当我点击导入按钮时,会在后端执行操作。为此,GUI停止控制,我不能按任何按钮,但我希​​望取消按钮可用于按下,以便用户可以取消正在进行的操作。 我需要一些关于如何做的想法。

JButton importButton = new JButton("Import");
importButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {


    for(ResourceListObject currentImage : imagesToBeImported){

        String ImOid = String.valueOf(currentImage.getOID());


            String image_content = restEngine.getimageContent(ImOid);

            String str[]=new String[3];

            str[0] = "aix";
            str[1] = image_content;
            str[2] = selectedRepository.concat("_").concat(currentImage.getName());

            PowerVC_Image_Deployer imgDeployer= new PowerVC_Image_Deployer(str);



             }

        }

1 个答案:

答案 0 :(得分:8)

你的问题是GUI正在调用操作和阻塞,即它等待该操作完成,因为它正在等待,所以没有用户交互。要解决该问题,您必须在应用程序中使用多个线程。

  

小心使用并发对Swing尤其重要   程序员。一个写得很好的Swing程序使用并发来创建一个   从不“冻结”的用户界面 - 程序总是响应   用户互动,无论它在做什么。创建响应   程序,程序员必须了解Swing框架如何使用   线程。

您可以在此处找到更多信息:http://docs.oracle.com/javase/tutorial/uiswing/concurrency/