有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing按照MVC模式在Java中实现JFileChooser

如何/在Java的MVC架构中处理JFileChooser的最佳方式是什么?我的控制器正在侦听主GUI中的事件,并对其上的按钮起作用,即,控制器调用模型上的适当方法,并且它(控制器)更新视图。问题是,现在我想添加一个JFileChooser,并想通过控制器用所选文件的完整路径更新模型。
我正在使用@Hovercraft Full Of Eels开发的这个答案How to manage view updates from controllers in a Java Swing app中的代码作为我项目的基础。
我该怎么做


共 (1) 个答案

  1. # 1 楼答案

    这是一个简单的版本。这个方法来自我的一个ActionListener类,它是由JMenuItem触发的

    必须将GUI框架的实例和GUI模型的实例传递给包含此方法的类

    protected int chooseOpenFile() {
        JFileChooser fileChooser = new JFileChooser(model.getSavedInputFile());
    
        int status = fileChooser.showOpenDialog(frame.getFrame());
    
        if (status == JFileChooser.APPROVE_OPTION) {
            File selectedFile = fileChooser.getSelectedFile();
            model.setSavedInputFile(selectedFile);
        }
    
        return status;
    }