我对 Java 比较陌生,我正在创建一个登录表单。我遇到的问题是下图中看到的复选框的位置,我试图将其指定为直接在“密码”中的“P”下方开始。
这是代码:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Login extends JPanel{
private static JLabel usernameLabel, passwordLabel;
private static JTextField usernameField;
private static JPasswordField passwordField;
private static JCheckBox checkBox;
private static JButton loginButton;
GridBagConstraints gbc = new GridBagConstraints();
public Login(){
//layout
setLayout(new GridBagLayout());
//spacing between each component
gbc.insets = new Insets(1,1,1,1);
//new instance of objects
usernameLabel = new JLabel("Username:");
passwordLabel = new JLabel("Password:");
usernameField = new JTextField(10);
passwordField = new JPasswordField(10);
checkBox = new JCheckBox("Keep me logged in");
loginButton = new JButton("Login");
//username label
gbc.anchor = GridBagConstraints.LINE_END;
gbc.gridx = 0;
gbc.gridy = 0;
add(usernameLabel, gbc);
//password label
gbc.gridx = 0;
gbc.gridy = 1;
add(passwordLabel, gbc);
//username textfield
gbc.anchor = GridBagConstraints.LINE_START;
gbc.gridx = 1;
gbc.gridy = 0;
add(usernameField, gbc);
//password textfield
gbc.gridx = 1;
gbc.gridy = 1;
add(passwordField, gbc);
//keep logged in checkbox
gbc.gridx = 0;
gbc.gridy = 2;
add(checkBox, gbc);
//login button
gbc.gridx = 1;
gbc.gridy = 3;
add(loginButton, gbc);
}
}
我不确定为什么该复选框与标签不相符,任何帮助将不胜感激。谢谢。
最佳答案
试试这个:
checkBox = new JCheckBox("");
checkBoxLabel = new JLabel("Keep me logged in");
然后当您添加组件时
//keep logged in checkbox
gbc.gridx = 0;
gbc.gridy = 2;
gbc.anchor = GridBagConstraints.WEST;
add(checkBox, gbc);
gbc.gridx = 1;
gbc.gridy = 2;
add(checkBoxLabel);
关于Java 复选框定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31337783/