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, I have an instance of DisplayImplJ2D. When I add the result of getComponent(), which is a DisplayPanelJ2D, to an internal frame I *sometimes* get a gray window without the plot. If I get the gray window, I find 1) the canvas field of DisplayPanelJ2D actually does have the plot. This canvas can be accessed by displayPanelJ2D.getComponents()[0] It seems that the DisplayPanelJ2D isn't "activated". I have looked at the source code of DisplayPanelJ2D and couldn't find out why. 2) if click on it, i get these: java.lang.NullPointerException at visad.MouseHelper.enableFunctions(MouseHelper.java:566) at visad.MouseHelper.processEvent(MouseHelper.java:378) at visad.MouseHelper.processEvent(MouseHelper.java:138) at visad.java2d.VisADCanvasJ2D$2.mousePressed(VisADCanvasJ2D.java:204) at java.awt.Component.processMouseEvent(Component.java:5090) at java.awt.Component.processEvent(Component.java:4890) at java.awt.Container.processEvent(Container.java:1566) at java.awt.Component.dispatchEventImpl(Component.java:3598) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3439) .... 3) If I resize the internal frame the plot shows. I have never had problems if I add the DisplayPanelJ2D to a JFrame. Similar problem has been reported in the list before but it has never been reproduced and tracked down. I try to reproduce the problem with something really simple but it sometimes gives different result in different run. I put the code at the end of the post. The last frame that shows, which is labeled as "clas visad.java2d.DisplayPanelJ2D" is the interesting window. the other windows have to be there or the problem doesn't show! Since JInternalFrame is the only light weight conttainer in in the Swing library. I wonder if the problem has something to do with it. btw I have read about the 3D display problem with JInternalFrames, which is a separate problem. any thoughts? import java.awt.*; import javax.swing.*; import visad.java2d.*; public class BadVis { // desk top static JFrame jf = new JFrame("foo"); static JDesktopPane desk = new JDesktopPane(); public static void add(JComponent c) { JInternalFrame f1 = new JInternalFrame (c.getClass().toString(), true, true, true, true); f1.getContentPane().add (c); f1.getContentPane().validate(); f1.pack(); f1.setLocation(80,80); f1.setVisible(true); desk.add (f1); f1.moveToFront(); } static void useFrames(String[] av) { jf.setSize(400,400); jf.setContentPane (desk); jf.setVisible(true); // a JPanel JPanel jp = new JPanel(); jp.setPreferredSize(new Dimension(200,200)); add(jp); // a label JLabel jl=new JLabel("sssss"); add(jl); //VisAD plot DisplayImplJ2D d = null; try { d = new DisplayImplJ2D("dis"); } catch (Exception e) {} Component c = d.getComponent(); add ((JComponent) c); } public static final void main(String[] av) { useFrames(av); } } __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/
visad
archives: