Login  Register

Re: Mac Canvas3D location bug

Posted by Manu on Sep 30, 2013; 11:43am
URL: https://forum.jogamp.org/Mac-Canvas3D-location-bug-tp4030052p4030144.html

I found an other issue about visibility of a canvas3D, and also an issue about Canvas3D location when only AWT is used.
The following test should allow the user to show / hide a canvas 3D, but it has no visible effect.
There shouldn't be so much space between the visibility check box and the canvas.
import java.awt.*;
import java.awt.GraphicsEnvironment;
import java.awt.event.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class Canvas3DVisibilityTest {
  public static void main(String [] args) {
    // Create a new canvas 3D bound to a universe
    GraphicsConfigTemplate3D gc = new GraphicsConfigTemplate3D();
    final Canvas3D canvas = new Canvas3D(GraphicsEnvironment.getLocalGraphicsEnvironment().
        getDefaultScreenDevice().getBestConfiguration(gc));
    new SimpleUniverse(canvas);

    // Create a check box that hides / shows canvas
    final Checkbox checkbox = new Checkbox("Visible canvas", true);
    checkbox.addItemListener(new ItemListener() {
      public void itemStateChanged(ItemEvent ev) {
        canvas.setVisible(checkbox.getState());
        System.out.println(canvas.isVisible());
      }
    });

    // Build a GUI that displays canvas and check box
    Frame frame = new Frame("Canvas3DVisibilityTest");
    frame.setLayout(new BorderLayout());
    frame.add(canvas, BorderLayout.CENTER);
    frame.add(checkbox, BorderLayout.NORTH);
    frame.setSize(200, 200);
    frame.setVisible(true);
  }
}

Thanks for trying to fix this issue.
Emmanuel Puybaret