【问题标题】:Centering a button in a vertical box在垂直框中居中按钮
【发布时间】:2017-02-05 21:57:09
【问题描述】:

我正在创建一个 JDialog 并向其中添加组件:

Window thisWin = SwingUtilities.getWindowAncestor(ancestorPanel);
final JDialog progressDialog = new JDialog(ancestorPanel, "There was an error");
progressDialog.setUndecorated(true);
JPanel contentPane = new JPanel();
contentPane.setPreferredSize(new Dimension(600, 600));

接下来我添加一个 JLabel、一个 JTextArea、一个包含表格的 JScrollPane,最后是一个按钮:

label.setAlignmentX(JLabel.LEFT_ALIGNMENT);
label.setHorizontalAlignment(JLabel.LEFT);
area.setAlignmentX(JLabel.LEFT_ALIGNMENT);
Box vBox1 = Box.createVerticalBox();
vBox1.add(label);
vBox1.add(Box.createVerticalStrut(7));
vBox1.add(area);
vBox1.add(Box.createVerticalStrut(7));
vBox1.add(scroll);
vBox1.add(Box.createVerticalStrut(7));
vBox1.add(button);
contentPane.add(vBox1);
progressDialog.setContentPane(contentPane);
progressDialog.pack();
progressDialog.setLocationRelativeTo(ancestorPanel);
progressDialog.setVisible(true);

结果与我想要的完全一样,除了按钮。标签在顶部(与左侧对齐),然后文本区域位于其下方(也与左侧对齐),然后下方是表格,最后是按钮,但我似乎无法让按钮出现在行的中间。它出现在左侧。我尝试使用以下行,但它不起作用:

button(JButton.CENTER_ALIGNMENT);

如何让按钮显示在最后一行的中心?

【问题讨论】:

    标签: java alignment jbutton


    【解决方案1】:

    我设法通过将按钮添加到一个单独的 Box 然后使用 Boxlayout 将两个框添加到面板中来解决上述问题:

    Box vBox1 = Box.createVerticalBox();
    vBox1.add(label);
    vBox1.add(Box.createVerticalStrut(7));
    vBox1.add(area1);
    vBox1.add(Box.createVerticalStrut(7));
    vBox1.add(scroll);
    vBox1.add(Box.createVerticalStrut(7));
    Box vBox2 = Box.createVerticalBox();
    vBox2.add(button);
    contentPane.add(vBox1, BorderLayout.CENTER);
    contentPane.add(vBox2, BorderLayout.PAGE_END);
    

    【讨论】:

      猜你喜欢
      • 2021-10-06
      • 2013-06-04
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 2016-08-15
      • 2012-09-14
      • 2012-02-05
      • 2012-01-05
      相关资源
      最近更新 更多