2012-07-24 152 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