package ww10.gui; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import javax.swing.JFrame; import javax.swing.JProgressBar; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; final class SwingGUI { static { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } } private final DataModel dataModel; public SwingGUI(DataModel dataModel) { this.dataModel = dataModel; // created by non-swing thread, so do nothing. } void initialize() { statusbar = new javax.swing.JProgressBar(); actionPanel = new ActionPanel(dataModel); averageProfitPanel = new AverageProfitPanel(dataModel); // set up frame frame = new JFrame("Wetenschapsweek"); JSplitPane splitPane = new javax.swing.JSplitPane(); JTabbedPane tabs = new javax.swing.JTabbedPane(); frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); splitPane.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); splitPane.setBottomComponent(tabs); splitPane.setLeftComponent(statusbar); frame.getContentPane().add(splitPane); // this.progressFrame.setExtendedState(Frame.MAXIMIZED_BOTH); // Toolkit tk = Toolkit.getDefaultToolkit(); // int xSize = ((int) tk.getScreenSize().getWidth()); // int ySize = ((int) tk.getScreenSize().getHeight()); // this.progressFrame.setSize(xSize, ySize); // this.progressFrame.setSize(1200, 800); this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); statusbar.setStringPainted(true); //setting this causes gnome bars to be on top // this.progressFrame.setResizable(false); this.frame.setLocation(0, 0); // Toolkit tk = Toolkit.getDefaultToolkit(); // int xSize = ((int) tk.getScreenSize().getWidth()); // int ySize = ((int) tk.getScreenSize().getHeight()); // this.progressFrame.setSize(xSize, ySize); if (!this.frame.isDisplayable()) { // Can only do this when the frame is not visible this.frame.setUndecorated(true); } GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); if (gd.isFullScreenSupported()) { gd.setFullScreenWindow(this.frame); } else { // Can't run fullscreen, need to bodge around it (setSize to screen size, etc) } // this.frame.addKeyListener(new KeyListener() { // // public void keyPressed(KeyEvent e) { // } // // public void keyReleased(KeyEvent e) { // } // // public void keyTyped(KeyEvent e) { // if (e.getKeyChar() == 'f') { // // progressFrame.setResizable(false); // // // progressFrame.setUndecorated(true); // // GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); // // GraphicsDevice graphicsDevice = ge.getDefaultScreenDevice(); // // graphicsDevice.setFullScreenWindow(progressFrame); // // //myDevice.setFullScreenWindow(null); // } else if (e.getKeyChar() == 'x') { // System.exit(0); // } // } // // }); tabs.addTab("Average Profit", averageProfitPanel); tabs.addTab("Actions", actionPanel); this.frame.pack(); // not needed? this.frame.setVisible(true); } public void redraw() { } public void changeStatus(String status) { statusbar.setString(status); } JFrame frame; JProgressBar statusbar; ActionPanel actionPanel; AverageProfitPanel averageProfitPanel; }