CoderQ
CoderQ
2010-12-29 13:36
浏览 296
已采纳

Exception in thread "main" java.lang.NullPointerException

import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JFrame;

public class CMain {
public static void main(String[] args) {
JFrame frame = new CMainFrame();
frame.setVisible(true);
}
}

class CMainFrame extends JFrame
{
private JPanel _ButtonPanel;
public CMainFrame(){
setTitle("小秘书");
setSize(800, 600);
setLayout(null);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
_ButtonPanel = new CButtonPanel();
_ButtonPanel.setBounds(10,10, 350, 580);
add(_ButtonPanel);
//for (int i=0 ,iLeft=10, iTop=10;iLeft<300;iLeft+=140, iTop+=145){

    //}
}

}

class CButtonPanel extends JPanel
{
private JButton[] _MainButtons;
private String[] _MainButtonTitles = {"收支管理", "备忘录", "收支管理", "收支管理", "收支管理", "收支管理", "收支管理", "收支管理", "收支管理", "收支管理", "收支管理", "退出系统"};
private int iButtonWidth = 80;
private int iButtonHeight = 50;
public CButtonPanel(){
setLayout(null);
_MainButtons = new JButton[12];
//CMainButtons=new JButton[1];
//CMainButtons[0] = new JButton();
//CMainButtons[0].setLayout(null);
for (int i=0,iLeft=0,iTop=0;i<12;i++){
if (i%2==0) iLeft=0;
else iLeft=iButtonWidth*5/4;
System.out.println(_MainButtons[i]);
_MainButtons[i].setText(_MainButtonTitles[i]);
//_MainButtons[i].setBounds(iLeft, iTop+i/2*(iButtonHeight*5/4), 80, 50);
//add(_MainButtons[i]);
}
//_MainButtons[0].setBounds(0, 0, iButtonWidth, iButtonHeight);
//CMainButtons[0].setBorder(new EmptyBorder(10, 10, 10, 10));
}
}
/*class CMainButton extends JButton
{
public CMainButton(String sBtnName, int iLeft, int iTop, int iWidth, iHeight){
setTitle(sBtnName);
}
}*/

总是报标题那个错 发现只要执行跟_MainButtons[i]有关的操作就会报 可是我已经初始化了呀 为什么?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • zgy52188
    zgy52188 2010-12-29 13:47
    已采纳

    我看了一下你的代码_MainButtons 变量你从声明后就只MainButtons = new JButton[12];
    在就没有实际用到了 而你每_MainButtons[i]一次所代表的是一个对象 可先你的_MainButtons数组中是空的 只给了长度 然后你去找其中对象的方法这个可能找到吗? 必须报错啊。

    点赞 评论
  • iteye_10024
    iteye_10024 2010-12-29 13:38

    调试下呀..

    点赞 评论
  • iteye_7064
    iteye_7064 2010-12-29 13:54

    _MainButtons = new JButton[12];
    你不过实例化了一个JButton的数组而已。里面的12个JButton都是null啊。。。当然会空指针了。。。
    自己要实例化JButton,然后加到这个_MainButtons 里面去。

    点赞 评论
  • iteye_4873
    iteye_4873 2010-12-29 13:58

    [quote]
    _MainButtons[i].setText(_MainButtonTitles[i]);
    [/quote]

    这句代码错误了,_MainButtons[i] 是null,当然报空指针错误了

    点赞 评论

相关推荐