定位JLabel(setAlignment不工作)

时间:2012-06-07 23:27:11

标签: java swing layout jlabel flowlayout

我想把我放在JLabel里面的图像放在一边。这是我的代码:

public Main() {
    setLayout (new FlowLayout());
            image = new ImageIcon(getClass().getResource("title.gif"));
            image1 = new JLabel(image);
            image1.setAlignmentX(400);
            image1.setAlignmentY(400);
            add(image1);
}

显示图像,但显示

image1.setAlignmentX(400);
image1.setAlignmentY(400);

不要做任何事情。 我是Java的新手,感谢任何帮助。

(我很感激一个例子。)

1 个答案:

答案 0 :(得分:7)

的问题:

  • 您正在使用FlowLayout,即使您正确地执行此操作也不会尊重绝对定位。
  • setAlignmentX(...)用于向容器建议组件沿x轴的对齐方式。如上所述,它取一个0.0f到1.0f的浮点数,0f表示左对齐,0.5f居中,右边1.0f。你肯定不想使用这种方法,或者它是对应的。
  • 绝对定位需要一个使用空布局的容器,而不是FlowLayout。
  • 绝对定位是通过setBounds(...)setLocation(...)方法完成的。
  • 说完这个之后,我建议你不要试图绝对定位,除非有绝对的需要,而且你很有可能在这里没有,有更好的方法。

请告诉我们您的问题的详细信息,而不是您如何解决问题,我们可能会更好地帮助您。