java - 我想在 JLabel(s) 之间创建空间并将 JButtons 对齐到同一行

标签 java swing user-interface layout-manager

我使用不同的布局在 Java 中创建了一个注册页面,但我无法将按钮对齐在同一行上并在每个 JLabel 之间创建空间。您可以在链接 (https://postimg.org/image/jaur8rxz7/) 上看到它。 这是我写的代码

package liblog;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Aregistration extends JFrame {

 private JTextField text;
 private JTextField text2;
 private JPasswordField pass;
 private JButton log1;
 private JButton sign1;
 JFrame frame = new JFrame();
 JPanel panel = new JPanel(new GridBagLayout());
 JLabel label1 = new JLabel();
 JLabel label3 = new JLabel();
 JLabel label2 = new JLabel();

 Aregistration(){
     super("Admin Registration");
     setLayout(new FlowLayout(FlowLayout.CENTER,15,15));
     setBounds(500,500,500,250);
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     Container con = this.getContentPane();
     con.add(panel);
     panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));


     label1=new JLabel("First Name");
     label1.setToolTipText("Enter Your First Name");
     text = new JTextField("Name",20);

     label2=new JLabel("Registration No");
     label2.setToolTipText("Enter Your Registation no");
     text2 = new JTextField("Registation No",20);


     label3 = new JLabel("Password");
     label3.setToolTipText("Enter Your Password");
     pass = new JPasswordField("Password",20);


     log1 = new JButton("Log In");
     sign1 = new JButton("Register");


     panel.add(Box.createRigidArea(new Dimension(0, 0)));
     panel.add(Box.createVerticalStrut(HEIGHT));
     panel.add(label1);
     panel.add(text);

     panel.add(label2);
     panel.add(text2);

     panel.add(label3);
     panel.add(pass);


    panel.add(log1);
    panel.add(sign1);


     setVisible(true);

 }
 public static void main(String[]args){new Aregistration();

 }
}

最佳答案

I'm having trouble aligning the buttons on the same line

创建第二个面板并将按钮添加到面板,然后将此面板添加到主面板:

JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new BoxLayout(buttonPanel,BoxLayout.X_AXIS));
buttonPanel.add( log1 );
buttonPanel.add( Box.createHorizontalStrut(5) );
buttonPanel.add( sign1 );
panel.add( buttonPanel );

and creating space between each JLabel

您也可以使用垂直支柱。

阅读 How to Use BoxLayout 上的 Swing 教程部分获取更多信息和示例。

关于java - 我想在 JLabel(s) 之间创建空间并将 JButtons 对齐到同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39726069/

相关文章:

java - 使用 java.io.File.createTempFile 时出现 Veracode 不安全临时文件错误

java - java中 `For`循环的最佳实践

java |合成是什么意思?

java - 使用 BufferedImage 时 Swing HTML 渲染发生变化

java - 在 Java 中更改 JComboBox 的值

Java JApplet 将不再显示在任何浏览器中

java - 移除对可编辑 jtable 单元格的关注

java - 如何在 jfreechart、netbeans 中调整此图表的大小?

java.lang.IllegalArgumentException

java - 在 JPanel 中创建无限数量的对象并通过 Java 中的 PaintComponent 绘制它们