gpt4 book ai didi

java - 如何使已受 BoxLayout 影响的标签居中?

转载 作者:行者123 更新时间:2023-12-02 03:51:07 24 4
gpt4 key购买 nike

因此,我开始创建一个面板,其中有两个标签和一个按钮,它们通过框布局在 Y 轴上对齐。

我现在正在尝试将文本对齐到面板的中心以及 Y 轴上以保持整洁。

这是我现在拥有的代码:

JPanel statPanel = new JPanel();
statPanel.setBorder(BorderFactory.createTitledBorder("Text Statistics"));
statPanel.add((averageLength = new JLabel("The average length of the words: ")));
statPanel.add((totalWords = new JLabel("The total number of words: ")));
//Create button inside statPanel
statPanel.add((stats = new JButton("Update Text Statistics")));
stats.addActionListener(new ButtonListener());
statPanel.setOpaque(false);
statPanel.setLayout(new BoxLayout(statPanel, BoxLayout.Y_AXIS));

正如你所看到的,我已经使用了 BoxLayout 来获得垂直对齐,并且我尝试了以下代码,这似乎根本没有影响我的情况(并且看起来确实很冗长):

averageLength.setHorizontalAlignment(SwingConstants.CENTER);
averageLength.setVerticalAlignment(SwingConstants.CENTER);
totalWords.setHorizontalAlignment(SwingConstants.CENTER);
totalWords.setVerticalAlignment(SwingConstants.CENTER);
stats.setHorizontalAlignment(SwingConstants.CENTER);
stats.setVerticalAlignment(SwingConstants.CENTER);

如果您能给我建议,我将不胜感激!谢谢

最佳答案

您不需要设置水平或垂直对齐方式。这些属性与布局管理器(即 BorderLayout)一起使用,将组件的大小更改为大于组件的首选大小。然后该组件根据其绘制规则对齐文本。

相反,您需要设置 x 对齐方式。在这种情况下,组件尺寸仍然是首选尺寸。但是,布局管理器会将组件与容器中的可用空间对齐。因此,要将组件置于容器宽度的中心,您可以使用:

averageLength.setAlignmentX(0.5f);
totalWords.setAlignmentX(0.5f);
stats.setAlignmentX(0.5f);

BoxLayout 不会更改组件的大小,因此它遵循此属性。

关于java - 如何使已受 BoxLayout 影响的标签居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35858498/

24 4 0