1

在此处输入图像描述

现在,当我单击导入按钮时,会在后端执行一项操作。为此,虽然 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);



             }

        }
4

1 回答 1

8

您的问题是 GUI 正在调用操作并阻塞,即它等待该操作完成,并且由于它正在等待,因此无法进行用户交互。要解决这个问题,您必须在应用程序中使用多个线程。

谨慎使用并发对于 Swing 程序员来说尤为重要。一个编写良好的 Swing 程序使用并发来创建一个永远不会“冻结”的用户界面——该程序总是响应用户交互,无论它在做什么。要创建响应式程序,程序员必须了解 Swing 框架如何使用线程。

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

于 2013-09-26T10:01:33.843 回答