import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class NamePass extends JFrame
{
JLabel lm=new JLabel("Name",JLabel.LEFT);
JLabel lp=new JLabel("Password",JLabel.LEFT);
JTextField tm=new JTextField();
JPasswordField tp=new JPasswordField();
JButton ok=new JButton("OK");
public NamePass()
{
super("Username and Password");

GridBagLayout gridbag=new GridBagLayout();
GridBagConstraints constraints=new GridBagConstraints();
JPanel pane=new JPanel();
pane.setLayout(gridbag);

buildConstraints(constraints,0,0,1,1,10,40);
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.EAST;
gridbag.setConstraints(lm,constraints);
pane.add(lm);

buildConstraints(constraints,1,0,1,1,90,0);
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.HORIZONTAL;
gridbag.setConstraints(tm,constraints);
pane.add(tm);

buildConstraints(constraints,0,1,1,1,0,40);
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.EAST;
gridbag.setConstraints(lp,constraints);
pane.add(lp);

buildConstraints(constraints,1,1,1,1,0,0);
constraints.fill=GridBagConstraints.HORIZONTAL;
tp.setEchoChar('*');
gridbag.setConstraints(tp,constraints);
pane.add(tp);

buildConstraints(constraints,0,2,2,1,0,20);
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
gridbag.setConstraints(ok,constraints);
pane.add(ok);
setContentPane(pane);

addWindowListener(new WindowCloser());
setSize(290,110);
setVisible(true);
}
private void buildConstraints(GridBagConstraints gbc,int gx,int gy,int gw,int gh,int wx,int wy)
{
gbc.gridx=gx;
gbc.gridy=gy;
gbc.gridwidth=gw;
gbc.gridheight=gh;
gbc.weightx=wx;
gbc.weighty=wy;
}
private class WindowCloser extends WindowAdapter
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
}
public static void main(String[] args)
{
NamePass n=new NamePass();
}
}
//运行时出现:
/*Exception in thread "main" java.lang.IllegalArgumentException: illegal anchor va
lue
        at java.awt.GridBagLayout.AdjustForGravity(GridBagLayout.java:1315)
        at java.awt.GridBagLayout.adjustForGravity(GridBagLayout.java:1206)
        at java.awt.GridBagLayout.ArrangeGrid(GridBagLayout.java:1539)
        at java.awt.GridBagLayout.arrangeGrid(GridBagLayout.java:1372)
        at java.awt.GridBagLayout.layoutContainer(GridBagLayout.java:712)
        at java.awt.Container.layout(Container.java:1401)
        at java.awt.Container.doLayout(Container.java:1390)
        at java.awt.Container.validateTree(Container.java:1473)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validateTree(Container.java:1480)
        at java.awt.Container.validate(Container.java:1448)
        at java.awt.Window.show(Window.java:515)
        at java.awt.Component.show(Component.java:1300)
        at java.awt.Component.setVisible(Component.java:1253)
        at NamePass.<init>(NamePass.java:53)
        at NamePass.main(NamePass.java:73)*///请各位大虾帮帮小弟!!!

解决方案 »

  1.   

    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    public class NamePass extends JFrame
    {
    JLabel lm=new JLabel("Name",JLabel.LEFT);
    JLabel lp=new JLabel("Password",JLabel.LEFT);
    JTextField tm=new JTextField();
    JPasswordField tp=new JPasswordField();
    JButton ok=new JButton("OK");
    public NamePass()
    {
    super("Username and Password");

    GridBagLayout gridbag=new GridBagLayout();
    GridBagConstraints constraints=new GridBagConstraints();
    JPanel pane=new JPanel();
    pane.setLayout(gridbag);

    buildConstraints(constraints,0,0,1,1,10,40);
    constraints.fill=GridBagConstraints.NONE;
    constraints.anchor=GridBagConstraints.EAST;
    gridbag.setConstraints(lm,constraints);
    pane.add(lm);

    buildConstraints(constraints,1,0,1,1,90,0);
    constraints.fill=GridBagConstraints.NONE;
    //constraints.anchor=GridBagConstraints.HORIZONTAL; ///这里出错了,为什么自己看。^_^
    gridbag.setConstraints(tm,constraints);
    pane.add(tm);

    buildConstraints(constraints,0,1,1,1,0,40);
    constraints.fill=GridBagConstraints.NONE;
    constraints.anchor=GridBagConstraints.EAST;
    gridbag.setConstraints(lp,constraints);
    pane.add(lp);

    buildConstraints(constraints,1,1,1,1,0,0);
    constraints.fill=GridBagConstraints.HORIZONTAL;
    tp.setEchoChar('*');
    gridbag.setConstraints(tp,constraints);
    pane.add(tp);

    buildConstraints(constraints,0,2,2,1,0,20);
    constraints.fill=GridBagConstraints.NONE;
    constraints.anchor=GridBagConstraints.CENTER;
    gridbag.setConstraints(ok,constraints);
    pane.add(ok);

    setContentPane(pane);

    addWindowListener(new WindowCloser());
    setSize(290,110);
    setVisible(true);
    }
    private void buildConstraints(GridBagConstraints gbc,int gx,int gy,int gw,int gh,int wx,int wy)
    {
    gbc.gridx=gx;
    gbc.gridy=gy;
    gbc.gridwidth=gw;
    gbc.gridheight=gh;
    gbc.weightx=wx;
    gbc.weighty=wy;
    }
    private class WindowCloser extends WindowAdapter
    {
    public void windowClosing(WindowEvent we)
    {
    System.exit(0);
    }
    }
    public static void main(String[] args)
    {
    NamePass n=new NamePass();
    }
    }
      

  2.   

    constraints.fill=GridBagConstraints.HORIZONTAL;
    constraints.anchor=GridBagConstraints.EAST;