2012-09-07 45 views
1

我一直在使用Java3D做一些固態物理介紹。在研究了很多3D內容之後,決定放一些按鈕來測試不同的東西。我的問題出現在這裏。Java3D與Canvas3D和按鈕重疊

在下面的圖片,我用的setLayout(空)放置按鈕和Canvas3D:

enter image description here

什麼,我不想在這裏:

  • Canvas3D重疊按鈕。
  • Canvas3D不能保持相同比例的圖片大小/窗口大小,所以當我調整窗口大小時,它只是相同的大小。

然後我試圖使用setLayout(new BorderLayout());add("Center",component);爲Canvas3D而「南」,「西」,「東」的按鈕。以下圖片顯示的情況:

enter image description here

這看起來更好,但這個時候另一個問題就來了:

  • 按鈕是不是我想要的大小(延伸到窗口),而不是在偏移我想要的位置。
  • 按鈕也互相重疊,當我把兩個像「南」一樣的區域。

問:我怎樣才能讓Canvas3D拉伸到窗口,同時按鍵都只是在地方,我想(X,Y),並有我想要的(H,W)而不被Canvas3D重疊的大小。我嘗試了Canvas3D和按鈕的不同佈局 - >失敗。只顯示一個佈局。

謝謝你的時間。

Java3D 1.5.2和Eclipse。 Windows XP和Intel centrino

回答

1

這不是真正的Java3D問題,因爲它是一個Swing Layout問題。

正確的解決方案可能是某種嵌套佈局,具體取決於您希望它看起來如何。

例如,您可以嘗試使用邊界佈局,在您的按鈕的北側或西側嵌套FlowLayout,這可能更接近您要查找的內容。嘗試下面的內容,並根據您的需求進行定製。

JPanel rootPanel = new JPanel(new BorderLayout()); 
JPanel controlPanel = new JPanel(new FlowLayout()); 
controlPanel.add(new JButton("Alpha")); 
controlPanel.add(new JButton("Beta")); 
controlPanel.add(new JButton("Gamma")); 
rootPanel.add(controlPanel, BorderLayout.NORTH); 
rootPanel.add(myCanvas3D, BorderLayout.CENTER);