我试图将Swing组件传递给另一个对象,但系统不断抛出NullPointerException。当我在传递组件之前将组件打印到String时,它不等于null。这里出了什么问题?
非常感谢
public ResizePanel() {
initComponents();
setLayout(null);
this.setBackground(Color.red);
JButton b = new JButton();
System.out.println("b = " + b.toString());
resizer.addJButton(b, 10, 10); //THROWS NULLPOINTEREXCEPTION HERE
b.setName("b");
b.setBounds(100, 100, 100, 40);
this.add(b);
}
答案 0 :(得分:2)
当我在传递组件之前将组件打印到String时,
你没有通过它"。你的" resizePanel()"没有参数。方法
所以你可能有两个同名的变量,一个实例变量和一个局部变量。因此,您正在访问一个null的实例变量。
实例变量可能使用以下代码定义:
JPanel resizer; // this variable is null and used by your method
您可能还创建了一个非空的局部变量:
JPanel resizer = new JPanel(); // this is not null
以上代码应更改为:
resizer = new JPanel();
现在你只有一个初始化的实例变量。