很简单,我想做的事,但我想不出办法。在 JFrame 或 JPanel 中,如何垂直居中组件?也就是说,类似于在 HTML 中使用 center 标签。组件位于一列中,并且全部居中。
我尝试过使用 Y_AXIS 和 PAGE_AXIS 的 BoxLayout,但它以一种奇怪的方式对齐组件。我尝试使用 FlowLayout 并设置首选尺寸,以便它环绕,但它不会居中。我宁愿不使用像 GridBagLayout 这样强大的东西来完成如此简单的事情,除非它确实是唯一的选择。帮助!
如果我必须猜测,我会说您正在使用具有不同“x 对齐方式”的组件。尝试使用:
component.setAlignmentX(JComponent.CENTER_ALIGNMENT);
请参阅 Swing 教程中的部分修复对齐问题 http://download.oracle.com/javase/tutorial/uiswing/layout/box.html#alignment了解更多信息。
如果您需要更多帮助,请发布您的SSCCE http://sscce.org显示您已尝试过的内容。
Edit:
import java.awt.*;
import javax.swing.*;
public class BoxLayoutTest extends JFrame
{
public BoxLayoutTest()
{
Box box = new Box(BoxLayout.Y_AXIS);
add( box );
JLabel label = new JLabel("I'm centered");
label.setAlignmentX(JComponent.CENTER_ALIGNMENT);
box.add( Box.createVerticalGlue() );
box.add( label );
box.add( Box.createVerticalGlue() );
}
public static void main(String[] args)
{
BoxLayoutTest frame = new BoxLayoutTest();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.setSize(300, 300);
frame.setLocationRelativeTo( null );
frame.setVisible(true);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)