Linux 3D ускоренная запись безголового экрана

Один из способов справиться с этим - изменить поведение по умолчанию закрытия окна и добавить WindowListener, который улавливает событие закрытия окна и выполняет сохранение там.

Простой пример, который можно добавить в Класс DisplayPanel (сразу после создания объекта jFrame):

    theFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    theFrame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            super.windowClosing(e);
            String[] lines = theText.getText().split("\\n");
            try (BufferedWriter writer = new BufferedWriter(new FileWriter("newfile.txt"))) {
                for (String line : lines)
                    writer.write(line + "\n");
            } catch (IOException i) {
                System.out.println("Cannot write file...");
            }

            System.out.println("File saved!");
            System.exit(0);
        }
    });

При закрытом окне код выше сохранит измененный текст в файле newfile.txt.

В приведенном выше примере расщепление на строки, вероятно, не нужно; вы, вероятно, получите правильный результат, просто выполнив writer.write(theText.getText());.

Некоторая соответствующая документация:

Как написать Window Listeners

0
задан RawCode 19 January 2019 в 14:24
поделиться