package jme3test.awt; import com.jme3.app.SimpleApplication; import com.jme3.material.Material; import com.jme3.math.Vector3f; import com.jme3.scene.Geometry; import com.jme3.scene.shape.Box; import com.jme3.system.AppSettings; import com.jme3.system.JmeCanvasContext; import java.awt.Canvas; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; public class TestSafeCanvas extends SimpleApplication { public static void main(String[] args) throws InterruptedException{ AppSettings settings = new AppSettings(true); settings.setWidth(640); settings.setHeight(480); final TestSafeCanvas app = new TestSafeCanvas(); app.setPauseOnLostFocus(false); app.setSettings(settings); app.createCanvas(); app.startCanvas(true); JmeCanvasContext context = (JmeCanvasContext) app.getContext(); Canvas canvas = context.getCanvas(); canvas.setSize(settings.getWidth(), settings.getHeight()); Thread.sleep(3000); JFrame frame = new JFrame("Test"); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { app.stop(); } }); frame.getContentPane().add(canvas); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); Thread.sleep(3000); frame.getContentPane().remove(canvas); Thread.sleep(3000); frame.getContentPane().add(canvas); } @Override public void simpleInitApp() { flyCam.setDragToRotate(true); Box b = new Box(1, 1, 1); Geometry geom = new Geometry("Box", b); Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); mat.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg")); geom.setMaterial(mat); rootNode.attachChild(geom); } }