Большое спасибо за этот ответ, но, если вы хотите узнать причину, вы здесь.
Обычно это появляется в двух положениях:
- переопределенный метод в вашем компоненте.
- нормальный метод для вашего компонента.
Например:
package UI.Components;
public class LabelComponent extends javax.swing.JLabel {
private javax.swing.JLabel label;
public TextFieldComponent() {
label = new javax.swing.JLabel(_label);
add(label);
}
@Override
public void setText(String text) {
label.setText(text);
}
}
Метод setText(String text)
вызывается скажем в конструкторе класса ужинания, затем онпереопределенный новый метод будет вызван в случае, когда переменная (label), которая используется в этом методе, еще не инициализирована, поэтому java.lang.NullPointerException
будет обработан.
решение:
1) try
... catch
:
@Override
public void setText(String text) {
try {
label.setText(text);
} catch (Exception e) {
}
}
2) check:
использовать нулевую инициализацию при объявлении
private javax.swing.JLabel label = null;
, затем проверить метод
@Override
public void setText(String text) {
if(label != null)
label.setText(text);
}
3) использовать инициализацию при объявлении:
private javax.swing.JLabel label = label = new javax.swing.JLabel();
, а затем использовать метод setText в вашем конструкторе
label.setText(_label);
note:
inВ случае причины (2) это обычный метод для вашего компонента, он такой же, как (1), но вы можете вызвать метод перед инициализациейПеременная или присвойте ей значение null перед вызовом метода и т. д., и ее можно решить теми же способами.