在java中使用swing定位标签

时间:2014-11-26 21:13:46

标签: java swing

我一直在使用jFrame来构建GUI。我不得不在GUI中插入图像,为此我插入了一个标签并将图像作为标签的图标。现在,我必须根据x和y坐标找出图像的位置,我无法做到这一点。我用过

 setLocaction(x,y);

但它似乎仍然无效。我甚至使用

禁用了布局管理器
 setLayout(null); 

这个问题的可能解决方案是什么?


修改

基本上我使用Swing创建一个太阳系GUI,所以行星的位置由我设定。我是java的新手,实现布局时遇到了一些困难。

2 个答案:

答案 0 :(得分:2)

这根本不是布局问题,而是绘图和可能的动画问题。如果这是我的项目,那我就

  • 首先,将程序逻辑从其显示中分离出来,即MVC或模型 - 视图 - 控制模式,或其众多变体之一。
  • 为GUI的图形创建一个JPanel,并在此
  • 中完成所有绘图
  • 我不会在JLabels中使用ImageIcons显示我的星球图像。
  • 相反,我会在绘图JPanel的paintComponent方法中创建一个背景图像并绘制我的行星精灵。
  • 我创建了非GUI模型可以容纳的非GUI Planet类。
  • 在我的程序的GUI部分,我会将BufferedImage与每个Planet相关联,可能使用HashMap<Plant, Image>
  • 然后我在绘图JPanel的paintComponent(...)方法中绘制每个Planet的相关图像,并根据Planet的位置字段值放置它。 / LI>
  • 如果我想为此设置动画,我会使用Swing Timer来驱动我的简单动画。

答案 1 :(得分:-1)

使用null布局时,您应该在标签上使用setSizesetLocation方法,以便在框架内正确显示图像。