Java 如何强制文本转到面板的按钮?

Java 如何强制文本转到面板的按钮?,java,user-interface,swing,text,alignment,Java,User Interface,Swing,Text,Alignment,目前,我有下面的代码,它运行良好 label = new JLabel(panelLabel,SwingConstants.CENTER); outputPanel.add(label,BorderLayout.CENTER); 我将文本放在面板的中心(根据左右位置和上下位置) 现在我想将位置设置为底部(并以“左-右”为中心)。我试着用南面代替第一排的中心。编译器不会抱怨,但在执行过程中,我得到了IllegalArgumentException:horizontallignment。那是什么?

目前,我有下面的代码,它运行良好

label = new JLabel(panelLabel,SwingConstants.CENTER);
outputPanel.add(label,BorderLayout.CENTER);
我将文本放在面板的中心(根据左右位置和上下位置)


现在我想将位置设置为底部(并以“左-右”为中心)。我试着用南面代替第一排的中心。编译器不会抱怨,但在执行过程中,我得到了
IllegalArgumentException:horizontallignment
。那是什么?

您在输出面板上使用了什么布局管理器? 你试过了吗

outputPanel.add(label,BorderLayout.PAGE_END);
?

如果将outputPanel的布局管理器设置为
BorderLayout
,则不会出现此错误。
据我所知,没有什么问题。

您使用的JLabel构造函数是
JLabel(字符串标签,int horizontalAlignment)

如中所定义,此int应仅为某些值:

JLabel公共JLabel(字符串文本,整数水平对齐)
使用 指定的文本和水平 对齐标签居中 在其显示区域中垂直显示

参数:
文本-标签显示的文本。
水平对齐-SwingConstants中定义的下列常量之一:左、中、右、前导或尾随。

此值设置文本在JLabel内部对齐的位置。这里不能使用“SOUTH”,这就是为什么会出现“InvalidArgument”异常


如果要使文本位于标签底部,则必须使用,with
Swingconstants.bottom
。这假设您的标签居中,并且可能在面板上占据较大的高度


如果此面板使用BorderLayout,您可能希望尝试使用
BorderLayout.SOUTH
添加标签,作为布局管理器的提示。这会将标签粘贴到底部,并且具有最小高度(显示文本所需的高度)。在这种情况下,文本的垂直对齐并不重要。

对于outputPanel,我使用BorderLayout。带文本的“单元格”被添加到正确的位置,我只是想让文本位于单元格的正确位置。但我才意识到,我不知道我的“细胞”从哪里结束和开始。所以,我的答案是文本在底部。你仍然得到IllegalArgumentException:HorizontalAlignment异常吗?如果未将标签的边框设置为label.setboorder(LineBorder.createGrayLineBorder());再看一遍他的问题,他在第一行用的是SwingConstants.SOUTH,而不是在第二行。@Gnoupi接得好。我太快了,没有下结论。