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

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条回答 默认 最新

  • 勤劳的小猿 2010-12-29 13:47
    关注

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

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

报告相同问题?

悬赏问题

  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn