Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试遵循MVC模式_Java_Swing_Model View Controller - Fatal编程技术网

Java 尝试遵循MVC模式

Java 尝试遵循MVC模式,java,swing,model-view-controller,Java,Swing,Model View Controller,我正在尝试使用MVC模式构建我的第一个JavaSwing应用程序。但是我不太喜欢它。尤其不是关于如何编写代码。我在这个网站和其他网站上读了很多关于MVC的文章。 这是我读到的关于MVC的内容之一: 我对开发相当陌生,希望从一开始就使用最佳实践 我认为我对MVC模式的理解是,你有一个控制器、一个模型和一个视图。控制器从视图中获取输入。然后控制器要求模型改变它的状态。从模型中获取状态,并执行它需要对输入执行的所有操作,如将其存储到数据库或使用从数据库中获取的内容更改视图 public clas

我正在尝试使用MVC模式构建我的第一个JavaSwing应用程序。但是我不太喜欢它。尤其不是关于如何编写代码。我在这个网站和其他网站上读了很多关于MVC的文章。 这是我读到的关于MVC的内容之一:

我对开发相当陌生,希望从一开始就使用最佳实践

我认为我对MVC模式的理解是,你有一个控制器、一个模型和一个视图。控制器从视图中获取输入。然后控制器要求模型改变它的状态。从模型中获取状态,并执行它需要对输入执行的所有操作,如将其存储到数据库或使用从数据库中获取的内容更改视图

 public class MainWindowActionListenerAddMVCVIEW implements ActionListener {

    WolffAddressManagerMVCMODEL model = new WolffAddressManagerMVCMODEL();
    WolffAddressManagerMVCController controller = new WolffAddressManagerMVCController(model);
    public MainWindowActionListenerAddMVCVIEW(JTextField fName, JTextField lName, JTextField eAddress, JTextField streetName, JTextField houseNumber, JTextField add, JTextField zCode, JTextField cityName) {

        this.model.setJTextfiedFirstName(fName);
        this.model.setJTextFieldLastName(lName);
        this.model.setJTextFieldEmailAddress(eAddress);
        this.model.setJTextFieldStreet(streetName);
        this.model.setJTextFieldHouseNumber(houseNumber);
        this.model.setJTextFieldAdditive(add);
        this.model.setJTexFieldZipCode(zCode);
        this.model.setJTextFieldCity(cityName);

    }


    @Override
    public void actionPerformed(ActionEvent e) {
        model.setFirstName(model.getJTextFieldFirstName().getText());
        model.setLastName(model.getJTextFieldLastName().getText());
        model.setEmailAddress(model.getJTextFieldEmailAddress().getText());
        model.setStreet(model.getJTextFieldStreet().getText());
        model.setNumber(model.getJTextFieldHouseNumber().getText());
        model.setAdditive(model.getJTextfieldAdditive().getText());
        model.setZipCode(model.getJTextFieldZipCode().getText());
        model.setCity(model.getJTextFieldCity().getText());
        try {
            controller.saveAddressToDataBase(this);
        } catch (Exception ex) {
            Logger.getLogger(MainWindowActionListenerAddMVCVIEW.class.getName()).log(Level.SEVERE, null, ex);
        }
例如,如果单击“添加地址”按钮,它将从视图中的文本字段获取输入。控制器更新模型,并将从视图中获取的数据保存到数据库中。如果单击“search Addres”按钮,它将从视图中的文本字段中获取输入,搜索数据库,如果它返回数据,它将更新模型并将其输出到视图中

如果我认为了解MVC是正确的,我该如何编写代码

有没有可能用我到目前为止的代码来解释它

如何将数据从视图获取到控制器和模型

这是我目前的代码:

视图JFrame

查看ActionListener

模型

控制器

公共类WolfFadDressManagerMVCC控制器{
公共管理器模型控制器模型;
公共主窗口ActionListener MVCView控制器ActionListener;
公共文件管理器vcjframeview控制器jframe;
私有连接connect=null;
私人最终报表=空;
private PreparedStatement PreparedStatement=null;
私有ResultSet ResultSet=null;
public ArrayList queryResultSet=new ArrayList();
public void saveAddressToDataBase(MainWindowActionListenerMVCVIEW控制器)引发异常{
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
connect=DriverManager.getConnection(“jdbc:mysql://localhost/dev?“+”user=root&password=password”);
preparedStatement=connect.prepareStatement(“从dev.addresses中选择电子邮件,其中电子邮件='”+控制器.emailAddress.getText()+”);
resultSet=preparedStatement.executeQuery();
if(resultSet.next()){
JOptionPane.showMessageDialog(null,“电子邮件已存在”,“信息框:“+”错误”,JOptionPane.INFORMATION\u消息);
}否则{
preparedStatement=connect.prepareStatement(“插入到开发地址(名字、姓氏、电子邮件、街道、门牌号、地址、邮编、城市)值(?,,,,,,,,,?)”;
preparedStatement.setString(1,controller.firstName.getText());
preparedStatement.setString(2,controller.lastName.getText());
preparedStatement.setString(3,controller.emailAddress.getText());
setString(4,controller.street.getText());
preparedStatement.setString(5,controller.number.getText());
preparedStatement.setString(6,controller.addition.getText());
setString(7,controller.zipCode.getText());
setString(8,controller.city.getText());
preparedStatement.executeUpdate();
}
}catch(ClassNotFoundException | SQLException | HeadlessException e){
投掷e;
}最后{
close();
}
}
public void searchAddress(字符串emailAddress)引发异常{
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
//设置与数据库的连接
connect=DriverManager.getConnection(“jdbc:mysql://localhost/dev?“+”user=root&password=fiat128slc“;
preparedStatement=connect.prepareStatement(“从电子邮件地址中选择*”+“电子邮件地址+”);
resultSet=preparedStatement.executeQuery();
if(resultSet.isBeforeFirst()){
while(resultSet.next()){
添加(resultSet.getString(“firstname”);
添加(resultSet.getString(“lastname”);
添加(resultSet.getString(“电子邮件”);
添加(resultSet.getString(“street”);
添加(resultSet.getString(“housenumber”);
添加(resultSet.getString(“additve”);
添加(resultSet.getString(“zipcode”);
添加(resultSet.getString(“城市”);
}
}否则{
JOptionPane.showMessageDialog(null,“电子邮件不存在”,“信息框:”+“错误”,JOptionPane.INFORMATION\u消息);
}
}catch(ClassNotFoundException | SQLException | HeadlessException e){
投掷e;
}最后{
close();
}
}

我编辑了我的最后一个答案。我认为我的思路是正确的。在我的MVC项目中使用getter和setter。我现在有了一个负责查询的类

控制器

public class MainWindowActionListenerMVCVIEW implements ActionListener {
    public  JTextField firstName, lastName, emailAddress, street, number, additive, zipCode, city, searchEmailAdress, removeEmailAddress;


    public MainWindowActionListenerMVCVIEW(JTextField fName, JTextField lName, JTextField eAddress, JTextField streetName, JTextField houseNumber, JTextField add, JTextField zCode, JTextField cityName, JTextField searchEAdress, JTextField removeEAddress) {

        this.firstName = fName;
        this.lastName = lName;
        this.emailAddress = eAddress;
        this.street = streetName;
        this.number = houseNumber;
        this.additive = add;
        this.zipCode = zCode;
        this.city = cityName;
        this.searchEmailAdress = searchEAdress;
        this.removeEmailAddress = removeEAddress;
    }


    @Override
    public void actionPerformed(ActionEvent e) {
        firstName.getText();
        lastName.getText();
        emailAddress.getText();
        street.getText();
        number.getText();
        additive.getText();
        zipCode.getText();
        city.getText();
        searchEmailAdress.getText();
        removeEmailAddress.getText();
        System.out.println("test" + " " + firstName.getText()); // I put this in just te see if the *ActionListener* works

     }
}
public class WolffAddressManagerMVCMODEL {
    public String firstName;
    public String lastName;
    public String emailAddress;
    public String street;
    public String number;
    public String additive;
    public String zipCode;
    public String city;
}
public class WolffAddressManagerMVCController {
    public WolffAddressManagerMVCMODEL controllerModel;
    public MainWindowActionListenerMVCVIEW controllerActionListener;
    public WolffAddressManagerMVCJFrameVIEW controllerJFrame;
    private Connection connect = null;
    private final Statement statement = null;
    private PreparedStatement preparedStatement = null;
    private ResultSet resultSet = null;
    public ArrayList<String> queryResultSet = new ArrayList();

    public void saveAddressToDataBase(MainWindowActionListenerMVCVIEW controller) throws Exception {

        try {
            Class.forName("com.mysql.jdbc.Driver");
            connect = DriverManager.getConnection("jdbc:mysql://localhost/dev?" + "user=root&password=password");
            preparedStatement = connect.prepareStatement("SELECT email FROM dev.addresses WHERE email= '" + controller.emailAddress.getText() + "'");
            resultSet = preparedStatement.executeQuery();

            if(resultSet.next()) {
                JOptionPane.showMessageDialog(null,  "Email already exist", "InfoBox: " + "Error", JOptionPane.INFORMATION_MESSAGE);
            } else {
                preparedStatement = connect.prepareStatement("INSERT INTO  dev.addresses (firstname, lastname, email, street, housenumber, additve, zipcode, city) VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
                preparedStatement.setString(1, controller.firstName.getText());
                preparedStatement.setString(2, controller.lastName.getText());
                preparedStatement.setString(3, controller.emailAddress.getText());
                preparedStatement.setString(4, controller.street.getText());
                preparedStatement.setString(5, controller.number.getText());
                preparedStatement.setString(6, controller.additive.getText());
                preparedStatement.setString(7, controller.zipCode.getText());
                preparedStatement.setString(8, controller.city.getText());
                preparedStatement.executeUpdate();
            }

        } catch (ClassNotFoundException | SQLException | HeadlessException e) {
          throw e;
        } finally {
          close();
        }
    }

    public void searchAddress(String emailAddress) throws Exception {
        try {
            Class.forName("com.mysql.jdbc.Driver");
              // Setup the connection with the DB
            connect = DriverManager.getConnection("jdbc:mysql://localhost/dev?" + "user=root&password=fiat128slc");
            preparedStatement = connect.prepareStatement("SELECT * FROM dev.addresses WHERE email= '" + emailAddress + "'");
            resultSet = preparedStatement.executeQuery();
            if(resultSet.isBeforeFirst()) {
                while(resultSet.next()) {
                    queryResultSet.add(resultSet.getString("firstname"));
                    queryResultSet.add(resultSet.getString("lastname"));
                    queryResultSet.add(resultSet.getString("email"));
                    queryResultSet.add(resultSet.getString("street"));
                    queryResultSet.add(resultSet.getString("housenumber"));
                    queryResultSet.add(resultSet.getString("additve"));
                    queryResultSet.add(resultSet.getString("zipcode"));
                    queryResultSet.add(resultSet.getString("city"));
                }
            } else {
                JOptionPane.showMessageDialog(null, "Email doesn't exist", "InfoBox: " + "Error", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (ClassNotFoundException | SQLException | HeadlessException e) {
          throw e;
        } finally {
          close();
        }
    }
    public class WolffAddressManagerMVCController {
    private final WolffAddressManagerMVCMODEL model;
    private final WolffAddressManagerQueriesMVCSERVICES query;

    public WolffAddressManagerMVCController(WolffAddressManagerMVCMODEL model) {
        this.query = new WolffAddressManagerQueriesMVCSERVICES();
        this.model = model;
    }


    public void buildView() throws Exception {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(WolffAddressManagerMVCJFrameVIEW.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
                @Override
                public void run() {
                    new WolffAddressManagerMVCJFrameVIEW().setVisible(true);
                }
            });
        }

    public void buildView2() throws Exception {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(WolffAddressManagerMVCUpdateJFrameVIEW.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
                @Override
                public void run() {
                    new WolffAddressManagerMVCUpdateJFrameVIEW().setVisible(true);
                }
            });
        }

    public void addCredentials(WolffAddressManagerMVCJFrameVIEW view , WolffAddressManagerMVCMODEL model) throws Exception {
        if(model.getEmailAddress().equals(model.getReTypeEmailAddress())) {
            if(query.saveAddressToDataBase(view, model) == true) {
                showCredentials(view);
            }
            else {
                view.setTextArea(view.getTextArea() + "EMAIL ALREADY EXISTS\n\n");
            }
        } else {
            JOptionPane.showMessageDialog(null,  "Emailaddresses are not the same", "InfoBox: " + "Error", JOptionPane.INFORMATION_MESSAGE);
        }
    }

    private void showCredentials(WolffAddressManagerMVCJFrameVIEW view) throws Exception {
        DefaultListModel<String> jList = new DefaultListModel();
        JList<String> list = new JList(jList);
        model.setSearchResultArray(searchCredentials(model));
        for(int i = 0; i < model.getSearchResultArray().size(); i++) {
            jList.addElement(model.getSearchResultArray().get(i));
        }
        list.setModel(jList);

        int size = list.getModel().getSize();
        StringBuilder credentials = new StringBuilder();

        for(int i = 0; i < size; i++) {
           credentials.append(list.getModel().getElementAt(i)).append("\n");
        }
        view.setTextArea(view.getTextArea() + credentials.toString()+ "CREDENTIALS ADDED\n\n");
    }

    public void removeCredentials() throws Exception {
        query.removeAddress(model.getEmailAddress());
    }

    public ArrayList<String> searchCredentials(WolffAddressManagerMVCMODEL model) throws Exception {
        return query.searchAddress(model.getEmailAddress());
    }

    public void showSearchResult(WolffAddressManagerMVCJFrameVIEW view, WolffAddressManagerMVCMODEL model) {
        DefaultListModel<String> jList = new DefaultListModel();
        JList<String> list = new JList(jList);

        try {
            model.setSearchResultArray(searchCredentials(model));
        } catch (Exception e) {
            Logger.getLogger(MainWindowActionListenerSearchMVCVIEW.class.getName()).log(Level.SEVERE, null, e);
        } 
        for(int i = 0; i < model.getSearchResultArray().size(); i++) {
            jList.addElement(model.getSearchResultArray().get(i));
        }
        list.setModel(jList);

        int size = list.getModel().getSize();
        StringBuilder credentials = new StringBuilder();
        for(int i = 0; i < size; i++) {
           credentials.append(list.getModel().getElementAt(i)).append("\n");
        }
        view.setTextArea(view.getTextArea() + credentials.toString());
    }

    private void showUpdateResult(WolffAddressManagerMVCUpdateJFrameVIEW view, WolffAddressManagerMVCMODEL model) {
        DefaultListModel<String> jList = new DefaultListModel();
        JList<String> list = new JList(jList);

        try {
            model.getUpdateResultArray();
        } catch (Exception e) {
            Logger.getLogger(MainWindowActionListenerSearchMVCVIEW.class.getName()).log(Level.SEVERE, null, e);
        } 
        for(int i = 0; i < model.getUpdateResultArray().size(); i++) {
            jList.addElement(model.getUpdateResultArray().get(i));
        }
        list.setModel(jList);

        int size = list.getModel().getSize();
        StringBuilder credentials = new StringBuilder();
        for(int i = 0; i < size; i++) {
           credentials.append(list.getModel().getElementAt(i)).append("\n");
        }
        view.setTextArea(credentials.toString());
    }

    public void updateCredentials(WolffAddressManagerMVCUpdateJFrameVIEW view,WolffAddressManagerMVCMODEL model) throws Exception {
        if(query.updateAddress(view, model) == true) {
            showUpdateResult(view,model);
        }
    }
}
       public class WolffAddressManagerMVCMODEL {
    private String updateEmailAddress;
    private String companyName;
    private String firstName;
    private String lastName;
    private String emailAddress;
    private String reTypeEmailAddress;
    private String street;
    private String number;
    private String additive;
    private String zipCode;
    private String city;
    private JTextField jTextFieldUpdateEmailAddress;
    private JTextField jTextFieldCompanyName;
    private JTextField jTextFieldFirstName;
    private JTextField jTextFieldLastName;
    private JTextField jTextFieldEmailAddress;
    private JTextField jTextFieldReTypeEmailAddress;
    private JTextField jTextFieldStreetName;
    private JTextField jTextFieldHouseNumber;
    private JTextField jTextFieldAdditive;
    private JTextField jTextFieldZipCode;
    private JTextField jTextFieldCityName;
    private JTextField jTextFieldSearchEmailAddress;
    private JTextField jTextFieldRemoveEmailAddress;
    private ArrayList<String> searchResultArray = null;
    private ArrayList<String> updateResultArray = null;

    public String getUpdateEmailAddress() {
        return updateEmailAddress;
    }

    public void setUpdateEmailAddress(String updateEmailAddress) {
        this.updateEmailAddress = updateEmailAddress;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmailAddress() {
        return emailAddress;
    }

    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }

    public String getReTypeEmailAddress() {
        return reTypeEmailAddress;
    }

    public void setReTypeEmailAddress(String reTypeEmailAddress) {
        this.reTypeEmailAddress = reTypeEmailAddress;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getAdditive() {
        return additive;
    }

    public void setAdditive(String additive) {
        this.additive = additive;
    }

    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public JTextField getJTextFieldUpdateEmailAddress() {
        return jTextFieldUpdateEmailAddress;
    }

    public void setJTextFieldUpdateEmailAddress(JTextField updateEmailAddress) {
        this.jTextFieldUpdateEmailAddress = updateEmailAddress;
    }

    public JTextField getJTextFieldCompanyName() {
        return jTextFieldCompanyName;
    }

    public void setJTextFieldCompanyName(JTextField companyName) {
        this.jTextFieldCompanyName = companyName;
    }

    public JTextField getJTextFieldFirstName() {
        return jTextFieldFirstName;
    }

    public void setJTextFieldFirstName(JTextField fName) {
        this.jTextFieldFirstName = fName;
    }

    public JTextField getJTextFieldLastName() {
        return jTextFieldLastName;
    }

    public void setJTextFieldLastName(JTextField lastName) {
        this.jTextFieldLastName = lastName;
    }

    public JTextField getJTextFieldEmailAddress() {
        return jTextFieldEmailAddress;
    }

    public void setJTextFieldEmailAddress(JTextField emailAddress) {
        this.jTextFieldEmailAddress = emailAddress;
    }

    public JTextField getJTextFieldReTypeEmailAddress() {
        return jTextFieldReTypeEmailAddress;
    }

    public void setJTextFieldReTypeEmailAddress( JTextField reTypeEmailAddress) {
        this.jTextFieldReTypeEmailAddress = reTypeEmailAddress;
    }

    public JTextField getJTextFieldStreet() {
        return jTextFieldStreetName;
    }

    public void setJTextFieldStreet(JTextField streetName) {
        this.jTextFieldStreetName = streetName;
    }

    public JTextField getJTextFieldHouseNumber() {
        return jTextFieldHouseNumber;
    }

    public void setJTextFieldHouseNumber(JTextField houseNumber) {
        this.jTextFieldHouseNumber = houseNumber;
    }

    public JTextField getJTextfieldAdditive() {
        return jTextFieldAdditive;
    }

    public void setJTextFieldAdditive(JTextField additive) {
        this.jTextFieldAdditive = additive;
    }

    public JTextField getJTextFieldZipCode() {
        return jTextFieldZipCode;
    }

    public void setJTexFieldZipCode(JTextField zipCode) {
        this.jTextFieldZipCode = zipCode;
    }

    public JTextField getJTextFieldCity() {
        return jTextFieldCityName;
    }

    public void setJTextFieldCity(JTextField cityName){
        this.jTextFieldCityName = cityName;
    }

    public JTextField getJTextFieldSearchEmailAddress(){
        return jTextFieldSearchEmailAddress;
    }

    public void setJTextFieldSearchEmailAddress(JTextField searchEmailAddress) {
        this.jTextFieldSearchEmailAddress = searchEmailAddress;
    }

    public JTextField getJTextFieldRemoveEmailAddress(){
        return jTextFieldRemoveEmailAddress;
    }

    public void setJTextFieldRemoveEmailAddress(JTextField removeEAddress){
        this.jTextFieldRemoveEmailAddress = removeEAddress;
    }

    public ArrayList<String> getSearchResultArray() {
        return searchResultArray;
    }

    public void setSearchResultArray(ArrayList searchResultArray) {
        this.searchResultArray = searchResultArray;
    }

    public ArrayList<String> getUpdateResultArray() {
        return updateResultArray;
    }

    public void setUpdateResultArray(ArrayList searchResultArray) {
        this.updateResultArray = searchResultArray;
    }
}
 public class MainWindowActionListenerAddMVCVIEW implements ActionListener {

    WolffAddressManagerMVCMODEL model = new WolffAddressManagerMVCMODEL();
    WolffAddressManagerMVCController controller = new WolffAddressManagerMVCController(model);
    public MainWindowActionListenerAddMVCVIEW(JTextField fName, JTextField lName, JTextField eAddress, JTextField streetName, JTextField houseNumber, JTextField add, JTextField zCode, JTextField cityName) {

        this.model.setJTextfiedFirstName(fName);
        this.model.setJTextFieldLastName(lName);
        this.model.setJTextFieldEmailAddress(eAddress);
        this.model.setJTextFieldStreet(streetName);
        this.model.setJTextFieldHouseNumber(houseNumber);
        this.model.setJTextFieldAdditive(add);
        this.model.setJTexFieldZipCode(zCode);
        this.model.setJTextFieldCity(cityName);

    }


    @Override
    public void actionPerformed(ActionEvent e) {
        model.setFirstName(model.getJTextFieldFirstName().getText());
        model.setLastName(model.getJTextFieldLastName().getText());
        model.setEmailAddress(model.getJTextFieldEmailAddress().getText());
        model.setStreet(model.getJTextFieldStreet().getText());
        model.setNumber(model.getJTextFieldHouseNumber().getText());
        model.setAdditive(model.getJTextfieldAdditive().getText());
        model.setZipCode(model.getJTextFieldZipCode().getText());
        model.setCity(model.getJTextFieldCity().getText());
        try {
            controller.saveAddressToDataBase(this);
        } catch (Exception ex) {
            Logger.getLogger(MainWindowActionListenerAddMVCVIEW.class.getName()).log(Level.SEVERE, null, ex);
        }