Java 复选框定位

标签 java swing

我对 Java 比较陌生,我正在创建一个登录表单。我遇到的问题是下图中看到的复选框的位置,我试图将其指定为直接在“密码”中的“P”下方开始。

this is the application when it is running

这是代码:

    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/

相关文章:

java - 在命令行中指定抗锯齿属性

Java 旋转图像

java - 如果我实现 List 并在接受 List< 的方法中调用 add 会怎样?扩展父类(super class)型>

Java : Assume object reference or make copy

JProgressBar 内部的 Java swing 不透明 JProgressBar

java - JLabel 说 "please wait"未运行

java - JTextField 周围的 TitledBorder

java - 休息API : advice on using separate endpoint or adding a RequestParam

java - eclipse 远程调试

java - 双击 FileTreeModel 中的文件