1

私は GUI に取り組んでおり、レイアウトなしで GUI を構築することにしました。代わりに、setBounds() 関数を使用しています。ボタンを 1 つだけ配置すると、すべて正常に動作しますが、他のボタンを配置すると、彼が拡大して穴の画面を埋めます。TextField をクリックすることはできますが、表示されません (特定の場所をクリックすると表示されます)。これが私のコードです:

//Graphical part
private JFrame loginFrame;
private JTextField userField;
private JButton send;
private JButton reg;
private JTextField passField;
public void graphics() {
    setRegister();
    int sizeX=120,sizeY=20,bSizeX=80,bSizeY=sizeY;
    int locationX=80,locationY=40;
    loginFrame=new JFrame("Login");
    loginFrame.setVisible(true);
    loginFrame.setSize(300,200);
    userField=new JTextField("");
    passField=new JTextField("");
    loginFrame.add(userField);
    loginFrame.add(passField);
    userField.setBounds(locationX, locationY, sizeX, sizeY);
    passField.setBounds(locationX, locationY+10+sizeY, sizeX, sizeY);
    send=new JButton("Send");
    send.addActionListener(this);
    loginFrame.add(send);
    send.setBounds(locationX+40,10+2*(locationY+10), bSizeX, bSizeY);
    reg=new JButton("Register");
    reg.setBounds(0, 0, bSizeX, bSizeY);
    loginFrame.add(reg);
    //reg.addActionListener(this);
}
4

1 に答える 1

3

デフォルトでは、JFrames はレイアウト マネージャーとして BorderLayout を持っているため、コードは実際にそれを使用します。レイアウトなしでコードをテストする場合は、null として指定する必要があります。

 loginFrame.setLayout(null);
于 2013-08-18T09:47:56.720 に答える