我創建了簡單的JDialog
以獲取我的應用程序的初始數據。元素(JLabel
,JTextField
和JButton
)在BorderLayout
內由BoxLayout
排列。 (代碼在最後)。到目前爲止,它看起來像這樣:在BoxLayout中居中JButton,JTextField填充
我有兩個問題:
我想在它的行居中
JButton
。我試過startBtn.setAlignmentX(Component.CENTER_ALIGNMENT);
,但它不能正常工作,出現混亂。我想添加一些左/右填充到
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());
}
}
對於你的第一個問題,你嘗試過'inner.add(startBtn,BorderLayout.CENTER);' – exexzian
有佈局沒有什麼區別呢。感謝您的關注。 –