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