文件选择器在main方法中不起作用

时间:2017-05-14 05:57:52

标签: java

我在记事本上构建了保存对话框,这是一个问题,因为我有另一个类保存文件的方法,当我在public static void main(String [] args)中使用时,它什么都不做`

       public static void main(String[] args) throws IOException {
    JFrame frame = new JFrame("edytor_tekstu");
    frame.setContentPane(new edytor_tekstowy2().panel);
    frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    edytor_tekstowy2 edytor = new edytor_tekstowy2();
    frame.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent we) {
            if (czy_zapisany == false) {
                Object[] options = {"YES",
                        "NO", "YES, BUT SAVE"};
                int n = JOptionPane.showOptionDialog(frame,
                        "Exit, but file is not save ???",
                        "YOU DONT SAVE SAVED FILE",
                        JOptionPane.YES_NO_OPTION,
                        JOptionPane.QUESTION_MESSAGE,
                        null,
                        options,
                        options[0]);
                if (czy_zapisany == false) {
                    if ("NO".equals(n)) {

                    } else if (("YES".equals(n))) {
                        edytor.saveas();
                    } else if (("YES, BUT SAVE".equals(n))) {
                        edytor.saveas();

                    }
                } else {
                    System.exit(0);
                }
            }
        }
    });
    frame.pack();
    frame.setVisible(true);

}`

1 个答案:

答案 0 :(得分:0)

您正在调用saveas()的{​​{1}}未添加到框架中。

因为在这里:

frame.setContentPane(new edytor_tekstowy2().panel);

您正在创建edytor_tekstowy2的新实例,但您不会对其进行引用。

您实际创建了一个新对象:

edytor_tekstowy2 edytor = new edytor_tekstowy2();

您在windowClosing方法中保留对其的引用和使用。

您需要更改

frame.setContentPane(new edytor_tekstowy2().panel);

frame.setContentPane(edytor.panel);

此外,nint。您将nString"NO".equals(n)"YES".equals(n)等)进行比较的所有条件都是false因此。

您需要使用"NO".equals(options[n])n == 0之类的内容。