NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Vladimir, > Hello, I have some trouble when adding a DisplayPanelJ3D in a > JInternalFrame. > Actually, the DisplayPanelJ3D hiddes every other DesktopPane's > JInternalFrame, and > even every component of my main Frame!. > > I have tried to modify the layer of the JInternalFrame containing the > DisplayPanelJ3D, but it doesn't work. > > When using a DisplayPanelJ2D I don't have this kind of problem, why? This is a well-known problem with Java3D (DisplayPanelJ3D uses the Java3D graphics API, whereas DisplayPanelJ2D uses Java2D). Java3D is implemented using OpenGL (or Direct3D) which can utilize 3-D graphics hardware. In order for the graphics hardware to deal with window occlusion properly, it must render into a native window of either X Windows or M$ Windows. Thus the Java3D renders into a Canvas3D (extended to VisADCanvasJ3D inside the DisplayPanelJ3D) which corr4esponds to a native window. Many of the swing components do not have a native window - they are called lightweight and Java Swing manages their window occlusion. Since they do not have native windows, the 3-D graphics hardware doesn't even know they exist and ignores them in window occlusion computations. This has been discussed many times on the java3d-interest@xxxxxxxxxxxx mailing list, and there won't be a clean solution anytime soon. The work-around is to use heavyweight components for everything. The VisAD SpreadSheet is an excellent example of a GUI that works well with Java3D. Cheers, Bill ---------------------------------------------------------- Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706 hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738 http://www.ssec.wisc.edu/~billh/vis.html
visad
archives: