Мой вопрос очень прост: я пытаюсь добавить WindowListener и onClose Listener (или Listener в целом), но то, что я не знаю, как это сделать, - это добавить код в Netbeans 8.0.
У меня есть это сомнение, потому что Netbeans полностью создает JFrame сам и скрывает этот код. Я должен добавить Listener где-нибудь в этом специальном коде, созданном Netbeans или в Class Constructor, или в любом другом месте?
Вы можете добавить много слушателей в JFrame, используя JFrame Properties → Events
и Properties
( Bindings
иногда могут помочь вам).
Если вы не получите то, что вам нужно, просто поместите свой код в конструктор или - если он много - сделайте закрытый метод, который вы вызываете в ctor.
В основном я предпочитаю частный метод, чем вкладывать все в ctor, но это действительно что-то по вашему выбору.
Пример:
public class Example extends javax.swing.JFrame
{
public Example()
{
initComponents(); // This is generated by NB - do NOT remove!
addListeners(); // add listeners here
}
/**
* Adds listeners to the frame
*/
private void addListeners()
{
// Add your listeners here as usual
this.addWindowListener(new WindowListener()
{
@Override
public void windowOpened(WindowEvent e)
{
/* ... */
}
/* Other methods of WindowListener ... */
});
}
/* ... */
}
Только одно: добавьте слушателей после initComponents()
- что сгенерированный метод witch инициализирует все компоненты, иначе некоторые компоненты могут быть не готовы.
JFrame1
. Btw. Возможно, диалог является лучшим решением здесь? Они могут быть установлены как модальные , что мне кажется решением для этого.