hehebingbushi 2016-06-30 09:16 采纳率: 100%
浏览 1259
已采纳

java小白求助空指针问题。。

这一段代码只要一运行就会空指针的错误,但是我觉着应该没啥问题啊。。求指点

package Java5;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Java5_14 extends JFrame{
JMenuBar menubar;//JMenuBar不参与布局
JMenu jm1,jm2,jm3,jm4,jm5,jmej;//JMenu有下一级菜单
JMenu [] menugroup={jm1,jm2,jm3,jm4,jm5};
JMenuItem jmi1,jmi2,jmi3,jmi4,jmej1,jmej2;//JMenuItem没有下一级菜单
JMenuItem [] menuitemgroup={jmi1,jmi2,jmi3,jmi4};

JToolBar toolbar;
JButton jb1,jb2,jb3,jb4,jb5,jb6;
JButton buttongroup[]={jb1,jb2,jb3,jb4,jb5,jb6};

JTextArea jta;
JScrollPane js;

public JButton setToolBar(JButton button,String s1,String s2){
    button=new JButton(s1);
    button.setToolTipText(s2);
    return button;
}
public JMenu setMenuBar(JMenu menu,String s,char c){
    menu=new JMenu(s);
    menu.setMnemonic(c);
    return menu;
}
public Java5_14(){

    jb1=setToolBar(jb1,"new","新建");
    jb2=setToolBar(jb2,"open","打开");
    jb3=setToolBar(jb3,"save","保存");
    jb4=setToolBar(jb4,"cut","剪切");
    jb5=setToolBar(jb5,"paste","粘贴");
    jb6=setToolBar(jb6,"copy","复制");

    jm1=setMenuBar(jm1,"文件(F)",'F');
    jm2=setMenuBar(jm2,"编辑(E)",'E');
    jm3=setMenuBar(jm3,"格式(O)",'O');
    jm4=setMenuBar(jm4,"查看(V)",'V');
    jm5=setMenuBar(jm5,"帮助(H)",'H');
    jmej=setMenuBar(jmej,"新建(N)",'N');

    jmej1=new JMenuItem("文件");
    jmej2=new JMenuItem("模板");

    jmi1=new JMenuItem("打开");
    jmi2=new JMenuItem("保存");
    jmi3=new JMenuItem("另存为");
    jmi4=new JMenuItem("页面设置");

    jta=new JTextArea();
    js=new JScrollPane();
    js.add(jta);

    toolbar=new JToolBar();

    for(int i=0;i<buttongroup.length;i++){
        toolbar.add(buttongroup[i]);
    }

    jmej.add(jmej1);
    jmej.add(jmej2);

    for(int i=0;i<menuitemgroup.length;i++){
        jm1.add(menuitemgroup[i]);
        if(i==1){
            jm1.addSeparator();
        }
    }

    menubar=new JMenuBar();
    for(int i=0;i<menugroup.length;i++){
        menubar.add(menugroup[i]);
    }

    this.add(menubar);
    this.add(toolbar,BorderLayout.NORTH);
    this.add(js);

    this.setSize(500,300);
    this.setLocation(500,300);
    this.setVisible(true);
    //this.setResizable(false);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);

}
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Java5_14 j=new Java5_14();
}

}

图片说明

  • 写回答

9条回答 默认 最新

  • sinat_31535993 2016-07-01 01:12
    关注

    buttongroup[]={jb1,jb2,jb3,jb4,jb5,jb6};buttongroup它只在Java5-14新建的时候初始化了,但jb1是在后来才有了值,所以。buttongroup还是空,你并没有重新给他赋值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大