2013-02-24 78 views
2

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

+0

是的,我看着它。非常感谢你! – user1546859 2013-02-24 03:30:19

+0

非常欢迎! – 2013-02-24 03:30:36

回答

5

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

是的,这是可能的。您将通过getWidth()getHeight()获取图纸组件的paintComponent(...)方法中的尺寸,然后使用这些尺寸定位事物。此外,Graphics#drawImage(...)方法有重载,可以为你简化这一点。

例如,如果它是在覆盖的paintComponent方法绘制的图像,是有可能使用一个布局管理器(即BoxLayout的,BorderLayout的,的FlowLayout,GridBagConstrains,的GridBagLayout)至是什么?

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

或者您是否需要将图像转换为JComponent(即JLabel)?

你可以很容易地做到这一点 - 把你的图片在一个ImageIcon并在JLabel,并在容器中使用任何嵌套组件和工作最好的布局管理器的位置。

编辑1
你问评论:

如何获得的尺寸是多少?

再次,paintComponent(...)方法里面只需调用getSize()getHeight()getWidth()和你有你的尺寸。没有什么比这更容易的了。

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

我建议你先走。向我们展示一些编译和运行的代码,并试图展示您的问题,并让我们对其进行处理。