在java中使用swing定位标签

在java中使用swing定位标签,java,swing,Java,Swing,我一直在使用jFrame构建GUI。我必须在GUI中插入图像,为此我插入了一个标签,并将图像作为标签的图标。现在,我必须找出图像在x和y坐标下的位置,我无法做到这一点。我用过 setLocaction(x,y); 但它似乎仍然不起作用。我甚至通过使用禁用布局管理器 setLayout(null); 这个问题的可能解决方案是什么 编辑 基本上,我正在使用Swing创建一个太阳系GUI,因此行星的位置将由我设置。我是java新手,在实现布局时有一些困难。对于空布局,您应该在标签上使用se

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

 setLocaction(x,y);
但它似乎仍然不起作用。我甚至通过使用禁用布局管理器

 setLayout(null); 
这个问题的可能解决方案是什么


编辑


基本上,我正在使用Swing创建一个太阳系GUI,因此行星的位置将由我设置。我是java新手,在实现布局时有一些困难。

对于空布局,您应该在标签上使用
setSize
setLocation
方法,以使图像在帧内正确可见。

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

  • 首先也是最重要的是,将程序逻辑从其显示、MVC或模型视图控制模式或其众多变体中的一个分离出来
  • 为GUI的图形创建一个JPanel,并在此环境中绘制所有图形
  • 我不会在JLabels中使用图像图标显示我的行星图像
  • 相反,我会创建一个背景图像,并在drawing JPanel的
    paintComponent
    方法中绘制我的行星精灵
  • 我会创建一个非GUI模型可以容纳的非GUI行星类
  • 在我程序的GUI部分,我会将一个BuffereImage与每个星球关联起来,可能会使用
    HashMap
  • 然后,我在drawing JPanel的paintComponent(…)方法中绘制每个行星的关联图像,并根据行星的位置字段值放置它
  • 如果我想制作这个动画,我会使用一个摆动计时器来驱动我的简单动画

请提供更多详细信息并显示更多代码。如果你能展示出你所得到的和你想要达到的目标的形象,这会有所帮助。要知道,在95%的情况下,最好不要使用绝对定位,而且通常使用布局管理器可以更好地放置位置,以实现在所有平台和所有屏幕分辨率上都很好的GUI。我还遇到过使用特定定位的JLabel的问题。如果整个过程都像CSS一样工作,那就太好了,我可以为所有项目设置特定的坐标。编辑:不过气垫船也是对的。精确的定位很可能会导致不同分辨率的错误。避免使用
null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计初衷是与布局管理器一起工作,丢弃这些布局管理器将导致无止境的问题,您将花费越来越多的时间来纠正这些问题。查看更多详细信息由于图像是由
JLabel
渲染的,因此无法确定确切位置,因为
JLabel
没有提供任何关于如何在其自身上下文中布局图像的信息…基本上我使用Swing创建太阳系GUI,所以行星的位置由我来确定。我是java新手,在实现布局时有一些困难。很抱歉没有评论。我碰巧采用了这种方法,但没有成功。如果你能告诉我怎么做,那将是非常有帮助的。我会很高兴的。再次感谢并抱歉。@ChandrasekharMalladi:谢谢您的回复。我担心的是,这个问题的广度有点大,以至于能够一步一步地解决它。如果你能问一个更具体的问题,我很乐意帮你。