2012-07-24 134 views
1

由于JPanel和Canvas都是同一级别的组件,因此解决方案可能会是某种'黑客'。 This问题说,你将无法将轻量级组件添加到重量级画布(我希望JPanel透明)。将JPanel添加到Canvas

如果这不是可行的,那么会把一个透明的组件工作?另外,将Swing组件添加到组件是否可行(即使它不好,它也必须工作)。我怎样才能把它放在画布上(因为它们都是同一层次的组件)?

注:我绝不会做这样的事情在一个真正的应用程序,我只需要它在这种情况下

+0

添加的JPanel画布的父,并将其放在你绑在使用'Canvas'? – akf 2012-07-24 03:32:58

+0

@afk是的,我是。 – LanguagesNamedAfterCofee 2012-07-24 03:35:46

+1

***为什么**你被绑定到使用'帆布'?*你在这里实际上想要达到什么目的? – 2012-07-24 04:30:07

回答

0

一一种可能是对的JPanel添加到任何容器中的画布上,然后设置的颜色JPanel的alpha为0.这应该将它添加到旧的,而不会阻塞Canvas。这是你想要的吗?

编辑:关于它的思考,JPanel的默认颜色是透明的......你就应该能够超过它

+0

画布在JFrame中。我添加了JPanel,但它显示在Canvas下面。 – LanguagesNamedAfterCofee 2012-07-24 04:13:50

+0

啊,对不起,没有想过这个。画布是一个重量级的组件,所以它仍然保持在最前面。 请参阅:http://java.sun.com/developer/technicalArticles/GUI/mixing_components/index.html 不要以为有办法做到这一点 – 2012-07-24 04:28:31

+0

是否有可能只使用面板并添加JPanel呢? – LanguagesNamedAfterCofee 2012-07-24 05:17:30