Java 3D 教程:6. Java 3D 與使用者介面

來源:互聯網
上載者:User

ava 3D 與使用者介面

Canvas3D

能夠繪製三維圖形的每塊地區都被稱為是Canvas3D。它是包含了你環境(universe)中物件檢視(view)的長方形。你把畫布(canvas)放進幀(frame)中,於是你就建立了能夠被顯示在畫布中的環境。

下面的例子展示了如何在上下端有標籤的幀中建立畫布。程式能夠以applet或者應用的方式運行。

 1 import com.sun.j3d.utils.universe.SimpleUniverse; 2 import com.sun.j3d.utils.geometry.ColorCube; 3 import javax.media.j3d.BranchGroup; 4 import javax.media.j3d.Canvas3D; 5 import java.awt.GraphicsConfiguration; 6 import java.awt.BorderLayout; 7 import java.awt.Label; 8 import java.applet.Applet; 9 import com.sun.j3d.utils.applet.MainFrame;10 public class CanvasDemo extends Applet11 {12     public CanvasDemo()13     {14         setLayout(new BorderLayout());15         GraphicsConfiguration config =16             SimpleUniverse.getPreferredConfiguration();17         Canvas3D canvas = new Canvas3D(config);18         add("North", new Label("This is the top"));19         add("Center", canvas);20         add("South", new Label("This is the bottom"));21         BranchGroup contents = new BranchGroup();22         contents.addChild(new ColorCube(0.3));23         SimpleUniverse universe = new SimpleUniverse(canvas);24         universe.getViewingPlatform().setNominalViewingTransform();25         universe.addBranchGraph(contents);26     }27     public static void main(String[] args)28     {29         CanvasDemo demo = new CanvasDemo();30         new MainFrame(demo, 400, 400);31     }32 }

Java 3D 和 Swing

Canvas3D利用了你電腦的圖形卡以加強效能。不幸的是,這也意味著它不能與Sun的swing使用者介面控制項很好地配合使用。這些控制項被稱為是“輕量級”的。這些輕量級控制項即使應該是在前端的也會被Canvas3D隱藏掉。

對於這個問題我們有若干解決之道:

●   如果你把輕量級和重量級控制項放在不同的容器中,則它們可以在一個螢幕上混用。

●   如果你使用了快顯功能表,那麼JPopupMenu的靜態方法可以修複這個問題:
    setDefaultLightWeightPopupEnabled(false);

你也可以使用舊一些的AWT控制項代替swing。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.