代码如下, 烦请大家帮忙看下, 在运行时出现了 java.lang.NullPointerException 异常, 求解释, 谢谢!import javax.swing.*;
import java.awt.*;public class CalculatorUI extends JFrame {
private JMenuBar jmenuBar;
private JMenu jmenuView, jmenuEdit, jmenuHelp;
private final int JMIS_VIEW = 10;
private final int JMIS_EDIT = 2;
private final int JMIS_HELP = 2;
private final int BUTTON_GAP = 10;
private JMenuItem[] jmisView;
private JMenuItem[] jmisEdit;
private JMenuItem[] jmisHelp;
private JPanel[] buttonsPanels = new JPanel[6];
private JButton[] buttons = new JButton[4*5];

private String[] jmiViewStrings = {
"标准型(T)", "科学型(S)", "程序员(P)", "统计信息(A)", "历史记录(Y)",
"数字分组(I)", "基本(B)", "单位转换(U)", "日期计算(D)", "工作表(W)"
};

private String[] jmiEditStrings = {
"复制(C)", "粘贴(V)"
};

private String[] jmiHelpStrings = {
"查看帮助(H)", "关于计算器(A)"
};

private String[] buttonsStrings = {
"MC", "MR", "MS", "M⁺", "M⁻", "⬅", "CE", "C", "∓", "√",
"7", "8", "9", "/", "%", "4", "5", "6", "*", "₁/ₓ"
};
public CalculatorUI() {
jmisView = new JMenuItem[JMIS_VIEW];
jmisEdit = new JMenuItem[JMIS_EDIT];
jmisHelp = new JMenuItem[JMIS_HELP];
jmenuBar = new JMenuBar();
this.setJMenuBar(jmenuBar);

jmenuView = new JMenu("查看(V)");
jmenuEdit = new JMenu("编辑(E)");
jmenuHelp = new JMenu("帮助(H)");

for (int i = 0; i < JMIS_VIEW; i++) {
jmisView[i] = new JMenuItem(jmiViewStrings[i]);
jmenuView.add(jmisView[i]);
}

for (int i = 0; i < JMIS_EDIT; i++) {
jmisEdit[i] = new JMenuItem(jmiEditStrings[i]);
jmenuEdit.add(jmisEdit[i]);
}

for (int i = 0; i < JMIS_HELP; i++) {
jmisHelp[i] = new JMenuItem(jmiHelpStrings[i]);
jmenuHelp.add(jmisHelp[i]);
}

jmenuBar.add(jmenuView);
jmenuBar.add(jmenuEdit);
jmenuBar.add(jmenuHelp);

// Panels
buttonsPanels[0].setLayout(new GridLayout(4, 5, BUTTON_GAP, BUTTON_GAP));
for (int i = 0; i < 4*5; i++) {
buttons[i] = new JButton(buttonsStrings[i]);
buttonsPanels[0].add(buttons[i]);
}
add(buttonsPanels[0]);
}

public static void main(String[] args) {
CalculatorUI cui = new CalculatorUI();
cui.setTitle("计算器");
cui.setSize(500, 400);
cui.setDefaultCloseOperation(EXIT_ON_CLOSE);
cui.setLocationRelativeTo(null);
cui.setVisible(true);
}
}