gpt4 book ai didi

java - JLabel 在 BoxLayout 中未向右对齐

转载 作者:行者123 更新时间:2023-12-01 17:59:44 25 4
gpt4 key购买 nike

我在 JPanel (taskPanel) 中有一些 JLabel 组件,带有 BoxLayout (位于带有 GridBagLayout 的面板)并且标签拒绝右对齐。无论我如何操纵它们,它们都会保持向左对齐。

在这里,我为具有标签的面板设置了GridBagConstraints

GridBagConstraints taskPanelC = new GridBagConstraints();
taskPanelC.gridx = 4;
taskPanelC.gridy = 0;
taskPanelC.gridwidth = 1;
taskPanelC.anchor = GridBagConstraints.NORTHEAST;
taskPanelC.weighty = 1;
taskPanelC.weightx = 1;
taskPanelC.insets = new Insets(10, 10, 10, 10);
timePanel.add(taskPanel, taskPanelC);

这是任务面板之前的面板的GridBagConstraints

//Setup the gridBagLayout
GridBagConstraints timeTextC = new GridBagConstraints();
timeTextC.gridx = 1;
timeTextC.gridy = 0;
timeTextC.gridwidth = 3;
timeTextC.anchor = GridBagConstraints.CENTER;
timeTextC.weighty = 1;
timeTextC.weightx = 1;

这里我向 taskPanel 添加一个标题(我并不关心它是如何对齐的)

taskListLabel = new JLabel("Task List");
taskListLabel.setFont(new Font("Helvetica", Font.BOLD, 24));
taskPanel.add(taskListLabel);

这里是我添加想要右对齐/对齐的标签的地方。我尝试过 setHorizo​​ntalTextPosition 和 setAlignmentX ,但两者都不起作用,导致文本保持左对齐。但是,当我尝试 setAlignmentX 时,标题与任务标签未对齐

JLabel task = new JLabel(name, SwingConstants.RIGHT);
//Allow deleting of the label
task.addMouseListener(new ClickListener());
//Add task to the task panel
taskPanel.add(task);

这就是当前的样子 img

我希望任务列表下的文本右对齐,以便时间始终位于右侧

这里是完整代码的链接,以防摘要不够:Github Repo

最佳答案

查看 JLabel API 中的以下方法:

  1. setHorizo​​ntalAlignment(...) - 用于当标签宽度大于文本宽度时对齐文本
  2. setAlignmentX(...) - 布局管理器可能会使用它来对齐组件

关于java - JLabel 在 BoxLayout 中未向右对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com