import javax.swing.*; class App { static ObjectCollection mainCollection; private static void initWindow() { // create a window frame and set the title in the toolbar JFrame window = new JFrame("Testing"); // when we close the window, stop the app window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // create the jpanel to draw on. // this also initializes the game loop initObjects(); Screen screen = new Screen(mainCollection); // add the jpanel to the window window.add(screen); window.addKeyListener(screen); window.addMouseListener(screen); window.addMouseMotionListener(screen); // don't allow the user to resize the window window.setResizable(false); // fit the window size around the components (just our jpanel). // pack() should be called after setResizable() to avoid issues on some platforms window.pack(); // open window in the center of the screen window.setLocationRelativeTo(null); // display the window window.setVisible(true); } public static void main(String[] args) { // invokeLater() is used here to prevent our graphics processing from // blocking the GUI. https://stackoverflow.com/a/22534931/4655368 // this is a lot of boilerplate code that you shouldn't be too concerned about. // just know that when main runs it will call initWindow() once. SwingUtilities.invokeLater(App::initWindow); } public static void initObjects(){ mainCollection = new ObjectCollection(); // mainCollection.addObject(new Object3d(new PointComp[]{ // new PointComp(-10,-10,-10), // new PointComp(-10,-10,10), // new PointComp(-10,10,-10), // new PointComp(-10,10,10), // new PointComp(10,-10,-10), // new PointComp(10,-10,10), // new PointComp(10,10,-10), // new PointComp(10,10,10) // // }, new int[][]{ // {0,2,3,1}, // {4,5,7,6}, // {0,1,5,4}, // {1,3,7,5}, // {3,2,6,7}, // {2,0,4,6}, // }, true)); // mainCollection.addObject(new Object3d(new PointComp[]{ // new PointComp(-10,10,10), // new PointComp(-10,-10,10), // new PointComp(10,10,10), // new PointComp(10,-10,10), // new PointComp(0,0,24) // }, new int[][]{ // {0,2,3,1}, // {1,0,4}, // {0,2,4}, // {2,3,4}, // {3,1,4} // }, true)); mainCollection.addObject(new Object3d(new PointComp[]{ new PointComp(0,0,0), new PointComp(20,0,0), new PointComp(0,10,0), new PointComp(0,0,10), }, new int[][]{ {0,1,2}, {0,2,3}, {0,3,1} }, true)); } }