nullpointerexception问题的解决

jacksily 2007-11-13 09:15:45
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MyApp{
public static void main(String[] args)
{
Gui gui=new Gui("期中作业");
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setVisible(true);
}
}


class Gui extends JFrame
{

private JPanel p_main; //主面板
private JPanel p_left; //左子面板
private JPanel p_right;//右子面板
private JPanel p_ltitle;//左子面板.标题子面板
private JPanel p_lcon; //左子面板.数据控制子面板板
private JPanel p_loper; //左子面板.操作子面板
private JLabel label[];//标签
private JTextField texf[];//文本框
private JButton b_oper[];//控制按钮
private JCheckBox check[];//复选框

public Gui(String title)
{
setTitle(title);//设置标题
//获得屏幕的相关尺寸
Toolkit tk=Toolkit.getDefaultToolkit();
Dimension screenSize=tk.getScreenSize();
int screenHeight=screenSize.height;
int screenWidth=screenSize.width;
//设置框架的尺寸为屏幕一半,大小可调
setSize(screenWidth/2,screenHeight/2);
setResizable(true);

//面板初始化
p_main=new JPanel();
p_left=new JPanel();
p_right=new JPanel();
p_ltitle=new JPanel();
p_lcon=new JPanel();
p_loper=new JPanel();
//面板布局
p_main.setLayout(new BoxLayout(p_main,BoxLayout.X_AXIS));
p_left.setLayout(new BoxLayout(p_left,BoxLayout.Y_AXIS));
p_right.setLayout(new BoxLayout(p_right,BoxLayout.Y_AXIS));
p_ltitle.setLayout(new BoxLayout(p_ltitle,BoxLayout.X_AXIS));
p_lcon.setLayout(new GridLayout(4,6));
p_loper.setLayout(new GridLayout(1,4));

//标签初始化 就是下面的初始化有问题,把下面全部屏蔽就没事,
//请各位大虾看看是什么问题,这是我的java期中作业

label[0]=new JLabel("品牌");
label[1]=new JLabel("颜色");
label[2]=new JLabel("CPU型号");
label[3]=new JLabel("内存容量");
label[4]=new JLabel("价格");
label[5]=new JLabel("工作状态");
label[6]=new JLabel("机箱长度");
label[7]=new JLabel("机箱宽度");
label[8]=new JLabel("机箱厚度");
label[9]=new JLabel("重量");
label[10]=new JLabel("电池状态");
//label[11]=new JLabel("JAVA期中小程序");

//文本框初始化
for(int i=0;i<11;i++)
texf[i]=new JTextField();

//按钮初始化
b_oper[0]=new JButton("新建");
b_oper[1]=new JButton("更新");
b_oper[2]=new JButton("保存");
b_oper[3]=new JButton("删除");
b_oper[4]=new JButton("退出");
b_oper[5]=new JButton("第一条");
b_oper[6]=new JButton("前一条");
b_oper[7]=new JButton("后一条");
b_oper[8]=new JButton("最后一条");

//复选框初始化
check[0]=new JCheckBox("普通电脑");
check[1]=new JCheckBox("笔记本电脑");

// 将按钮放入p_right面板
p_right.add(check[0]);
p_right.add(check[1]);
for(int i=0;i<5;i++) p_right.add(b_oper[i]);

for(int i=5;i<9;i++) p_loper.add(b_oper[i]);//将按钮放入p_loper面板

//将标题按钮交替放入p_lcon面板
for(int i=0;i<11;i++)
{
if(i%2==0)p_lcon.add(label[i]);
else p_lcon.add(texf[i]);
}

p_ltitle.add(label[11]);//将标题放入p_ltitle面板
}
}
...全文
90 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftgreat 2007-11-13
  • 打赏
  • 举报
回复
mark
zdjray 2007-11-13
  • 打赏
  • 举报
回复
请学会举一反三
还要改这么几处
label = new JLabel[12]; //标签
texf = new JTextField[11];
b_oper = new JButton[9];
check = new JCheckBox[2];

label[11] = new JLabel("JAVA期中小程序 ");
这一行的注释去掉

还有你最后要把panel都加到界面中去

/*
* MyApp.java
*
* Created on 2007-11-13, 22:36:40
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/


/**
*
* @author zdjray
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class MyApp {

public static void main(String[] args) {
Gui gui = new Gui("期中作业 ");
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setVisible(true);
}
}


class Gui extends JFrame {

private JPanel p_main; //主面板
private JPanel p_left; //左子面板
private JPanel p_right; //右子面板
private JPanel p_ltitle; //左子面板.标题子面板
private JPanel p_lcon; //左子面板.数据控制子面板板
private JPanel p_loper; //左子面板.操作子面板
private JLabel[] label; //标签
private JTextField[] texf; //文本框
private JButton[] b_oper; //控制按钮
private JCheckBox[] check; //复选框

public Gui(String title) {
setTitle(title); //设置标题
//获得屏幕的相关尺寸
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
//设置框架的尺寸为屏幕一半,大小可调
setSize(screenWidth / 2, screenHeight / 2);
setResizable(true);

//面板初始化
p_main = new JPanel();
p_left = new JPanel();
p_right = new JPanel();
p_ltitle = new JPanel();
p_lcon = new JPanel();
p_loper = new JPanel();
//面板布局
p_main.setLayout(new BoxLayout(p_main, BoxLayout.X_AXIS));
p_left.setLayout(new BoxLayout(p_left, BoxLayout.Y_AXIS));
p_right.setLayout(new BoxLayout(p_right, BoxLayout.Y_AXIS));
p_ltitle.setLayout(new BoxLayout(p_ltitle, BoxLayout.X_AXIS));
p_lcon.setLayout(new GridLayout(4, 6));
p_loper.setLayout(new GridLayout(1, 4));

label = new JLabel[12]; //标签
texf = new JTextField[11];
b_oper = new JButton[9];
check = new JCheckBox[2];

//标签初始化 就是下面的初始化有问题,把下面全部屏蔽就没事,
//请各位大虾看看是什么问题,这是我的java期中作业
label[0] = new JLabel("品牌 ");
label[1] = new JLabel("颜色 ");
label[2] = new JLabel("CPU型号 ");
label[3] = new JLabel("内存容量 ");
label[4] = new JLabel("价格 ");
label[5] = new JLabel("工作状态 ");
label[6] = new JLabel("机箱长度 ");
label[7] = new JLabel("机箱宽度 ");
label[8] = new JLabel("机箱厚度 ");
label[9] = new JLabel("重量 ");
label[10] = new JLabel("电池状态 ");
label[11] = new JLabel("JAVA期中小程序 ");
//文本框初始化
for (int i = 0; i < 11; i++) {
texf[i] = new JTextField();
}
//按钮初始化
b_oper[0] = new JButton("新建 ");
b_oper[1] = new JButton("更新 ");
b_oper[2] = new JButton("保存 ");
b_oper[3] = new JButton("删除 ");
b_oper[4] = new JButton("退出 ");
b_oper[5] = new JButton("第一条 ");
b_oper[6] = new JButton("前一条 ");
b_oper[7] = new JButton("后一条 ");
b_oper[8] = new JButton("最后一条 ");

//复选框初始化
check[0] = new JCheckBox("普通电脑 ");
check[1] = new JCheckBox("笔记本电脑 ");

// 将按钮放入p_right面板
p_right.add(check[0]);
p_right.add(check[1]);
for (int i = 0; i < 5; i++) {
p_right.add(b_oper[i]);
}
for (int i = 5; i < 9; i++) {
p_loper.add(b_oper[i]); //将按钮放入p_loper面板
}
//将标题按钮交替放入p_lcon面板
for (int i = 0; i < 11; i++) {
if (i % 2 == 0) {
p_lcon.add(label[i]);
} else {
p_lcon.add(texf[i]);
}
}

p_ltitle.add(label[11]); //将标题放入p_ltitle面板
}
}
jacksily 2007-11-13
  • 打赏
  • 举报
回复
非常感谢二楼的,我改了你所说的地方,可是问题依然存在,请再指教.
网络咖啡 2007-11-13
  • 打赏
  • 举报
回复
private JLabel label[] = new JLabel[11];//标签

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