繁体   English   中英

间接绘制AWT / Swing组件?

[英]Draw AWT/Swing components indirectly?

我想知道...有没有办法从Frame / Applet外部绘制组件样式? 我正在制作一个使用OpenGL的应用程序,并且需要一个外观漂亮的GUI ,例如AWT或Swing。 是的,我知道有很多库,例如NiftyTWL ,但是我真的很想使用AWT / Swing外观。

谢谢。 (对不起,我的英语不好,我是巴西人。)

您可以将组件渲染为图像,即使该组件不可显示(尽管您必须手动将大小设置为首选大小):

c.setSize(c.getPreferredSize());
BufferedImage img = new BufferedImage(c.getWidth(), c.getHeight(), 
      BufferedImage.TYPE_INT_ARGB);
Graphics2D g = image.createGraphics();
g.setComposite(AlphaComposite.Clear);
g.fillRect(0, 0, c.getWidth(), c.getHeight());
g.setComposite(AlphaComposite.SrcOver);
c.paintComponent(g);
g.dispose();

然后,您可以将该图像用作OpenGL中的纹理。

当然,这只会给您组件的图片。 您将无法像使用“真正的”挥杆组件那样与之交互。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM