java - 在java中使用swing定位标签

标签 java swing

我一直在使用 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/

相关文章:

java - GUI 类(JTextField-JTextArea)

Java JFrame 更新不工作

java - 如何在 Eclipse 中将充满 Jar 文件的文件夹添加到我的类路径?

java - 如何使用 Java 发布经过身份验证的 Jenkins 作业

java - Jasper Reports 5.0.1 中的文件解析器

java - 为什么在应用 Fe-composite 时拉伸(stretch)会向下移动? SVG中如何实现多个-feComposite操作?

java - 如何使 JScrollPane 适合我的 jTable?

java - 当容器大小更改时,JTable 仅调整选定列的大小

java - 在 JScrollPane 中滚动 JComponent

java - JInternalFrame 添加一个图标到标题栏