簡體   English   中英

Java3D與Canvas3D和按鈕重疊

[英]Java3D with Canvas3D and button overlapping

我一直在使用Java3D對固態物理學做一些介紹。 在深入研究內部的許多3D事物之后,決定放置一些按鈕來測試不同的事物。 我的問題出現在這里。

在下圖中,我正在使用setLayout(null)放置按鈕和Canvas3D:

在此處輸入圖片說明

我在這里不想要的是:

  • Canvas3D與按鈕重疊。
  • Canvas3D不會拉伸以保持相同的圖片大小/窗口大小比率,因此當我調整窗口大小時,它只是大小相同。

然后我嘗試使用setLayout(new BorderLayout()); add("Center",component); 對於Canvas3D,而“南”,“西”,“東”則為按鈕。 下圖顯示了這種情況:

在此處輸入圖片說明

這看起來更好,但是這次又出現了另一個問題:

  • 按鈕不是我想要的大小(拉伸到窗口)並且不在我想要的偏移位置。
  • 當我將兩個放置在同一區域(例如“南方”)時,按鈕也會彼此重疊。

問題:當按鈕正好放在我想要的位置(x,y)且具有我想要的尺寸(h,w)而又不被Canvas3D覆蓋時,如何使Canvas3D拉伸到窗口。 我為Canvas3D和Buttons->失敗嘗試了不同的布局。 僅顯示一種布局。

感謝您的時間。

Java3D 1.5.2和Eclipse。 Windows XP和Intel Centrrino

這實際上不是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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM