标题:GUI问题
只看楼主
w5644266
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2007-4-4
 问题点数:0 回复次数:7 
GUI问题

我要达到像附件中的样子,可总是有问题。我用的是网格包。我也不知道那里出问题了。怪怪的,希望有经验的兄弟帮忙看下。顺便告诉我些知识那更好。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Register
{
private JPanel panel;
private GridBagConstraints gc;
private JTextField userNumber;
private JTextField userNikeName;
private JTextField password;
private JTextField name;
private JTextField age;
public Register()
{
userNumber=new JTextField(15);
userNikeName=new JTextField(20);
password=new JTextField(20);
name=new JTextField(10);
age=new JTextField(8);
JFrame frame1=new JFrame("J-QQ用户注册");
frame1.show(true);
panel=new JPanel(new GridBagLayout());
gc=new GridBagConstraints();

gc.fill=GridBagConstraints.VERTICAL;
addComponent(new JLabel("用户号码:"),0,0,3,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(userNumber,0,1,4,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(new JLabel("用户昵称:"),2,0,3,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(userNikeName,2,1,4,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(new JLabel("用户口令:"),4,0,3,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(password,4,1,4,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(new JLabel("姓名:"),6,0,2,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(name,6,1,3,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(new JLabel("年龄:"),6,2,2,1);

gc.fill=GridBagConstraints.HORIZONTAL;
addComponent(age,6,3,2,1);

frame1.setSize(415,500);
frame1.add(panel);
}


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

gc.gridx = col;
gc.gridy = row;

gc.gridwidth = ncol;
gc.gridheight = nrow;

panel.add(c,gc);

}
public static void main(String[] args)
{
Register register=new Register();

}

}


[此贴子已经被作者于2007-8-26 0:30:06编辑过]

搜索更多相关主题的帖子: GUI 
2007-08-26 00:23
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
得分:0 
你看看,人家的的窗口是不可变大小的,他应该是不用布局管理器,直接设置位置。。LZ也可以直接设置位置。
2007-08-26 10:51
Lovedandan
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:2
注 册:2007-5-17
得分:0 
回复:(w5644266)GUI问题
用netbeans等ide工具,把布局管理器设为null,直接把组件拖到图中位置即可

永远,唯一,巴黎
2007-08-26 12:31
w5644266
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2007-4-4
得分:0 
回复:(狂放不羁)你看看,人家的的窗口是不可变大小...
如何设置位置。。
2007-08-26 21:22
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
得分:0 
如果用IDE可以直接托,如果自己写的话,就应该首先setLayout(null),然后对于每个组件setBounds(x,y,width,height).
2007-08-26 22:10
w5644266
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2007-4-4
得分:0 
回复:(狂放不羁)如果用IDE可以直接托,如果自己写的...
我是用代码写的,你说的工具我都没有学过。
panel.add(new JLabel("用户号码").setBounds(0,0,3,1));
panel.add(new JLabel("用户昵称").setBounds(0,1,3,1));
可是却出现了这样的错误
C:\Documents and Settings\Simon\桌面\Register.java:26: 此处不允许使用 "void" 类型
panel.add(new JLabel("用户号码").setBounds(0,0,3,1));
^
C:\Documents and Settings\Simon\桌面\Register.java:27: 此处不允许使用 "void" 类型
panel.add(new JLabel("用户昵称").setBounds(0,1,3,1));
^
注意:C:\Documents and Settings\Simon\桌面\Register.java 使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
2007-08-27 08:52
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
得分:0 
add()方法加的是组件,你加的void,怎么可以?
2007-08-27 09:14
w5644266
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2007-4-4
得分:0 
回复:(狂放不羁)add()方法加的是组件,你加的void,...

你帮忙看看这段代码出了说明问题!这么就只有一个窗体!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Register
{
private JPanel panel;
private JTextField userNumber;
private JTextField userNikeName;

private JTextField password;
private JTextField name;
private JTextField age;
private JTextArea explain;//个人说明
private JLabel jUserNameNumber;
private JLabel jUserNikeName;
public Register()
{
userNumber=new JTextField(15);
userNikeName=new JTextField(20);
password=new JTextField(20);
name=new JTextField(10);
age=new JTextField(8);
jUserNameNumber=new JLabel("用户号码");
jUserNikeName=new JLabel("用户昵称");
JFrame frame1=new JFrame("J-QQ用户注册");
panel=new JPanel();
panel.setLayout(null);


panel.add(jUserNameNumber);
panel.add(jUserNikeName);

// frame1.add(new JLabel("口令"));
// frame1.add(new JLabel("姓名"));
// frame1.add(new JLabel("年龄"));
// frame1.add(new JLabel("性别"));
// frame1.add(new JLabel("生肖"));
// frame1.add(new JLabel("血型"));
// frame1.add(new JLabel("星座"));
// frame1.add(new JLabel("个人说明"));

jUserNameNumber.setBounds(new Rectangle(0,0,3,1));
jUserNikeName.setBounds(new Rectangle(0,1,3,1));

// new JLabel("口令").setBounds();
// new JLabel("姓名").setBounds();
// new JLabel("年龄").setBounds();
// new JLabel("性别").setBounds();
// new JLabel("生肖").setBounds();
// new JLabel("血型").setBounds();
// new JLabel("星座").setBounds();
// new JLabel("个人说明").setBounds();

frame1.show(true);
frame1.setSize(415,500);
frame1.add(panel);
}



public static void main(String[] args)
{
Register register=new Register();

}

}

2007-08-27 19:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-165453-1-1.html




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

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