我想知道。。。有没有一种方法可以从Frame/Applet外部绘制组件样式?我正在制作一个使用OpenGL的应用程序,我需要一个外观良好的GUI,比如AWT或Swing。是的,我知道有很多像Nifty和TWL这样的库,但我真的想使用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中的纹理。
当然,这只会给你一个组件的图片;您将无法像使用"真正的"swing组件那样与它进行交互。