java - 如何在 JPanel 中设置布局的对齐方式

标签 java swing jpanel padding

这是我的 JPanel 类。我里面有BoxLayout,只添加了一个JLabel。我的 JLabel 位于屏幕左侧。有没有办法将 BoxLayout 中的所有组件对齐到中心。我尝试了这个:setAlignmentX(CENTER_ALIGNMENT);但它不起作用

public class MainPanel extends JPanel
{
// This layout we will use as our base layout.
private BoxLayout mainLayout = new BoxLayout(this, BoxLayout.Y_AXIS);

// This we will use to control padding in our main panel
EmptyBorder mainBorder = new EmptyBorder(10, 10, 10, 10);

private JLabel title = new JLabel("Podesavanja");


public MainPanel()
{
    setLayout(mainLayout);
    setBackground(Color.GRAY);
    setAlignmentY(CENTER_ALIGNMENT);

    // Setting padding
    setBorder(mainBorder);
    add(title);
}

// Dodajemo sve Ostale panele u ovu main panelu

public static void addPanel(JPanel panel)
{
    addPanel(panel);
}
}

最佳答案

首先,您调用 setAlignmentY() 而不是 setAlignmentX()。其次,您在面板上调用它,而不是在 JLabel 上调用它。

修复这两个错误,标签将居中。

关于java - 如何在 JPanel 中设置布局的对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40351824/

相关文章:

java - 如何使用 BorderLayout 排列组件?

java - Mockito 模拟具有相似签名的相同命名方法

java - 如何根据应用程序运行的系统加载不同的 native 库(dll、so)

java - JTextField 字符串不起作用

java - 执行被困在按钮内

java - 单击新位置时如何阻止形状消失?

java - 在准备好的语句中使用 "like"通配符

java - 当我切换选项卡时 JXMultiSplitPane 变得疯狂

java - FlowLayout如何实现一左一右组件

java - 为什么在我将 JComboBox 添加到其中一个 JPanel 中后,所有 JPanel 都没有呈现