Java setHorizontalAlignment(中心)-无法将中心解析为变量

Java setHorizontalAlignment(中心)-无法将中心解析为变量,java,swing,user-interface,jlabel,border-layout,Java,Swing,User Interface,Jlabel,Border Layout,在我的项目的两个不同类(都是扩展JFrame)中,我尝试这样做: header = new JLabel("Header"); header.setHorizontalAlignment(CENTER); add(header, BorderLayout.SOUTH); 一个有效,另一个有效。错误消息:“无法将中心解析为变量”。我使用Eclipse,当我尝试调用此方法时,它不会提出任何其他常量,如左、右(…所以我想这些都是未知的。我不明白一个常量如何不能在一个类中解析,

在我的项目的两个不同类(都是扩展JFrame)中,我尝试这样做:

    header = new JLabel("Header");
    header.setHorizontalAlignment(CENTER);
    add(header, BorderLayout.SOUTH);

一个有效,另一个有效。错误消息:“无法将中心解析为变量”。我使用Eclipse,当我尝试调用此方法时,它不会提出任何其他常量,如左、右(…所以我想这些都是未知的。我不明白一个常量如何不能在一个类中解析,而在另一个类中是未知的。我尝试处理从行工作的类到不工作的类的所有导入,但没有效果。除了对齐外,标签工作正常。

您需要指定一个类(或接口)其中包含您正在使用的常量,类似于

header.setHorizontalAlignment(JLabel.CENTER);
比如说


CENTER
来自
SwingConstants
,它由
JLabel
等类和许多Swing类实现,这可能就是您不需要直接引用它的原因。

header.setHorizontalAlignment(JLabel.CENTER).我真的认为它来自SwingConstants,但JLabel实现了它,这很有效,谢谢。你能解释一下,为什么它在其他类中没有这个功能吗?另一个类可能实现了SwingConstants或其他实现它的东西…对,我没想到。非常感谢。一个主题问题:因为你没有回答,但是评论,如何我可以把这个问题设为“已回答”吗?或者你可以用这个特定的常数进行静态导入。@Ordous我不太喜欢静态导入,因为我们有这个问题,但那只是我