159b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartapackage jme3test.awt;
259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
359b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.app.SimpleApplication;
459b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.material.Material;
559b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.math.Vector3f;
659b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.scene.Geometry;
759b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.scene.shape.Box;
859b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.system.AppSettings;
959b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport com.jme3.system.JmeCanvasContext;
1059b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.awt.Canvas;
1159b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.awt.event.WindowAdapter;
1259b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport java.awt.event.WindowEvent;
1359b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartaimport javax.swing.JFrame;
1459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
1559b2e6871c65f58fdad78cd7229c292f6a177578Scott Bartapublic class TestSafeCanvas extends SimpleApplication {
1659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
1759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public static void main(String[] args) throws InterruptedException{
1859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        AppSettings settings = new AppSettings(true);
1959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        settings.setWidth(640);
2059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        settings.setHeight(480);
2159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
2259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        final TestSafeCanvas app = new TestSafeCanvas();
2359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        app.setPauseOnLostFocus(false);
2459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        app.setSettings(settings);
2559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        app.createCanvas();
2659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        app.startCanvas(true);
2759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
2859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        JmeCanvasContext context = (JmeCanvasContext) app.getContext();
2959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Canvas canvas = context.getCanvas();
3059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        canvas.setSize(settings.getWidth(), settings.getHeight());
3159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Thread.sleep(3000);
3559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
3659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        JFrame frame = new JFrame("Test");
3759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
3859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        frame.addWindowListener(new WindowAdapter() {
3959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            @Override
4059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            public void windowClosing(WindowEvent e) {
4159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta                app.stop();
4259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta            }
4359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        });
4459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        frame.getContentPane().add(canvas);
4559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        frame.pack();
4659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        frame.setLocationRelativeTo(null);
4759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        frame.setVisible(true);
4859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
4959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Thread.sleep(3000);
5059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
5159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        frame.getContentPane().remove(canvas);
5259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
5359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Thread.sleep(3000);
5459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
5559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        frame.getContentPane().add(canvas);
5659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
5759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
5859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    @Override
5959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    public void simpleInitApp() {
6059b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        flyCam.setDragToRotate(true);
6159b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta
6259b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Box b = new Box(Vector3f.ZERO, 1, 1, 1);
6359b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Geometry geom = new Geometry("Box", b);
6459b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
6559b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        mat.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg"));
6659b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        geom.setMaterial(mat);
6759b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta        rootNode.attachChild(geom);
6859b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta    }
6959b2e6871c65f58fdad78cd7229c292f6a177578Scott Barta}
70