У меня есть класс, который расширяет JPanel. В своем конструкторе я прохожу к другим методам, главным образом для добавления объекта jpanel в качестве слушателя в контейнеры/элементы управления в jpanel (но и другие объекты). Поскольку Netbeans показывает предупреждение leaking this in constructor
для этих вызовов, я поместил их в другой метод, который вызывается из конструктора.Утечка этого в конструкторе - где правильно добавить слушателей и другие методы, требующие «this»
перед:
class Foo ... {
public Foo() {
initComponents();
tabX.addChangeListener(this); // <- netbeans complains here
}
после:
class Foo ... {
public Foo() {
initComponents();
initListeners();
}
protected void initListeners() {
tabX.addChangeListener(this);
}
Это избавляется от симптома. Но я сомневаюсь, что он устанавливает причину, по которой netbeans показывает предупреждение.
Где подходящее место для инициализации такого рода в классе JPanel?
не уверен, что я следую за вами, вы можете опубликовать метод подписи вверх и ваше «исправление» – Woot4Moo
это может помочь вам http://stackoverflow.com/questions/3921616/java-leaking-this-in-constructor – Chikei
[Java - утечка это в конструкторе] (http://stackoverflow.com/q/3921616/1048330) – tenorsax