/*
这个是原始的QQ登录界面
http://test.hunanit.net/1002/logo.gif
这个是我执行代码出现错误的界面
http://test.hunanit.net/1002/logo1.gif
这个是我截的图
http://test.hunanit.net/1002/logo51.gif
*/import javax.swing.*;
import java.awt.*;public class QQLogin
{
static JFrame frameObj;
static JPanel panelObj;

GridBagLayout layoutObj;
GridBagConstraints cstObj;

JLabel logoimagePosition;

JLabel labelQQ;
JLabel labelPW;
JLabel labelAuto;
JLabel labelHide;

JButton button1;
JButton button2;
JButton button3;
JButton button4;

JTextField textQQ;
JTextField textPW;

JCheckBox checkAuto;
JCheckBox checkHide;

public QQLogin()
{
layoutObj = new GridBagLayout();
cstObj = new GridBagConstraints();
panelObj = new JPanel();
frameObj.getContentPane().add(panelObj);
panelObj.setLayout(layoutObj);

Icon logoImage = new ImageIcon("c:\\logo.gif");
logoimagePosition = new JLabel(logoImage);
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 0;
cstObj.gridy = 0;
layoutObj.setConstraints(logoimagePosition,cstObj);
panelObj.add(logoimagePosition);

labelQQ = new JLabel("QQ号码");
cstObj.anchor = GridBagConstraints.EAST;
cstObj.gridx = 0;
cstObj.gridy = 1;
cstObj.fill = GridBagConstraints.BOTH;
layoutObj.setConstraints(labelQQ,cstObj);
panelObj.add(labelQQ);

textQQ = new JTextField(10);
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 1;
cstObj.gridy = 1;
cstObj.fill = GridBagConstraints.BOTH;
layoutObj.setConstraints(textQQ,cstObj);
panelObj.add(textQQ);

button1 = new JButton("申请号码");
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 5;
cstObj.gridy = 1;
cstObj.fill = GridBagConstraints.BOTH;
layoutObj.setConstraints(button1,cstObj);
panelObj.add(button1);

labelPW = new JLabel("QQ密码");
cstObj.anchor = GridBagConstraints.EAST;
cstObj.gridx = 0;
cstObj.gridy = 2;
cstObj.fill = GridBagConstraints.BOTH;
layoutObj.setConstraints(labelPW,cstObj);
panelObj.add(labelPW);

textPW = new JTextField(10);
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 1;
cstObj.gridy = 2;
cstObj.fill = GridBagConstraints.BOTH;
layoutObj.setConstraints(textPW,cstObj);
panelObj.add(textPW);

checkAuto = new JCheckBox();
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 1;
cstObj.gridy = 3;
cstObj.fill = GridBagConstraints.BOTH;
panelObj.add(checkAuto);

labelAuto = new JLabel("自动登录");
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 2;
cstObj.gridy = 3;
cstObj.fill = GridBagConstraints.BOTH;
panelObj.add(labelAuto);

checkHide = new JCheckBox();
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 3;
cstObj.gridy = 3;
cstObj.fill = GridBagConstraints.BOTH;
panelObj.add(checkHide);

labelHide = new JLabel("隐身登录");
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 4;
cstObj.gridy = 3;
cstObj.fill = GridBagConstraints.BOTH;
panelObj.add(labelHide);

button2 = new JButton("高级设置");
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 0;
cstObj.gridy = 4;
cstObj.fill = GridBagConstraints.BOTH;
panelObj.add(button2);

button3 = new JButton("登录");
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 3;
cstObj.gridy = 4;
cstObj.fill = GridBagConstraints.BOTH;
panelObj.add(button3);

button4 = new JButton("取消");
cstObj.anchor = GridBagConstraints.CENTER;
cstObj.gridx = 5;
cstObj.gridy = 4;
cstObj.fill = GridBagConstraints.BOTH;
panelObj.add(button4);
}

public static void main(String args[])
{
frameObj = new JFrame("QQ用户登录");
QQLogin f1 = new QQLogin();

frameObj.setSize(330,238);
frameObj.setVisible(true);
}
}

