java中网格包布局代码哪里出错?

packageab;importjavax.swing.*;importjava.awt.*;publicclassGridBagLayoutDemoextendsJFr... package ab;
import javax.swing.*;
import java.awt.*;
public class GridBagLayoutDemo extends JFrame{
private GridBagLayout gbLayout =new GridBagLayout();
private GridBagConstraints constraints=new GridBagConstraints();
private JLabel lbUser,lbPassword;
private JTextField tfUser,tfPassword;
private JButton btnLog;
private Container container;
public GridBagLayoutDemo(){
super("网格包布局");
this.setSize(300,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void setConstraints(GridBagConstraints gbc,int row,int column,int numRows,int numColumns,int Weightx,int Weighty){
gbc.gridx=row;
gbc.gridy=column;
gbc.gridwidth=numRows;
gbc.gridheight=numColumns;
gbc.weightx=Weightx;
gbc.weighty=Weighty;
}
public void setLyaout(){
container=this.getContentPane();
container.setLayout(gbLayout);
//添加用户名标签
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
setConstraints(constraints,0,0,1,1,0,0);
lbUser=new JLabel("用户名");
gbLayout.setConstraints(tfUser,constraints);
container.add(tfUser);
//添加用户名文本框
constraints.fill=GridBagConstraints.HORIZONTAL;
setConstraints(constraints,1,0,1,1,100,100);
tfUser=new JTextField();
gbLayout.setConstraints(tfUser,constraints);
container.add(tfUser);
//添加密码标签
constraints.fill=GridBagConstraints.NONE;
setConstraints(constraints,0,1,1,1,0,0);
lbPassword=new JLabel("密码");
gbLayout.setConstraints(lbPassword,constraints);
container.add(lbPassword);
//添加密码文本框
constraints.fill=GridBagConstraints.HORIZONTAL;
setConstraints(constraints,1,1,1,1,100,100);
tfPassword=new JTextField();
gbLayout.setConstraints(tfPassword,constraints);
container.add(tfPassword);
//添加登录按钮
constraints.fill=GridBagConstraints.CENTER;
setConstraints(constraints,0,2,2,1,0,0);
btnLog=new JButton("登录");
gbLayout.setConstraints(btnLog,constraints);
container.add(btnLog);

}
public static void main(String[] args) {
GridBagLayoutDemo frame=new GridBagLayoutDemo();
frame.setLayout();
frame.show();
}

}
这个是书上的例题,我照抄下来,可是有错误。各位能不能帮我看下错误在哪?
展开
 我来答
洪秋梵雅GB
2007-08-09 · TA获得超过4875个赞
知道小有建树答主
回答量:901
采纳率:0%
帮助的人:948万
展开全部
写的时候仔细点,setLyaout方法里面有错
lbUser=new JLabel("用户名");
gbLayout.setConstraints(tfUser,constraints);
container.add(tfUser);

你这里把 lbUser 指向了对象,此是的tfUser还没有,而你加的时候确是加的tfUser, 你把 tfUser改过来就好了

import javax.swing.*;
import java.awt.*;

public class GridBagLayoutDemo extends JFrame {
private GridBagLayout gbLayout = new GridBagLayout();

private GridBagConstraints constraints = new GridBagConstraints();

private JLabel lbUser, lbPassword;

private JTextField tfUser, tfPassword;

private JButton btnLog;

private Container container;

public GridBagLayoutDemo() {
super("网格包布局");
this.setSize(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void setConstraints(GridBagConstraints gbc, int row, int column,
int numRows, int numColumns, int Weightx, int Weighty) {
gbc.gridx = row;
gbc.gridy = column;
gbc.gridwidth = numRows;
gbc.gridheight = numColumns;
gbc.weightx = Weightx;
gbc.weighty = Weighty;
}

public void setLyaout() {
container = this.getContentPane();
container.setLayout(gbLayout);
// 添加用户名标签
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
setConstraints(constraints, 0, 0, 1, 1, 0, 0);
lbUser = new JLabel("用户名");
gbLayout.setConstraints(lbUser, constraints);
container.add(lbUser);
// 添加用户名文本框
constraints.fill = GridBagConstraints.HORIZONTAL;
setConstraints(constraints, 1, 0, 1, 1, 100, 100);
tfUser = new JTextField();
gbLayout.setConstraints(tfUser, constraints);
container.add(tfUser);
// 添加密码标签
constraints.fill = GridBagConstraints.NONE;
setConstraints(constraints, 0, 1, 1, 1, 0, 0);
lbPassword = new JLabel("密码");
gbLayout.setConstraints(lbPassword, constraints);
container.add(lbPassword);
// 添加密码文本框
constraints.fill = GridBagConstraints.HORIZONTAL;
setConstraints(constraints, 1, 1, 1, 1, 100, 100);
tfPassword = new JTextField();
gbLayout.setConstraints(tfPassword, constraints);
container.add(tfPassword);
// 添加登录按钮
constraints.fill = GridBagConstraints.CENTER;
setConstraints(constraints, 0, 2, 2, 1, 0, 0);
btnLog = new JButton("登录");
gbLayout.setConstraints(btnLog, constraints);
container.add(btnLog);

}

public static void main(String[] args) {
GridBagLayoutDemo frame = new GridBagLayoutDemo();
frame.setLyaout();
frame.show();
}

}
tao_3000
2007-08-09 · TA获得超过2521个赞
知道小有建树答主
回答量:634
采纳率:0%
帮助的人:501万
展开全部
public void setLyaout(){ 这个名字写错了
应该是 public void setLayout(){

还有 tfUser这个变量没有初始化

下面是我编译通过的 你看看,然后你自己再修改吧
import javax.swing.*;
import java.awt.*;

public class GridBagLayoutDemo extends JFrame {
private GridBagLayout gbLayout = new GridBagLayout();

private GridBagConstraints constraints = new GridBagConstraints();

private JLabel lbUser, lbPassword;

private JTextField tfUser, tfPassword;

private JButton btnLog;

private Container container;

public GridBagLayoutDemo() {
super("网格包布局");
this.setSize(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void setConstraints(GridBagConstraints gbc, int row, int column,
int numRows, int numColumns, int Weightx, int Weighty) {
gbc.gridx = row;
gbc.gridy = column;
gbc.gridwidth = numRows;
gbc.gridheight = numColumns;
gbc.weightx = Weightx;
gbc.weighty = Weighty;
}

public void setLayout() {
container = this.getContentPane();
container.setLayout(gbLayout);
// 添加用户名标签
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
tfUser = new JTextField();
setConstraints(constraints, 0, 0, 1, 1, 0, 0);
lbUser = new JLabel("用户名");
gbLayout.setConstraints(tfUser, constraints);
container.add(tfUser);
// 添加用户名文本框
constraints.fill = GridBagConstraints.HORIZONTAL;
setConstraints(constraints, 1, 0, 1, 1, 100, 100);
tfUser = new JTextField();
gbLayout.setConstraints(tfUser, constraints);
container.add(tfUser);
// 添加密码标签
constraints.fill = GridBagConstraints.NONE;
setConstraints(constraints, 0, 1, 1, 1, 0, 0);
lbPassword = new JLabel("密码");
gbLayout.setConstraints(lbPassword, constraints);
container.add(lbPassword);
// 添加密码文本框
constraints.fill = GridBagConstraints.HORIZONTAL;
setConstraints(constraints, 1, 1, 1, 1, 100, 100);
tfPassword = new JTextField();
gbLayout.setConstraints(tfPassword, constraints);
container.add(tfPassword);
//添加登录按钮
constraints.fill = GridBagConstraints.CENTER;
setConstraints(constraints, 0, 2, 2, 1, 0, 0);
btnLog = new JButton("登录");
gbLayout.setConstraints(btnLog, constraints);
container.add(btnLog);

}

public static void main(String[] args) {
GridBagLayoutDemo frame = new GridBagLayoutDemo();
LayoutManager layoutMgr = null;
frame.setLayout();
frame.show();
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式