在GridBagLayout中调用SetContraints时发生java NullPointerException
在正在创建的JDialog
中,我试图将字段添加到GUI中,但它返回了一个NullPointerException
,如下示例:
import javax.swing.*;
import java.awt.*;
public class Login extends JDialog{
//Constants
private final int WIDTH = 240;
private final int HEIGHT = 180;
//Attributes
private JPasswordField passwordField;
private JButton login;
private JLabel instruction;
private GridBagLayout aLayout;
GridBagConstraints aConstraint;
public Login(){
setTitle("Login Dialog");
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
aConstraint = new GridBagConstraints();
int padding = 5;
instruction = new JLabel("Enter password: ");
passwordField = new JPasswordField();
passwordField.setPreferredSize(new Dimension(100, 20));
passwordField.setMinimumSize(new Dimension(100, 20));
login = new JButton("Login");
//Adding widgets to the GUI
addWidget(instruction, 1, 1, 1, 1);
addWidget(passwordField, 1, 1, 1, 1);
addWidget(login, 1, 2, 1, 1);
//Setting padding
aConstraint.insets = new Insets(padding, padding, padding, padding);
//Creating layout
aLayout = new GridBagLayout();
setLayout(aLayout);
//Making sure visibility is true.
setVisible(true);
}
public void addWidget(Component widget, int x, int y, int w, int h)
{
aConstraint.gridx = x;
aConstraint.gridy = y;
aConstraint.gridwidth = w;
aConstraint.gridheight = h;
aLayout.setConstraints(widget, aConstraint);
add(widget); // Calling method of super class.
}
}
这就是我得到的错误:
Exception in thread "main" java.lang.NullPointerException
at Login.addWidget(Login.java:57)
at Login.<init>(Login.java:37)
我使用JFrame
创建了一个类似的类,但我没有遇到这个问题
共 (0) 个答案