| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1468 人关注过本帖
标题:关于gridbag网格包布局的问题
只看楼主 加入收藏
极速尽
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-8-13
收藏
 问题点数:0 回复次数:2 
关于gridbag网格包布局的问题

想做一个自动选号的小东西。
但是在做界面的时候,有问题,编译过了,但是一运行就提示错误
java.lang.NullPointerException
at LotteryDrawing.addComponent(LotteryDrawing.java:53)
at LotteryDrawing.<init>(LotteryDrawing.java:42)
at LotteryDrawing.main(LotteryDrawing.java:57)
Exception in thread "main"
Java Result: 1
我用的是NetBeans
下边是我的代码,希望有明白的人指点一下。谢谢~
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class LotteryDrawing extends JFrame{
JTextField NumText;
JTextField ChoiceText;
JTextField ResultText;
JButton BtnResult;
JLabel NumLbl;
JLabel ChoiceLbl;
JLabel ResultLbl;
GridBagLayout mainframe;
GridBagConstraints gbc;
JPanel container;
public LotteryDrawing (String title){
super(title);
//设置容器布局
Container mainframe = getContentPane();
JPanel container = new JPanel();
container.setLayout(new GridBagLayout());
mainframe.add(container);

//创建辅助类
gbc = new GridBagConstraints();


//初始化标签。
NumLbl = new JLabel("Number you need draw");
ChoiceLbl = new JLabel("Nuber you can draw");
ResultLbl = new JLabel("Result");

//初始化文本域。
NumText = new JTextField("Enter the number.");
ChoiceText = new JTextField("Enter the number.");
ResultText = new JTextField();

//初始化按钮
BtnResult = new JButton("Result");

//相容器内添加组件
gbc.fill = GridBagConstraints.HORIZONTAL;
addComponent(NumLbl,0,0,1,1);

}
public void addComponent(Component c,int row,int col,int nrow,int ncol){

gbc.gridx = col;
gbc.gridy = row;

gbc.gridwidth = ncol;
gbc.gridheight = nrow;

mainframe.setConstraints(c,gbc);
add(c);
}
public static void main(String[] args){
LotteryDrawing appLottery = new LotteryDrawing("彩票中奖率");

appLottery.setSize(300,200);
appLottery.setVisible(true);
appLottery.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}

搜索更多相关主题的帖子: 网格 java gridbag import awt 
2006-04-11 16:06
晓狐狸
Rank: 2
等 级:新手上路
威 望:3
帖 子:95
专家分:0
注 册:2006-4-6
收藏
得分:0 
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class LotteryDrawing extends JFrame
{
JTextField NumText;
JTextField ChoiceText;
JTextField ResultText;
JButton BtnResult;
JLabel NumLbl;
JLabel ChoiceLbl;
JLabel ResultLbl;
//JPanel container;你在这个里弄了一个面版结果都没有用 浪费表情啊
GridBagLayout gb;//网格包布局管理器 的名字我改了一下 因为和你的 Container 对象重名了
GridBagConstraints gbc;
Container mainframe;
public LotteryDrawing (String title)
{
super(title);

mainframe = getContentPane();//实例化Container

gb = new GridBagLayout();//实例化网格包布局管理器


gbc = new GridBagConstraints();//实例化建辅助类


mainframe.setLayout(gb);//设置布局管理器


//*************初始化标签******************
NumLbl = new JLabel("Number you need draw");
ChoiceLbl = new JLabel("Nuber you can draw");
ResultLbl = new JLabel("Result");
//*****************************************

//*************初始化文本域****************
NumText = new JTextField("Enter the number.");
ChoiceText = new JTextField("Enter the number.");
ResultText = new JTextField();
//******************************************
BtnResult = new JButton("Result");//初始化按钮

//*************相容器内添加组件*****************
gbc.fill = GridBagConstraints.HORIZONTAL;
addComponent(NumLbl,0,0,1,1);

gbc.fill = GridBagConstraints.HORIZONTAL;
addComponent(NumText,0,1,1,1);

gbc.fill = GridBagConstraints.HORIZONTAL;
addComponent(ChoiceLbl,1,0,1,1);

gbc.fill = GridBagConstraints.HORIZONTAL;
addComponent(ChoiceText,1,1,1,1);

gbc.fill = GridBagConstraints.HORIZONTAL;
addComponent(ResultLbl,2,0,1,1);

gbc.fill = GridBagConstraints.HORIZONTAL;
addComponent(ResultText,2,1,1,1);

gbc.fill = GridBagConstraints.HORIZONTAL;
addComponent(BtnResult,3,0,1,2);
//***********************************************

}
public void addComponent(Component c,int row,int col,int nrow,int ncol)
{

gbc.gridx = col;
gbc.gridy = row;

gbc.gridwidth = ncol;
gbc.gridheight = nrow;

gb.setConstraints(c,gbc);
mainframe.add(c);//你这个地方写错了,我们是要把组件添加到Container对象中
//不是添加到JFmran窗体中,JFrame窗体是不可以直接在上面添加组件的拉
}
public static void main(String[] args)
{
LotteryDrawing appLottery = new LotteryDrawing("彩票中奖率");//实例化窗体
appLottery.setSize(300,200);
appLottery.setVisible(true);
appLottery.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}

[此贴子已经被作者于2006-4-11 19:46:25编辑过]


2006-04-11 19:45
极速尽
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-8-13
收藏
得分:0 
谢谢狐狸大……

等俺将来出名了,俺出书一定写上你的名啊……

2006-04-12 00:08
快速回复:关于gridbag网格包布局的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025438 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved