2013-02-12 43 views
0

我想知道...有没有一种方法可以从Frame/Applet以外的组件绘制风格? 我正在制作一个应用程序,使用OpenGL,我需要一个好看的GUI,如AWT或Swing。是的,我知道有很多库像NiftyTWL,但我真的想用AWT/Swing的样子。间接绘制AWT/Swing组件?

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

+0

你是什么意思“从框架/ Applet中绘制组件样式”?你想自定义AWT组件的外观? – 2013-02-12 21:37:17

+0

或者你想在OpenGL图像中使用漂亮的OpenGL组件? – 2013-02-12 21:37:56

+0

基本上,我想绘制一个组件(如Button)而不将其添加到Frame或Applet(它是,在OpenGL上绘制AWT按钮,但不使用Frame或Applet)。 – BloodShura 2013-02-12 21:38:54

回答

1

即使不能显示,你也可以渲染一个图像的组件(尽管你必须手动将大小设置为首选大小):

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中的纹理。

当然,这只会给你一个组件的图片;您将无法像使用“真实”挥杆组件那样与其交互。

+0

这就是我正在寻找的!万分感谢。 – BloodShura 2013-02-12 22:11:48