2

是否可以定位由 PaintComponent 方法绘制的 BufferedImage?例如,如果它是在重写的 PaintComponent 方法中绘制的图像,是否可以为此使用布局管理器(即 BoxLayout、BorderLayout、FlowLayout、GridBagConstrains、GridBagLayout)?还是您必须将图像转换为 JComponent(即 JLabel)?

4

1 回答 1

5

是否可以定位由 PaintComponent 方法绘制的 BufferedImage?

对的,这是可能的。您可以通过and在其paintComponent(...)方法中获取绘图组件的尺寸,然后使用这些尺寸来定位事物。此外,该方法具有为您简化此操作的重载。getWidth()getHeight()Graphics#drawImage(...)

例如,如果它是在重写的 PaintComponent 方法中绘制的图像,是否可以为此使用布局管理器(即 BoxLayout、BorderLayout、FlowLayout、GridBagConstrains、GridBagLayout)?

不,不是直接的,因为布局管理器仅用于布局子组件。

还是您必须将图像转换为 JComponent(即 JLabel)?

您可以轻松地做到这一点——将您的 Image 放入 ImageIcon 和 JLabel 中,然后使用任何嵌套组件及其最有效的布局管理器将其放置在容器中。

编辑 1
你在评论中问:

我如何获得尺寸?

同样,在paintComponent(...)方法内部只需调用getSize()orgetHeight()并且getWidth()您已经获得了尺寸。真的没有什么比这更容易了。

你能提供你的第一个实例paintComponent(...)的代码片段吗?

我建议你先去。向我们展示您的一些可编译和运行的代码,并尝试演示您的问题,然后让我们处理它。

于 2013-02-24T03:10:53.573 回答