无法与JFileChooser窗口交互,无法点击或关闭

时间:2015-08-03 12:16:42

标签: java

在我的代码中,我要求用户选择图像。我的JFileChooser窗口运行正常。然后我重新启动了我的电脑,现在每当窗口出现时,它都无法以任何方式点击。我无法打开文件,我无法取消,我无法选择文件夹或文件。这是必要的代码。

    JFileChooser jfc = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter("Image Files", "jpg", "png", "jpeg");
    jfc.setFileFilter(filter);
    jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    jfc.setVisible(true);
    int ret = jfc.showOpenDialog(null);
    if (ret == JFileChooser.CANCEL_OPTION) {
        return;
    }
    File file_1 = jfc.getSelectedFile();
    file_path = file_1.getAbsolutePath();

断点显示程序永远不会离开这一行:

    int ret = jfc.showOpenDialog(null);

正如我所说,同样精确的代码在很久以前工作得很好。不确定是什么导致了这种情况。

在我的主程序中,我点击"添加图片"它调用前面提到的代码。我尝试点击窗口"打开"由" showOpenDialog"打开但是我点击的地方并不重要。没有什么变化。一旦我关闭"打开"主程序将恢复。我的任务经理的窗口。还有我的任务经理" Open"窗口没有说不响应,它看起来很好并在一个实例关闭,而且在文本字段内文本光标闪烁。

编辑:完全相同的代码适用于仅包含此代码的单独项目。

编辑2:一些额外的代码。

这是完整的load_file()函数。

public class Image {
private static String file_path;
private static ImageFrame frame;
public static boolean isImgLoaded = false;
public static void load_file(){ 
    JFileChooser jfc = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter("Image Files", "jpg", "png", "jpeg");
    jfc.setFileFilter(filter);
    jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
    jfc.setVisible(true);
    int ret = jfc.showOpenDialog(null);
    if (ret == JFileChooser.CANCEL_OPTION) {
        return;
    }
    File file_1 = jfc.getSelectedFile();
    file_path = file_1.getAbsolutePath();
    ImageFrame frm = new ImageFrame();
    frm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frm.setVisible(true);
    frame = frm;
    isImgLoaded = frame.get_component().is_img_loaded();
    frame.addWindowListener(new java.awt.event.WindowAdapter() {
        @Override
        public void windowClosing(java.awt.event.WindowEvent windowEvent) {
            closeFrame();
        }
    });
}

这是按下时调用该功能的按钮代码。 shlErgo是我建立UI的shell。

    Button btnAddImage = new Button(shlErgo, SWT.NONE);
    btnAddImage.setBounds(230, 10, 75, 25);
    btnAddImage.setText("Add Image");
    btnAddImage.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (!Image.isImgLoaded){
                Image.load_file();
            }
            else{
                Error.translate(2);
            }
        }
    });

0 个答案:

没有答案