我一直在使用 jFrame 构建 GUI。我必须在 GUI 中插入图像,为此我插入了一个标签并将图像作为标签的图标。现在,我必须找出图像在 x 和 y 坐标方面的位置,但我无法做到这一点。我用过
setLocaction(x,y);
但是好像还是不行。我什至使用
禁用了布局管理器 setLayout(null);
这个问题可能的解决方案是什么?
<小时/>编辑
基本上,我正在使用 Swing 创建太阳系 GUI,因此行星的位置由我设置。我是java新手,实现布局有一些困难。
最佳答案
这根本不是布局问题,而是绘图问题,也可能是动画问题。如果这是我的项目,我会
- 首先,也是最重要的,将程序逻辑与其显示分开,就像 MVC 或模型- View -控制模式或其众多变体之一一样。
- 为 GUI 图形创建一个 JPanel,并在其中完成所有绘图
- 我不会在 JLabels 中使用 ImageIcons 显示我的行星图像。
- 相反,我会创建一个背景图像并在绘图 JPanel 的
paintComponent
内绘制我的行星 Sprite 。方法。 - 我会创建非 GUI 模型将持有的非 GUI Planet 类。
- 在程序的 GUI 部分,我会将 BufferedImage 与每个行星关联起来,可能使用
HashMap<Plant, Image>
。 - 然后,我将在绘图 JPanel 的 PaintComponent(...) 方法中绘制每个行星的关联图像,并根据行星的位置字段值放置它。
- 如果我想为其设置动画,我会使用 Swing Timer 来驱动我的简单动画。
关于java - 在java中使用swing定位标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27158992/