2013-02-20 4 views
0

У меня возникли проблемы с выяснением того, как заставить JButton предложить пользователю сохранить содержимое в JTextArea перед закрытием программы. До сих пор, у меня есть некоторый код для операции закрытия для моей кнопки, но даже это не похоже на работу ... ничего не происходит, когда я нажимаю его:Добавление близкой операции к JButton

public void actionPerformed(ActionEvent event) { 

    if(event.getSource() == this.Quit) 
     this.dispose(); 
.... 

остальные больше еще/если/попробовать для других кнопок.

Я установил свой класс, чтобы расширить JFrame и реализовать ActionListener, поэтому вся моя программа находится в одном классе ... возможно, не очень аккуратный способ кодирования, но мне сейчас все проще держать все здесь до того, как я распределить некоторые функции в другие классы.

В принципе, ничего не происходит, и я не знаю, как добавить запрос сохранения вместе с его закрытием. Любая помощь будет замечательной!

+0

Этот «actionPerformed» является частью какого компонента? Ваш кадр или кнопка? Трудно предоставить помощь с таким количеством деталей. –

+0

1) * «Я установил свой класс для расширения JFrame и реализации ActionListener, поэтому вся моя программа находится в одном классе ...» * Я могу создать код в одном * исходном файле *, который не расширяет фрейм, и не требует его выполнения , Подумайте о добавлении анонимного внутреннего действия для каждой кнопки. 2) Чтобы получить более эффективную помощь, опубликуйте [SSCCE] (http://sscce.org/). –

ответ

0

Попробуйте это:

MyClass.this.setVisible(false); 

Также на жестком выходе из приложения сделать:

System.exit(0); 
+0

Предоставленный короткий код не показывает достаточно, чтобы выяснить, где сделан вызов 'this.dispose'. Я удалил свой последний комментарий, потому что код, который вы предоставили, может работать корректно. –

+0

Спасибо! System.exit (0); работал, в то время как первый не по какой-то причине, но по крайней мере он закрывает приложение. Есть ли способ связать это с предложением сохранить до закрытия? Это программа для блокнота, поэтому мне бы хотелось сохранить в файле JTextArea то, что находится в JTextArea. – floatfil

0

Более простой способ сделать то, что вы хотите, это:

class MyClass extends JFrame{ 
    public MyClass(){ 
     JButton myButton; 
     //... etc 
     myButton.addActionListener(new ActionListener(){ 

      public void actionPerformed(ActionEvent event){ 
       MyClass.this.setVisible(false); 
      } 
     }); 
    } 
} 
1

Есть ли способ связать это с предложением сохранить до закрытия?

См. Closing an Application.

Примечание: вы также можете добавить ExitAction в свой JButton. Затем, когда вы нажмете на кнопку, она начнет закрытие окна.

Смежные вопросы