在java中使用swing定位标签
我一直在使用jFrame构建GUI。我必须在GUI中插入图像,为此我插入了一个标签,并将图像作为标签的图标。现在,我必须找出图像在x和y坐标下的位置,我无法做到这一点。我用过在java中使用swing定位标签,java,swing,Java,Swing,我一直在使用jFrame构建GUI。我必须在GUI中插入图像,为此我插入了一个标签,并将图像作为标签的图标。现在,我必须找出图像在x和y坐标下的位置,我无法做到这一点。我用过 setLocaction(x,y); 但它似乎仍然不起作用。我甚至通过使用禁用布局管理器 setLayout(null); 这个问题的可能解决方案是什么 编辑 基本上,我正在使用Swing创建一个太阳系GUI,因此行星的位置将由我设置。我是java新手,在实现布局时有一些困难。对于空布局,您应该在标签上使用se
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(…)方法中绘制每个行星的关联图像,并根据行星的位置字段值放置它
- 如果我想制作这个动画,我会使用一个摆动计时器来驱动我的简单动画
null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计初衷是与布局管理器一起工作,丢弃这些布局管理器将导致无止境的问题,您将花费越来越多的时间来纠正这些问题。查看更多详细信息由于图像是由JLabel
渲染的,因此无法确定确切位置,因为JLabel
没有提供任何关于如何在其自身上下文中布局图像的信息…基本上我使用Swing创建太阳系GUI,所以行星的位置由我来确定。我是java新手,在实现布局时有一些困难。很抱歉没有评论。我碰巧采用了这种方法,但没有成功。如果你能告诉我怎么做,那将是非常有帮助的。我会很高兴的。再次感谢并抱歉。@ChandrasekharMalladi:谢谢您的回复。我担心的是,这个问题的广度有点大,以至于能够一步一步地解决它。如果你能问一个更具体的问题,我很乐意帮你。