java - 在 BoxLayout 中居中 JButton,JTextField 填充

标签 java swing jbutton jtextfield boxlayout

我创建了简单的 JDialog 来为我的应用程序获取初始数据。元素(JLabelJTextFieldJButton)在BorderLayout 中按BoxLayout 排列. (代码在最后)。到目前为止它看起来像这样:

Current arrangement

我有两个问题:

  1. 我想将 JButton 置于其所在行的中心。我尝试了 startBtn.setAlignmentX(Component.CENTER_ALIGNMENT);,但它无法正常工作,出现困惑。

  2. 我想向 TextField 添加一些左/右填充。第一个解决方案来自 this topic工作正常,但其他元素从右向左移动填充值。

任何人都可以提示如何放置它吗?我是 Java 的新手,对此一无所知。

这是我的 InitDialog 类的代码:

public class InitDialog extends JDialog {

    JTextField dataTF;
    JButton startBtn;

    public InitDialog(JFrame owner) {

        super(owner, "Rozpocznij test", Dialog.ModalityType.DOCUMENT_MODAL);
        initUI();

    }

    public final void initUI() {

        System.out.println("InitDialog::initUI");

        JPanel outer = new JPanel(new BorderLayout());
        JPanel inner = new JPanel();

        outer.setBorder(new EmptyBorder(new Insets(20, 20, 20, 20)));

        JLabel msg = new JLabel("<html>Podaj ilości liczb w zestawach testowych<br />(przedzielone średnikiem):");
        inner.add(msg);
        inner.add(Box.createVerticalStrut(15));

        dataTF = new JTextField();
        dataTF.setBorder(null);
        dataTF.setText("50; 100; 200");
        inner.add(dataTF);
        inner.add(Box.createVerticalStrut(15));

        startBtn = new JButton("Rozpocznij test");
        inner.add(startBtn);

        inner.setLayout(new BoxLayout(inner, BoxLayout.Y_AXIS));
        outer.add(inner);
        add(outer);

        setSize(300, 180);

        //setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        addWindowListener(new WindowAdapter() {
            @Override public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        setResizable(false);
        setLocationRelativeTo(getRootPane());

    }

}

最佳答案

BoxLayout 对齐不是你想象的那样。

为了得到你想要的,这是你需要的行

msg.setAlignmentX(Component.CENTER_ALIGNMENT);

关于java - 在 BoxLayout 中居中 JButton,JTextField 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183963/

相关文章:

java - JUnit - 格式化字符串比较失败

java - JScrollPane 不起作用(MigLayout)

Java - 如何在 swings 中添加换行符

java - JButton调用点击按钮的方法

java - Hudson 构建总是以 "java.lang.OutOfMemoryError: Java heap space"错误结束

java - 我如何显示在 AsyncTask 的 doInBackground 内运行的 BufferReader 中存在的数据

java - 桌面应用程序中的领域驱动设计

java - 如何在按下按钮时继续执行工作?

JButton 中的 Java 图标大小

java - Jenkins 中的 Gradle 项目依赖错误