Guest User

Untitled

a guest
Apr 22nd, 2014
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. package mygame;
  2.  
  3. import com.jme3.app.Application;
  4. import com.jme3.app.SimpleApplication;
  5. import com.jme3.system.AppSettings;
  6. import com.jme3.system.JmeCanvasContext;
  7. import com.jme3.util.JmeFormatter;
  8. import java.awt.BorderLayout;
  9. import java.awt.Canvas;
  10. import java.awt.Container;
  11. import java.awt.Dimension;
  12. import java.awt.Toolkit;
  13. import java.awt.event.WindowAdapter;
  14. import java.awt.event.WindowEvent;
  15. import java.util.concurrent.Callable;
  16. import java.util.logging.ConsoleHandler;
  17. import java.util.logging.Handler;
  18. import java.util.logging.Logger;
  19. import javax.swing.*;
  20.  
  21. public class CanvasTest {
  22.  
  23. private static JmeCanvasContext context;
  24. protected static Canvas canvas;
  25. protected static JFrame frame;
  26. protected static Container canvasPanel1, canvasPanel2, canvasPanelOpt1, canvasPanelOpt2;
  27. protected static JScrollPane logScrollPane;
  28. private static Container currentPanel;
  29. protected static JTabbedPane tabbedPane, tabbedPaneOpt;
  30. private static final String appClass = Main.class.getName();
  31. protected static JMenu menuTortureMethods;
  32. protected static JTextArea LogArea;
  33. protected static Application app;
  34. protected static AppSettings settings;
  35.  
  36. private static void createTabs() {
  37. // tabbedPane = new JTabbedPane();
  38.  
  39. canvasPanel1 = new JPanel();
  40. canvasPanel1.setLayout(new BorderLayout());
  41.  
  42.  
  43. frame.getContentPane().add(canvasPanel1);
  44.  
  45. currentPanel = canvasPanel1;
  46.  
  47. }
  48.  
  49. private static void createMenu() {
  50. JMenuBar menuBar = new JMenuBar();
  51. frame.setJMenuBar(menuBar);
  52.  
  53. // // create menu
  54. menuTortureMethods = new JMenu("File");
  55. menuBar.add(menuTortureMethods);
  56.  
  57. }
  58.  
  59. private static void createFrame() {
  60. frame = new JFrame("SimpleWorldEditor ");
  61. frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  62. frame.addWindowListener(new WindowAdapter() {
  63. @Override
  64. public void windowClosed(WindowEvent e) {
  65. app.stop();
  66. }
  67. });
  68.  
  69. createTabs();
  70.  
  71. }
  72.  
  73. public static void createCanvas(String appClass) {
  74. settings = new AppSettings(true);
  75.  
  76. // Get the default toolkit
  77. Toolkit toolkit = Toolkit.getDefaultToolkit();
  78.  
  79. // Get the current screen size
  80. Dimension scrnsize = toolkit.getScreenSize();
  81.  
  82. settings.setVSync(true);
  83. settings.setWidth(scrnsize.width - 100);
  84. settings.setHeight(scrnsize.height - 100);
  85.  
  86. try {
  87. Class<? extends Application> clazz = (Class<? extends Application>) Class.forName(appClass);
  88. app = clazz.newInstance();
  89. } catch (ClassNotFoundException ex) {
  90. ex.printStackTrace();
  91. } catch (InstantiationException ex) {
  92. ex.printStackTrace();
  93. } catch (IllegalAccessException ex) {
  94. ex.printStackTrace();
  95. }
  96.  
  97. // app = new Application();
  98. app.setPauseOnLostFocus(true);
  99. app.setSettings(settings);
  100. app.createCanvas();
  101. app.startCanvas();
  102. // app.setPauseOnLostFocus(true);
  103.  
  104. context = (JmeCanvasContext) app.getContext();
  105. canvas = context.getCanvas();
  106. canvas.setSize(settings.getWidth(), settings.getHeight());
  107.  
  108. }
  109.  
  110. public static void startApp() {
  111. app.startCanvas();
  112. app.enqueue(new Callable<Void>() {
  113. public Void call() {
  114. if (app instanceof SimpleApplication) {
  115. SimpleApplication simpleApp = (SimpleApplication) app;
  116. // simpleApp.getFlyByCamera().setDragToRotate(true);
  117. }
  118. return null;
  119. }
  120. });
  121.  
  122. }
  123.  
  124. public static void main(String[] args) {
  125. JmeFormatter formatter = new JmeFormatter();
  126.  
  127. Handler consoleHandler = new ConsoleHandler();
  128. consoleHandler.setFormatter(formatter);
  129.  
  130. Logger.getLogger("").removeHandler(Logger.getLogger("").getHandlers()[0]);
  131. Logger.getLogger("").addHandler(consoleHandler);
  132.  
  133. createCanvas(appClass);
  134.  
  135. try {
  136. Thread.sleep(500);
  137. } catch (InterruptedException ex) {
  138. }
  139.  
  140. SwingUtilities.invokeLater(new Runnable() {
  141. public void run() {
  142.  
  143. // try {
  144. //
  145. // String strLook = null;
  146. // if (System.getProperty("os.name").equals("Linux")) {
  147. // strLook = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
  148. // } else {
  149. // strLook = UIManager.getSystemLookAndFeelClassName();
  150. // }
  151. //
  152. // UIManager.setLookAndFeel(strLook);
  153. // } catch (Exception ex) {
  154. // ex.printStackTrace();
  155. // }
  156.  
  157. JPopupMenu.setDefaultLightWeightPopupEnabled(false);
  158.  
  159. createFrame();
  160.  
  161. currentPanel.add(canvas, BorderLayout.CENTER);
  162. frame.pack();
  163. startApp();
  164. frame.setLocationRelativeTo(null);
  165. frame.setVisible(true);
  166. }
  167. });
  168. }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment