/*
这只是程序的一部分,对事件的处理我并没有做,因为在产生frm的时候老是不能将其它的组件add进来。我已经查了很久了,但却没有能够得出结果。这个NullPointerException错误真的弄得我很苦恼,希望各位高手指点一下,帮忙查出错误到底出在哪里,小弟感激不尽....(请不要笑话,我学java没多长时间。虽然我很菜,但我从来没有放弃过努力)
*//*--------
*用于生成一个窗口并处理各种事件 NullPointerException
*/
import java.awt.*;
import java.awt.event.*;
class CreatWindow extends Frame {
static Frame frm=new Frame("猜数小游戏"); //实例化一个窗口
Panel enbase = new Panel(new GridLayout(4, 3));// 创建一个四行三列的面板
TextArea txt = new TextArea("", 10, 14, TextArea.SCROLLBARS_VERTICAL_ONLY);//创建一个文本框
Label outbase = new Label(" ", Label.RIGHT); // 创建一个供响应并输出用户按键的面板
Button btn[] = new Button[12]; //初始化输入键盘
public void window() {
frm.setSize(400, 200);// 设置窗口大小
frm.setVisible(true);// 设置窗口可见
frm.setResizable(false);// 设置不可改变大小
frm.setLayout(null);//决定人工排列
frm.setBackground(Color.yellow);//页面背景颜色
Mouselis mlis = new MouseLis(); //创建MouseLis类的对象
outbase.setBounds(20, 40, 120, 20); //设置输出面板的位置和大小
outbase.setBackground(new Color(240, 220, 190));//设置输出面板的背景颜色
enbase.setBounds(20, 80, 120, 90);//设置输入面板的位置和大小
for (int i = 1; i <= 9; i++) {
btn[i - 1] = new Button(Integer.toString(i));
enbase.add(btn[i]);
}
btn[10] = new Button("0");
enbase.add(btn[9]);
btn[10] = new Button("退格");
enbase.add(btn[10]);
btn[11] = new Button("确定");
enbase.add(btn[11]);
txt.setBounds(150, 40, 200, 130);//设置文本框的位置和大小
txt.setEditable(false);// 设置文本不可编辑
frm.add(enbase);
frm.add(outbase);
frm.add(txt);
}
class Mouselis extends MouseAdapter{
//事件聆听处理
}
}
public class TheWindow{
public static void main(String args[]) {
CreatWindow win = new CreatWindow();
win.window();
}
}
这只是程序的一部分,对事件的处理我并没有做,因为在产生frm的时候老是不能将其它的组件add进来。我已经查了很久了,但却没有能够得出结果。这个NullPointerException错误真的弄得我很苦恼,希望各位高手指点一下,帮忙查出错误到底出在哪里,小弟感激不尽....(请不要笑话,我学java没多长时间。虽然我很菜,但我从来没有放弃过努力)
*//*--------
*用于生成一个窗口并处理各种事件 NullPointerException
*/
import java.awt.*;
import java.awt.event.*;
class CreatWindow extends Frame {
static Frame frm=new Frame("猜数小游戏"); //实例化一个窗口
Panel enbase = new Panel(new GridLayout(4, 3));// 创建一个四行三列的面板
TextArea txt = new TextArea("", 10, 14, TextArea.SCROLLBARS_VERTICAL_ONLY);//创建一个文本框
Label outbase = new Label(" ", Label.RIGHT); // 创建一个供响应并输出用户按键的面板
Button btn[] = new Button[12]; //初始化输入键盘
public void window() {
frm.setSize(400, 200);// 设置窗口大小
frm.setVisible(true);// 设置窗口可见
frm.setResizable(false);// 设置不可改变大小
frm.setLayout(null);//决定人工排列
frm.setBackground(Color.yellow);//页面背景颜色
Mouselis mlis = new MouseLis(); //创建MouseLis类的对象
outbase.setBounds(20, 40, 120, 20); //设置输出面板的位置和大小
outbase.setBackground(new Color(240, 220, 190));//设置输出面板的背景颜色
enbase.setBounds(20, 80, 120, 90);//设置输入面板的位置和大小
for (int i = 1; i <= 9; i++) {
btn[i - 1] = new Button(Integer.toString(i));
enbase.add(btn[i]);
}
btn[10] = new Button("0");
enbase.add(btn[9]);
btn[10] = new Button("退格");
enbase.add(btn[10]);
btn[11] = new Button("确定");
enbase.add(btn[11]);
txt.setBounds(150, 40, 200, 130);//设置文本框的位置和大小
txt.setEditable(false);// 设置文本不可编辑
frm.add(enbase);
frm.add(outbase);
frm.add(txt);
}
class Mouselis extends MouseAdapter{
//事件聆听处理
}
}
public class TheWindow{
public static void main(String args[]) {
CreatWindow win = new CreatWindow();
win.window();
}
}
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.MouseAdapter;public final class TheWindow {
public static void main(String args[]) {
CreatWindow win = new CreatWindow();
win.window();
}
}class CreatWindow extends Frame { private static final long serialVersionUID = 1L; static Frame frm = new Frame("猜数小游戏"); // 实例化一个窗口 Panel enbase = new Panel(new GridLayout(4, 3));// 创建一个四行三列的面板 TextArea txt = new TextArea("", 10, 14, TextArea.SCROLLBARS_VERTICAL_ONLY);// 创建一个文本框 Label outbase = new Label(" ", Label.RIGHT); // 创建一个供响应并输出用户按键的面板 Button btn[] = new Button[12]; // 初始化输入键盘 public void window() { frm.setSize(400, 200);// 设置窗口大小
frm.setVisible(true);// 设置窗口可见
frm.setResizable(false);// 设置不可改变大小
frm.setLayout(null);// 决定人工排列
frm.setBackground(Color.yellow);// 页面背景颜色 // Mouselis mlis = new MouseLis(); // 创建MouseLis类的对象 outbase.setBounds(20, 40, 120, 20); // 设置输出面板的位置和大小
outbase.setBackground(new Color(240, 220, 190));// 设置输出面板的背景颜色 enbase.setBounds(20, 80, 120, 90);// 设置输入面板的位置和大小 for (int i = 1; i <= 9; i++) {
btn[i - 1] = new Button(Integer.toString(i));
enbase.add(btn[i - 1]);
}
btn[9] = new Button("0");
enbase.add(btn[9]);
btn[10] = new Button("退格");
enbase.add(btn[10]);
btn[11] = new Button("确定");
enbase.add(btn[11]); txt.setBounds(150, 40, 200, 130);// 设置文本框的位置和大小
txt.setEditable(false);// 设置文本不可编辑 frm.add(enbase);
frm.add(outbase);
frm.add(txt);
} class Mouselis extends MouseAdapter {
// 事件聆听处理
}
}
习惯不好啊。。
for (int i = 1; i <= 9; i++) {
btn[i - 1] = new Button(Integer.toString(i));
enbase.add(btn[i]);
} //改成如下:for (int i = 0; i < btn.length - 3; i++) {
Button button = new Button(Integer.toString(i));
btn[i] = button;
enbase.add(button );
} 以上仅供参考。