私が構築しているプログラムのために作成しなければならないサインインダイアログのためにJavaでGridBagLayoutを実装しようとしています。私はクリーンな Google サインインを目指しています。私が抱えている主な問題は、使用して設定した制約が機能しGridBagConstraints
ていないことです。これが私が望むダイアログの外観です。
そして、これが私が実装しようとしているダイアログのコードです。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Login_Dialog extends JDialog{
// SEtting up the required components for the sign in
/**
*
*/
private static final long serialVersionUID = 1L;
protected JLabel username_Label = new JLabel("Username");
protected JLabel password_Label = new JLabel("Username");
protected JTextField username_Field = new JTextField(30);
protected JTextField password_Field = new JTextField(30);
protected JButton sign_In = new JButton("Sign in!");
public Login_Dialog() {
setSize(600,400);
setTitle("Sign in");
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
add(username_Label);
c.fill = GridBagConstraints.HORIZONTAL;
// c.weightx = 0.5;
c.gridx = 1;
c.gridy = 0;
add(username_Field);
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 2;
add(password_Label);
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 4;
add(password_Field);
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 5;
add(sign_In);
setVisible(true);
}
}
アップデート:
いくつかの変更を加えましたが、望ましい結果に達しているようです。問題は、すべてが中央に配置され、ボタンの長さが広すぎることです。また、テキストフィールドとラベルをもっと大きくしたいです。
の更新はこちらGridBagLayout
//cusotmization of buttons
Dimension signD = sign_In.getPreferredSize();
signD.height = 50;
signD.width = 30;
sign_In.setPreferredSize(signD);
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
add(username_Label,c);
c.fill = GridBagConstraints.HORIZONTAL;
// c.weightx = 0.5;
c.gridx = 0;
c.gridy = 1;
add(username_Field,c);
c.fill = GridBagConstraints.HORIZONTAL;
// c.weightx = 0.5;
c.gridx = 0;
c.gridy = 2;
add(password_Label,c);
c.fill = GridBagConstraints.HORIZONTAL;
// c.weightx = 0.5;
c.gridx = 0;
c.gridy = 3;
add(password_Field,c);
//
// c.fill = GridBagConstraints.HORIZONTAL;
// c.weightx = 0.5;
c.gridx = 0;
c.gridy = 5;
//
add(sign_In,c);