解决方案 »

  1.   

    /*
    我又有所改进,设置了GRID的宽度..还是不行,大家帮帮忙吧.
    这个是原始的QQ登录界面
    http://test.hunanit.net/1002/logo.gif
    这个是我执行代码出现错误的界面
    http://test.hunanit.net/1002/logo1.gif
    这个是我截的图
    http://test.hunanit.net/1002/logo51.gif
    */
    import javax.swing.*;
    import java.awt.*;public class QQLogin
    {
    static JFrame frameObj;
    static JPanel panelObj;

    GridBagLayout layoutObj;
    GridBagConstraints cstObj;

    JLabel logoimagePosition;

    JLabel labelQQ;
    JLabel labelPW;
    JLabel labelAuto;
    JLabel labelHide;

    JButton button1;
    JButton button2;
    JButton button3;
    JButton button4;

    JTextField textQQ;
    JTextField textPW;

    JCheckBox checkAuto;
    JCheckBox checkHide;

    public QQLogin()
    {
    layoutObj = new GridBagLayout();
    cstObj = new GridBagConstraints();
    panelObj = new JPanel();
    frameObj.getContentPane().add(panelObj);
    panelObj.setLayout(layoutObj);

    Icon logoImage = new ImageIcon("c:\\logo51.gif");
    logoimagePosition = new JLabel(logoImage);
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 0;
    cstObj.gridy = 0;
    cstObj.gridwidth = 4;
    layoutObj.setConstraints(logoimagePosition,cstObj);
    panelObj.add(logoimagePosition);

    labelQQ = new JLabel("QQ号码");
    cstObj.anchor = GridBagConstraints.EAST;
    cstObj.gridx = 0;
    cstObj.gridy = 1;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(labelQQ,cstObj);
    panelObj.add(labelQQ);

    textQQ = new JTextField(10);
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 1;
    cstObj.gridy = 1;
    cstObj.gridwidth = 2;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(textQQ,cstObj);
    panelObj.add(textQQ);

    button1 = new JButton("申请号码");
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 5;
    cstObj.gridy = 1;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(button1,cstObj);
    panelObj.add(button1);

    labelPW = new JLabel("QQ密码");
    cstObj.anchor = GridBagConstraints.EAST;
    cstObj.gridx = 0;
    cstObj.gridy = 2;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(labelPW,cstObj);
    panelObj.add(labelPW);

    textPW = new JTextField(10);
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 1;
    cstObj.gridy = 2;
    cstObj.gridwidth = 2;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(textPW,cstObj);
    panelObj.add(textPW);

    checkAuto = new JCheckBox();
    labelAuto = new JLabel("自动登录");
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 1;
    cstObj.gridy = 3;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    panelObj.add(checkAuto);
    panelObj.add(labelAuto);

    checkHide = new JCheckBox();
    labelHide = new JLabel("隐身登录");
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 2;
    cstObj.gridy = 3;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    panelObj.add(checkHide);
    panelObj.add(labelHide);

    button2 = new JButton("高级设置");
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 0;
    cstObj.gridy = 4;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    panelObj.add(button2);

    button3 = new JButton("登录");
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 2;
    cstObj.gridy = 4;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    panelObj.add(button3);

    button4 = new JButton("取消");
    cstObj.gridwidth = 1;
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 3;
    cstObj.gridy = 4;
    cstObj.fill = GridBagConstraints.BOTH;
    panelObj.add(button4);
    }

    public static void main(String args[])
    {
    frameObj = new JFrame("QQ用户登录");
    QQLogin f1 = new QQLogin();

    frameObj.setSize(330,238);
    frameObj.setVisible(true);
    }
    }
      

  2.   

    /*
    问题基本解决了,只是不能实现一个网格放两个组件,我想在一个网格放一个checkbox和一个label文字组件,按我写的方法,文字组件并不显示,为什么呢
    */
    import javax.swing.*;
    import java.awt.*;public class QQLogin
    {
    static JFrame frameObj;
    static JPanel panelObj;

    GridBagLayout layoutObj;
    GridBagConstraints cstObj;

    JLabel logoimagePosition;

    JLabel labelQQ;
    JLabel labelPW;
    JLabel labelAuto;
    JLabel labelHide;

    JButton button1;
    JButton button2;
    JButton button3;
    JButton button4;

    JTextField textQQ;
    JTextField textPW;

    JCheckBox checkAuto;
    JCheckBox checkHide;

    public QQLogin()
    {
    layoutObj = new GridBagLayout();
    cstObj = new GridBagConstraints();
    panelObj = new JPanel();
    frameObj.getContentPane().add(panelObj);
    panelObj.setLayout(layoutObj);

    Icon logoImage = new ImageIcon("c:\\logo51.gif");
    logoimagePosition = new JLabel(logoImage);
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 0;
    cstObj.gridy = 0;
    cstObj.gridwidth = 4;
    layoutObj.setConstraints(logoimagePosition,cstObj);
    panelObj.add(logoimagePosition);

    labelQQ = new JLabel("QQ号码");
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 0;
    cstObj.gridy = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(labelQQ,cstObj);
    panelObj.add(labelQQ);

    textQQ = new JTextField(15);
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 1;
    cstObj.gridy = 1;
    cstObj.gridwidth = 2;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(textQQ,cstObj);
    panelObj.add(textQQ);

    button1 = new JButton("申请号码");
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 3;
    cstObj.gridy = 1;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(button1,cstObj);
    panelObj.add(button1);

    labelPW = new JLabel("QQ密码");
    cstObj.anchor = GridBagConstraints.CENTER;
    cstObj.gridx = 0;
    cstObj.gridy = 2;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(labelPW,cstObj);
    panelObj.add(labelPW);

    textPW = new JTextField(15);
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 1;
    cstObj.gridy = 2;
    cstObj.gridwidth = 2;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(textPW,cstObj);
    panelObj.add(textPW);

    checkAuto = new JCheckBox();
    labelAuto = new JLabel("自动登录");
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 1;
    cstObj.gridy = 3;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(checkAuto,cstObj);
    layoutObj.setConstraints(labelAuto,cstObj);
    panelObj.add(checkAuto);
    panelObj.add(labelAuto);

    checkHide = new JCheckBox();
    labelHide = new JLabel("隐身登录");
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 2;
    cstObj.gridy = 3;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(checkHide,cstObj);
    layoutObj.setConstraints(labelHide,cstObj);
    panelObj.add(checkHide);
    panelObj.add(labelHide);

    button2 = new JButton("高级设置");
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 0;
    cstObj.gridy = 4;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(button2,cstObj);
    panelObj.add(button2);

    button3 = new JButton("登录");
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 2;
    cstObj.gridy = 4;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(button3,cstObj);
    panelObj.add(button3);

    button4 = new JButton("取消");
    cstObj.gridwidth = 1;
    cstObj.anchor = GridBagConstraints.NORTHWEST;
    cstObj.gridx = 3;
    cstObj.gridy = 4;
    cstObj.gridwidth = 1;
    cstObj.fill = GridBagConstraints.BOTH;
    layoutObj.setConstraints(button4,cstObj);
    panelObj.add(button4);
    }

    public static void main(String args[])
    {
    frameObj = new JFrame("QQ用户登录");
    QQLogin f1 = new QQLogin();

    frameObj.setSize(330,238);
    frameObj.setVisible(true);
    }
    }