Java JLabel方向导致错误
我不熟悉Java Swing。我创建了一个简单的JFrame,如下代码所示,但是当行Java JLabel方向导致错误,java,swing,jframe,jlabel,Java,Swing,Jframe,Jlabel,我不熟悉Java Swing。我创建了一个简单的JFrame,如下代码所示,但是当行statusLabel=newjlabel(“statusLabel”,JLabel.WEST)时是否在运行时收到下面发布的错误,当我注释该行时,JFrame出现 请让我知道为什么此行statusLabel=new JLabel(“statusLabel”,JLabel.WEST)导致错误 public GUI() { // TODO Auto-generated constructor stub
statusLabel=newjlabel(“statusLabel”,JLabel.WEST)时代码>是否在运行时收到下面发布的错误,当我注释该行时,JFrame出现
请让我知道为什么此行statusLabel=new JLabel(“statusLabel”,JLabel.WEST)代码>导致错误
public GUI() {
// TODO Auto-generated constructor stub
prepareGUI();
}
private void prepareGUI() {
// TODO Auto-generated method stub
mainFrame = new JFrame("Swing Example");
mainFrame.setSize(400, 400);
headerLabel = new JLabel("headerLabel", JLabel.CENTER);
statusLabel = new JLabel("statusLabel", JLabel.WEST);//this line when it is exist, causes errors
mainFrame.add(headerLabel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
public static void main(String[] args) {
GUI gui = new GUI();
}
错误:
Exception in thread "main" java.lang.IllegalArgumentException: horizontalAlignment
at javax.swing.JLabel.checkHorizontalKey(Unknown Source)
at javax.swing.JLabel.setHorizontalAlignment(Unknown Source)
at javax.swing.JLabel.<init>(Unknown Source)
at javax.swing.JLabel.<init>(Unknown Source)
at test.GUI.prepareGUI(GUI.java:23)
at test.GUI.<init>(GUI.java:15)
at test.GUI.main(GUI.java:31)
线程“main”java.lang.IllegalArgumentException中的异常:horizontalAlignment
位于javax.swing.JLabel.checkHorizontalKey(未知源)
位于javax.swing.JLabel.setHorizontalAlignment(未知源)
javax.swing.JLabel。(未知源)
javax.swing.JLabel。(未知源)
在test.GUI.prepareGUI(GUI.java:23)
at test.GUI.(GUI.java:15)
位于test.GUI.main(GUI.java:31)
更新:
Exception in thread "main" java.lang.IllegalArgumentException: horizontalAlignment
at javax.swing.JLabel.checkHorizontalKey(Unknown Source)
at javax.swing.JLabel.setHorizontalAlignment(Unknown Source)
at javax.swing.JLabel.<init>(Unknown Source)
at javax.swing.JLabel.<init>(Unknown Source)
at test.GUI.prepareGUI(GUI.java:23)
at test.GUI.<init>(GUI.java:15)
at test.GUI.main(GUI.java:31)
现在,在使用.LEFT之后,应该放在.CENTER的文本消失了。发生这种情况的原因根据以下说明,您不能使用JLabel.WEST
:
公共JLabel(字符串文本,
int水平对齐)
使用指定的文字和水平线创建JLabel实例
对齐标签在其显示区域中垂直居中
参数:
文本-标签显示的文本。
水平对齐-SwingConstants中定义的下列常量之一:左、中、右、前导或尾随
水平对齐的唯一选项是左、中、右、前导或尾随
因此,在您的情况下,使用
JLabel.LEFT
根据以下说明,您不能使用JLabel.WEST
:
公共JLabel(字符串文本,
int水平对齐)
使用指定的文字和水平线创建JLabel实例
对齐标签在其显示区域中垂直居中
参数:
文本-标签显示的文本。水平对齐-SwingConstants中定义的下列常量之一:左、中、右、前导或尾随 水平对齐的唯一选项是左、中、右、前导或尾随
因此,在您的情况下,使用
JLabel.LEFT
根据以下说明,您不能使用JLabel.WEST
:
公共JLabel(字符串文本,
int水平对齐)
使用指定的文字和水平线创建JLabel实例
对齐标签在其显示区域中垂直居中
参数:
文本-标签显示的文本。水平对齐-SwingConstants中定义的下列常量之一:左、中、右、前导或尾随 水平对齐的唯一选项是左、中、右、前导或尾随
因此,在您的情况下,使用
JLabel.LEFT
根据以下说明,您不能使用JLabel.WEST
:
公共JLabel(字符串文本,
int水平对齐)
使用指定的文字和水平线创建JLabel实例
对齐标签在其显示区域中垂直居中
参数:
文本-标签显示的文本。水平对齐-SwingConstants中定义的下列常量之一:左、中、右、前导或尾随 水平对齐的唯一选项是左、中、右、前导或尾随
因此,在您的例子中,使用
JLabel.LEFT
这不是对齐的有效参数
从:
水平对齐-中定义的下列常量之一
SwingConstants:左、中、右、前导或尾随
编辑-您还将两个JLabel添加到JFrame的默认位置,在您的示例中,该位置将是BorderLayout.CENTER。这就是为什么您的JLabel不可见。修改JFrame的布局,或者将JLabel放置在默认BorderLayout中的不同位置。此处的详细信息:这不是对齐的有效参数 从: 水平对齐-中定义的下列常量之一 SwingConstants:左、中、右、前导或尾随
编辑-您还将两个JLabel添加到JFrame的默认位置,在您的示例中,该位置将是BorderLayout.CENTER。这就是为什么您的JLabel不可见。修改JFrame的布局,或者将JLabel放置在默认BorderLayout中的不同位置。此处的详细信息:这不是对齐的有效参数 从: 水平对齐-中定义的下列常量之一 SwingConstants:左、中、右、前导或尾随
编辑-您还将两个JLabel添加到JFrame的默认位置,在您的示例中,该位置将是BorderLayout.CENTER。这就是为什么您的JLabel不可见。修改JFrame的布局,或者将JLabel放置在默认BorderLayout中的不同位置。此处的详细信息:这不是对齐的有效参数 从: 水平对齐-中定义的下列常量之一 SwingConstants:左、中、右、前导或尾随
编辑-您还将两个JLabel添加到JFrame的默认位置,在您的示例中,该位置将是BorderLayout.CENTER。这就是为什么您的JLabel不可见。修改JFrame的布局,或者将JLabel放置在默认BorderLayout中的不同位置。此处的更多信息:您应该在
边框布局中添加JLabel
s
您应该在边框布局中添加JLabel
s
您应该在边框布局中添加JLabel
s
您应该在边框布局中添加JLabel
s
您可以更改此语句
statusLabel = new JLabel("statusLabel", JLabel.WEST);
到
不是
import javax.swing.SwingConstants;