java - 如何修复 "leaking this in constructor"警告

标签 java netbeans this

<分区>

Possible Duplicate:
Java - Leaking this in constructor

在 NetBeans 中,我有一个包含 JPanel 的 JDialog。我正在尝试将 JDialog 的引用传递给 JPanel。请在下面查看我的代码。当我这样做时,我收到了“在构造函数中泄漏”警告。我明白为什么,但我不知道如何解决这个问题。我也知道我可以使用 @SuppressWarnings("LeakingThisInConstructor") 但是没有真正的方法可以在不抑制警告的情况下解决这个问题吗?

public class MyJDialog extends javax.swing.JDialog {

    public MyJDialog(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        MyJPanel.getThis(this);
    }
}

public class MyJPanel extends javax.swing.JPanel {

    private JDialog dialog;

    public MyJPanel() {
        initComponents();
    }

    public void getThis(JDialog dialog){
        this.dialog = dialog;
    }
}

最佳答案

如果我没理解错的话,JPanel 实例是由 JDialog 创建的。在这种情况下,您可以通过 JPanel 的构造函数传递对 JDIalog 的引用。

在 MyJPanel 类中:

  public MyJPanel(JDialog dialog) {
    initComponents();
    this.dialog = dialog;
  }

在 JDialog 中创建 MyJPanel 时,您可以这样做:

  myPanel = new MyJPanel(this);

关于java - 如何修复 "leaking this in constructor"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9380044/

相关文章:

java:如何制作带有单选按钮和标签的可滚动面板?

java - JTable rowCount问题

java - Droptiles by Omar AL Zabir 支持哪些 HTML5 功能?

java - 如何使用正则表达式分割行

java - ChartRenderingInfo 对于图表区域返回 0

C++ 空值和 this 指针

javascript - REPL和脚本之间的'this'不同

java - 如何在我的主类中使用通过 Netbeans GUI 构建器创建的按钮?

java - BPEL 和 Java Web 服务

javascript - 如何使用此和(多个)动态括号表示法更改 vue 数据变量