gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:50:15 26 4
gpt4 key购买 nike

我创建了简单的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com