2014-04-30 46 views
1

我的问题很简单:我试图添加一个WindowListener和一个onClose监听器(或一般的监听器),但我不知道该怎么做是在Netbeans中添加代码的位置8.0。在Netbeans中添加监听器

我有这个疑问,因为Netbeans完全由自己创建JFrame,并隐藏该代码。我必须在Netbeans创建的这个自定义代码的某个地方添加Listener,或者在Class Constructor或其他地方添加Listener?

回答

1

可以使用JFrame's Properties -> EventsPropertiesBindings可以帮助你有时太)增加了许多听众到JFrame。

如果你没有得到你所需要的,只是把你的代码放到构造或者 - 如果这是一个很大 - 让私有方法呼叫在构造函数。

我主要比私人方法更喜欢私人方法,但这是你的选择。

例子:

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() - 这是产生方法魔女初始化所有组件 - 否则某些部件可能还没有准备好。

+0

谢谢。我有用按钮打开JFrame2的JFrame1。如何保持JFrame1 Enabled(false)与JFrame2一样可见? –

+0

这似乎是另一个问题。有很多方法,一个是Listeners,但你也可以使用对'JFrame1'的引用。顺便说一句。可能的对话是一个更好的解决方案吗?这些可以设置为*模态*,在我看来这是解决方案。 – ollo

+0

你对话的含义是什么?像是一条消息说JFrame2已经可见? –