private JMenuItem getJMenuItem3() { if (jMenuItem3 == null) { jMenuItem3 = new JMenuItem(); jMenuItem3.setText("Solution"); jMenuItem3.setMnemonic(java.awt.event.KeyEvent.VK_S); jMenuItem3.setAccelerator( javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_S, java.awt.Event.CTRL_MASK, false)); jMenuItem3.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { solution = true; current = new ArrayList<String>(correct); shuffle(); getStatusLabel().setText("Correct solution."); // Change the buttons colors to green Iterator itr = buttons.iterator(); while (itr.hasNext()) { ((JButton) itr.next()).setBackground(java.awt.Color.green); } } }); } return jMenuItem3; }
@Override public JPopupMenu getComponentPopupMenu() { if (popupMenu == null) { popupMenu = new JPopupMenu(Messages.CHART_COLON); timeRangeMenu = new JMenu(Messages.PLOTTER_TIME_RANGE_MENU); timeRangeMenu.setMnemonic(Resources.getMnemonicInt(Messages.PLOTTER_TIME_RANGE_MENU)); popupMenu.add(timeRangeMenu); menuRBs = new JRadioButtonMenuItem[rangeNames.length]; ButtonGroup rbGroup = new ButtonGroup(); for (int i = 0; i < rangeNames.length; i++) { menuRBs[i] = new JRadioButtonMenuItem(rangeNames[i]); rbGroup.add(menuRBs[i]); menuRBs[i].addActionListener(this); if (viewRange == rangeValues[i]) { menuRBs[i].setSelected(true); } timeRangeMenu.add(menuRBs[i]); } popupMenu.addSeparator(); saveAsMI = new JMenuItem(Messages.PLOTTER_SAVE_AS_MENU_ITEM); saveAsMI.setMnemonic(Resources.getMnemonicInt(Messages.PLOTTER_SAVE_AS_MENU_ITEM)); saveAsMI.addActionListener(this); popupMenu.add(saveAsMI); } return popupMenu; }
private void addMenuItems(JMenu f, String m[]) { Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); for (int i = 0; i < m.length; i++) { if (m[i].equals("--")) { f.addSeparator(); } else if (m[i].equals("---")) { // (ulrivo): full size on screen with less than 640 width if (d.width >= 640) { f.addSeparator(); } else { return; } } else { JMenuItem item = new JMenuItem(m[i].substring(1)); char c = m[i].charAt(0); if (c != '-') { item.setMnemonic(c); } item.addActionListener(this); f.add(item); } } }
/** Creates a JRadioButtonMenuItem for the Look and Feel menu */ private JMenuItem createLafMenuItem( JMenu menu, String label, char mnemonic, String accessibleDescription, String laf) { JMenuItem mi = (JRadioButtonMenuItem) menu.add(new JRadioButtonMenuItem(label)); lafMenuGroup.add(mi); mi.setMnemonic(mnemonic); mi.getAccessibleContext().setAccessibleDescription(accessibleDescription); mi.addActionListener(new ChangeLookAndFeelAction(this, laf)); mi.setEnabled(isAvailableLookAndFeel(laf)); return mi; }
/** Creates a generic menu item */ protected JMenuItem createMenuItem( JMenu menu, String label, char mnemonic, String accessibleDescription, Action action) { JMenuItem mi = (JMenuItem) menu.add(new JMenuItem(label)); mi.setMnemonic(mnemonic); mi.getAccessibleContext().setAccessibleDescription(accessibleDescription); mi.addActionListener(action); if (action == null) { mi.setEnabled(false); } return mi; }
/** * Creates a new <tt>JMenuItem</tt> and adds it to this <tt>JPopupMenu</tt>. * * @param textKey the key of the internationalized string in the resources of the application * which represents the text of the new <tt>JMenuItem</tt> * @param iconID the <tt>ImageID</tt> of the image in the resources of the application which * represents the icon of the new <tt>JMenuItem</tt> * @param name the name of the new <tt>JMenuItem</tt> * @return a new <tt>JMenuItem</tt> instance which has been added to this <tt>JPopupMenu</tt> */ private JMenuItem createMenuItem(String textKey, ImageID iconID, String name) { ResourceManagementService resources = GuiActivator.getResources(); JMenuItem menuItem = new JMenuItem( resources.getI18NString(textKey), new ImageIcon(ImageLoader.getImage(iconID))); menuItem.setMnemonic(resources.getI18nMnemonic(textKey)); menuItem.setName(name); menuItem.addActionListener(this); add(menuItem); return menuItem; }
/** * This method initializes jMenuItem1 * * @return JMenuItem */ private JMenuItem getJMenuItem1() { if (jMenuItem1 == null) { jMenuItem1 = new JMenuItem(); jMenuItem1.setText("Quit"); jMenuItem1.setMnemonic(java.awt.event.KeyEvent.VK_X); jMenuItem1.setAccelerator( javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_X, java.awt.Event.CTRL_MASK, false)); jMenuItem1.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.exit(0); } }); } return jMenuItem1; }
/** * This method initializes jMenuItem * * @return JMenuItem */ private JMenuItem getJMenuItem() { if (jMenuItem == null) { jMenuItem = new JMenuItem(); jMenuItem.setText("New Game"); jMenuItem.setMnemonic(java.awt.event.KeyEvent.VK_N); jMenuItem.setAccelerator( javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_N, java.awt.Event.CTRL_MASK, false)); jMenuItem.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { shuffle(); } }); } return jMenuItem; }
private JMenuItem getJMenuItem2() { if (jMenuItem2 == null) { jMenuItem2 = new JMenuItem(); jMenuItem2.setText("Image Path"); jMenuItem2.setMnemonic(java.awt.event.KeyEvent.VK_O); jMenuItem2.setAccelerator( javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_O, java.awt.Event.CTRL_MASK, false)); jMenuItem2.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { // System.exit(0); jFileChooser = new JFileChooser(); jFileChooser.setDialogTitle("Select image directory."); jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); jFileChooser.setAcceptAllFileFilterUsed(false); if (jFileChooser.showOpenDialog(jPanel) == JFileChooser.APPROVE_OPTION) { path = jFileChooser.getSelectedFile() + "/"; solution = true; current = new ArrayList<String>(correct); for (int i = 1; i <= 16; i++) { // Add the icons in correct order icons[i - 1] = new ImageIcon(path + i + ".jpg"); } shuffle(); getStatusLabel().setText("New game started."); // Change the buttons colors to green Iterator itr = buttons.iterator(); while (itr.hasNext()) { ((JButton) itr.next()).setBackground(java.awt.Color.green); } } } }); } return jMenuItem2; }
/** Creates the GUI. */ public void majorLayout() { // // Setup Menu // JMenuBar menuBar = new JMenuBar(); JMenu file = new JMenu(ResourceHandler.getMessage("menu.file")); file.setMnemonic(ResourceHandler.getAcceleratorKey("menu.file")); file.add(exitMenuItem = new JMenuItem(ResourceHandler.getMessage("menu.exit"))); exitMenuItem.setMnemonic(ResourceHandler.getAcceleratorKey("menu.exit")); exitMenuItem.addActionListener(this); menuBar.add(file); JMenu edit = new JMenu(ResourceHandler.getMessage("menu.edit")); edit.setMnemonic(ResourceHandler.getAcceleratorKey("menu.edit")); edit.add(optionMenuItem = new JMenuItem(ResourceHandler.getMessage("menu.option"))); optionMenuItem.setMnemonic(ResourceHandler.getAcceleratorKey("menu.option")); optionMenuItem.addActionListener(this); menuBar.add(edit); JMenu help = new JMenu(ResourceHandler.getMessage("menu.help")); help.setMnemonic(ResourceHandler.getAcceleratorKey("menu.help")); help.add(helpMenuItem = new JMenuItem(ResourceHandler.getMessage("menu.help"))); helpMenuItem.setMnemonic(ResourceHandler.getAcceleratorKey("menu.help")); help.add(new JSeparator()); help.add(aboutMenuItem = new JMenuItem(ResourceHandler.getMessage("menu.about"))); aboutMenuItem.setMnemonic(ResourceHandler.getAcceleratorKey("menu.about")); helpMenuItem.addActionListener(this); aboutMenuItem.addActionListener(this); menuBar.add(help); setJMenuBar(menuBar); // // Setup main GUI // dirLabel = new JLabel(ResourceHandler.getMessage("converter_gui.lablel0")); dirTF = new JTextField(); dirBttn = new JButton(ResourceHandler.getMessage("button.browse.dir")); dirBttn.setMnemonic(ResourceHandler.getAcceleratorKey("button.browse.dir")); matchingLabel = new JLabel(ResourceHandler.getMessage("converter_gui.lablel1")); matchingTF = new JTextField(ResourceHandler.getMessage("converter_gui.lablel2")); recursiveCheckBox = new JCheckBox(ResourceHandler.getMessage("converter_gui.lablel3")); recursiveCheckBox.setMnemonic(ResourceHandler.getAcceleratorKey("converter_gui.lablel3")); backupLabel = new JLabel(ResourceHandler.getMessage("converter_gui.lablel5")); backupTF = new JTextField(); backupBttn = new JButton(ResourceHandler.getMessage("button.browse.backup")); backupBttn.setMnemonic(ResourceHandler.getAcceleratorKey("button.browse.backup")); templateLabel = new JLabel(ResourceHandler.getMessage("converter_gui.lablel7")); templateCh = new TemplateFileChoice(); staticVersioningLabel = new JLabel(ResourceHandler.getMessage("static.versioning.label")); String version = System.getProperty("java.version"); if (version.indexOf("-") > 0) { version = version.substring(0, version.indexOf("-")); } int dotIndex = version.indexOf("."); dotIndex = version.indexOf(".", dotIndex + 1); String familyVersion = version.substring(0, dotIndex); MessageFormat formatter = new MessageFormat(ResourceHandler.getMessage("static.versioning.radio.button")); staticVersioningRadioButton = new JRadioButton(formatter.format(new Object[] {version})); staticVersioningRadioButton.setMnemonic( ResourceHandler.getAcceleratorKey("static.versioning.radio.button")); formatter = new MessageFormat(ResourceHandler.getMessage("dynamic.versioning.radio.button")); dynamicVersioningRadioButton = new JRadioButton(formatter.format(new Object[] {familyVersion})); dynamicVersioningRadioButton.setMnemonic( ResourceHandler.getAcceleratorKey("dynamic.versioning.radio.button")); staticVersioningTextArea = new JTextArea(ResourceHandler.getMessage("static.versioning.text")); formatter = new MessageFormat(ResourceHandler.getMessage("dynamic.versioning.text")); dynamicVersioningTextArea = new JTextArea(formatter.format(new Object[] {familyVersion})); ButtonGroup versioningButtonGroup = new ButtonGroup(); versioningButtonGroup.add(staticVersioningRadioButton); versioningButtonGroup.add(dynamicVersioningRadioButton); runBttn = new JButton(ResourceHandler.getMessage("button.convert")); runBttn.setMnemonic(ResourceHandler.getAcceleratorKey("button.convert")); recursiveCheckBox.setOpaque(false); staticVersioningRadioButton.setOpaque(false); dynamicVersioningRadioButton.setOpaque(false); staticVersioningTextArea.setEditable(false); staticVersioningTextArea.setLineWrap(true); staticVersioningTextArea.setWrapStyleWord(true); dynamicVersioningTextArea.setEditable(false); dynamicVersioningTextArea.setLineWrap(true); dynamicVersioningTextArea.setWrapStyleWord(true); staticVersioningPanel.setLayout(new BorderLayout()); staticVersioningPanel.add(staticVersioningTextArea, "Center"); staticVersioningPanel.setBorder(new LineBorder(Color.black)); dynamicVersioningPanel.setLayout(new BorderLayout()); dynamicVersioningPanel.add(dynamicVersioningTextArea, "Center"); dynamicVersioningPanel.setBorder(new LineBorder(Color.black)); if (converter.isStaticVersioning()) { staticVersioningRadioButton.setSelected(true); } else { dynamicVersioningRadioButton.setSelected(true); } addListeners(); final int buf = 10, // Buffer (between components and form) sp = 10, // Space between components vsp = 5, // Vertical space indent = 20; // Indent between form (left edge) and component GridBagConstraints gbc = new GridBagConstraints(); GridBagLayout gbl = new GridBagLayout(); getContentPane().setLayout(gbl); // // Setup top panel // GridBagLayout topLayout = new GridBagLayout(); JPanel topPanel = new JPanel(); topPanel.setOpaque(false); topPanel.setLayout(topLayout); topLayout.setConstraints( dirLabel, new GridBagConstraints( 0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0)); topLayout.setConstraints( dirTF, new GridBagConstraints( 1, 0, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(vsp, 2, 0, 0), 0, 0)); topLayout.setConstraints( dirBttn, new GridBagConstraints( 2, 0, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(10, sp, 0, 0), 0, 0)); topLayout.setConstraints( matchingLabel, new GridBagConstraints( 0, 1, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0)); topLayout.setConstraints( matchingTF, new GridBagConstraints( 1, 1, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(vsp, 2, 0, 0), 0, 0)); topLayout.setConstraints( recursiveCheckBox, new GridBagConstraints( 2, 1, GridBagConstraints.REMAINDER, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(vsp, 10, 0, 0), 0, 0)); topLayout.setConstraints( backupLabel, new GridBagConstraints( 0, 3, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0)); topLayout.setConstraints( backupTF, new GridBagConstraints( 1, 3, 1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(vsp, 2, 0, 0), 0, 0)); topLayout.setConstraints( backupBttn, new GridBagConstraints( 2, 3, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(10, sp, 0, 0), 0, 0)); topLayout.setConstraints( templateLabel, new GridBagConstraints( 0, 4, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0)); topLayout.setConstraints( templateCh, new GridBagConstraints( 1, 4, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(vsp, 2, 0, 0), 0, 0)); topLayout.setConstraints( sep1, new GridBagConstraints( 0, 5, GridBagConstraints.REMAINDER, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(10, 10, 10, 10), 0, 0)); topLayout.setConstraints( staticVersioningLabel, new GridBagConstraints( 0, 6, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0)); topLayout.setConstraints( staticVersioningRadioButton, new GridBagConstraints( 0, 7, GridBagConstraints.REMAINDER, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(vsp, 10, 0, 0), 0, 0)); topLayout.setConstraints( staticVersioningPanel, new GridBagConstraints( 0, 8, GridBagConstraints.REMAINDER, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(vsp, 25, 10, 0), 0, 0)); topLayout.setConstraints( dynamicVersioningRadioButton, new GridBagConstraints( 0, 9, GridBagConstraints.REMAINDER, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(vsp, 10, 0, 0), 0, 0)); topLayout.setConstraints( dynamicVersioningPanel, new GridBagConstraints( 0, 10, GridBagConstraints.REMAINDER, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(vsp, 25, 0, 0), 0, 0)); topLayout.setConstraints( sep2, new GridBagConstraints( 0, 11, GridBagConstraints.REMAINDER, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(10, 10, 0, 10), 0, 0)); invisibleBttn = new JButton(); invisibleBttn.setVisible(false); topLayout.setConstraints( invisibleBttn, new GridBagConstraints( 2, 6, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.CENTER, new Insets(indent, sp, 0, 0), 0, 0)); topPanel.add(dirLabel); topPanel.add(dirTF); topPanel.add(dirBttn); topPanel.add(matchingLabel); topPanel.add(matchingTF); topPanel.add(recursiveCheckBox); topPanel.add(backupLabel); topPanel.add(backupTF); topPanel.add(backupBttn); topPanel.add(templateLabel); topPanel.add(templateCh); topPanel.add(sep1); topPanel.add(staticVersioningLabel); topPanel.add(staticVersioningRadioButton); topPanel.add(staticVersioningPanel); topPanel.add(dynamicVersioningRadioButton); topPanel.add(dynamicVersioningPanel); topPanel.add(sep2); topPanel.add(invisibleBttn); // // Setup bottom panel // GridBagLayout buttomLayout = new GridBagLayout(); JPanel buttomPanel = new JPanel(); buttomPanel.setOpaque(false); buttomPanel.setLayout(buttomLayout); buttomLayout.setConstraints( runBttn, new GridBagConstraints( 3, 0, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(sp, 0, 0, 0), 0, 0)); buttomPanel.add(runBttn); // // Setup main panel // GridBagLayout mainLayout = new GridBagLayout(); JPanel mainPanel = new JPanel(); mainPanel.setOpaque(false); mainPanel.setLayout(mainLayout); mainLayout.setConstraints( topPanel, new GridBagConstraints( 0, 0, 1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(buf, buf, 0, buf), 0, 0)); mainLayout.setConstraints( buttomPanel, new GridBagConstraints( 0, 1, 1, 1, 1, 1, GridBagConstraints.SOUTH, GridBagConstraints.HORIZONTAL, new Insets(0, buf, buf, buf), 0, 0)); mainPanel.add(topPanel); mainPanel.add(buttomPanel); Border border = BorderFactory.createEtchedBorder(); mainPanel.setBorder(border); GridBagLayout layout = new GridBagLayout(); getContentPane().setLayout(layout); layout.setConstraints( mainPanel, new GridBagConstraints( 0, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); getContentPane().add(mainPanel); pack(); setResizable(false); }
public View(Model model) { this.model = model; model.makeMeObserver(this); frame = new JFrame(); statusbar = new JLabel(" 0"); board = new Board(); frame.add(board); JMenuBar menubar = new JMenuBar(); JMenu file = new JMenu("Settings"); file.setMnemonic(KeyEvent.VK_F); JMenuItem eMenuItem = new JMenuItem("New game"); eMenuItem.setToolTipText("Start a new game"); eMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { menuEvent = -1; setChanged(); notifyObservers(); menuEvent = 0; } }); file.add(eMenuItem); eMenuItem = new JMenuItem("Pause"); eMenuItem.setMnemonic(KeyEvent.VK_P); eMenuItem.setToolTipText("Set pause"); eMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { menuEvent = 1; setChanged(); notifyObservers(); menuEvent = 0; } }); file.add(eMenuItem); JMenu imp = new JMenu("Set level"); imp.setMnemonic(KeyEvent.VK_M); JMenuItem lvl1 = new JMenuItem("level 1"); lvl1.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { menuEvent = 2; setChanged(); notifyObservers(); menuEvent = 0; } }); JMenuItem lvl2 = new JMenuItem("level 2"); lvl2.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { menuEvent = 3; setChanged(); notifyObservers(); menuEvent = 0; } }); JMenuItem lvl3 = new JMenuItem("level 3"); lvl3.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { menuEvent = 4; setChanged(); notifyObservers(); menuEvent = 0; } }); JMenuItem lvl4 = new JMenuItem("level 4"); lvl4.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { menuEvent = 5; setChanged(); notifyObservers(); menuEvent = 0; } }); JMenuItem lvl5 = new JMenuItem("level 5"); lvl5.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { menuEvent = 6; setChanged(); notifyObservers(); menuEvent = 0; } }); imp.add(lvl1); imp.add(lvl2); imp.add(lvl3); imp.add(lvl4); imp.add(lvl5); file.add(imp); eMenuItem = new JMenuItem("Table of recorgs"); eMenuItem.setToolTipText("Show table of records"); eMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { recordDialog ad; try { ad = new recordDialog(); ad.setVisible(true); } catch (IOException e) { e.printStackTrace(); } } }); file.add(eMenuItem); eMenuItem = new JMenuItem("Exit"); eMenuItem.setMnemonic(KeyEvent.VK_C); eMenuItem.setToolTipText("Exit application"); eMenuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); } }); file.add(eMenuItem); menubar.add(file); frame.setJMenuBar(menubar); statusbar.setPreferredSize(new Dimension(-1, 22)); statusbar.setBorder(LineBorder.createGrayLineBorder()); frame.add(statusbar, BorderLayout.SOUTH); frame.setSize(200, 400); frame.setTitle("Tetris"); frame.setLocationRelativeTo(null); }
private void setUpMenuBar() { // Set Up Menu Bar JMenuBar menu = new JMenuBar(); // Game Menu JMenu gameMenu = new JMenu("Game"); menu.add(gameMenu); JMenuItem newRandom = new JMenuItem("New Game"); gameMenu.add(newRandom); newRandom.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); newRandom.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { newGame(); } }); gameMenu.addSeparator(); ButtonGroup bg = new ButtonGroup(); JRadioButtonMenuItem size4 = new JRadioButtonMenuItem("4x4 board"); size4.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { myBoardSize = 4; } }); size4.setSelected(true); bg.add(size4); gameMenu.add(size4); JRadioButtonMenuItem size5 = new JRadioButtonMenuItem("5x5 board"); size5.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { myBoardSize = 5; } }); bg.add(size5); gameMenu.add(size5); gameMenu.addSeparator(); JMenuItem gameTime = new JMenuItem("Time (secs)"); gameMenu.add(gameTime); gameTime.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String secs = JOptionPane.showInputDialog(BoggleGUI.this, "time in seconds"); try { int len = Integer.parseInt(secs); myGameLength = len; myProgress.setMaximum(myGameLength); } catch (NumberFormatException e1) { if (secs != null) { showError(secs + " not valid integer value"); } } } }); gameMenu.addSeparator(); JMenuItem quitGame = new JMenuItem("Quit"); gameMenu.add(quitGame); quitGame.setMnemonic('Q'); quitGame.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); // Help menu JMenu helpMenu = new JMenu("Help"); menu.add(helpMenu); helpMenu.setMnemonic(KeyEvent.VK_H); JMenuItem aboutGame = new JMenuItem("About..."); helpMenu.add(aboutGame); aboutGame.setMnemonic(KeyEvent.VK_A); aboutGame.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog( BoggleGUI.this, "Compsci Boggle, brought to you\n" + "by educators and students\n" + "including, of course, you.", "About Game", JOptionPane.PLAIN_MESSAGE); } }); setJMenuBar(menu); }
/** * Constructs a simple frame with the specified world and orientation. * * @param world the world view. * @param ao the axes orientation. */ public RSFFrame(World world, AxesOrientation ao) { super(new PlotPanel()); if (world == null) world = new World(); if (ao == null) ao = AxesOrientation.XRIGHT_YOUT_ZDOWN; _world = world; _view = new OrbitView(_world); _view.setAxesOrientation(ao); _canvas = new ViewCanvas(); _canvas.setView(_view); _canvas.setBackground(Color.WHITE); _points = new ArrayList<PointGroup>(); _lines = new ArrayList<LineGroup>(); _d = null; _tpx = null; _tpy = null; _ipg = null; _etc = null; _coord = null; ModeManager mm = new ModeManager(); mm.add(_canvas); OrbitViewMode ovm = new OrbitViewMode(mm); SelectDragMode sdm = new SelectDragMode(mm); JPopupMenu.setDefaultLightWeightPopupEnabled(false); ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false); JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic('F'); Action exitAction = new AbstractAction("Exit") { public void actionPerformed(ActionEvent event) { System.exit(0); } }; Action cubeAction = new AbstractAction("Add Cube") { public void actionPerformed(ActionEvent event) { String filename = chooseFile("."); if (filename != null) addRSFCube(filename); } }; Action lineAction = new AbstractAction("Add Line") { public void actionPerformed(ActionEvent event) { String filename = chooseFile("."); if (filename != null) addRSFLine(filename); } }; Action pointAction = new AbstractAction("Add Points") { public void actionPerformed(ActionEvent event) { String filename = chooseFile("."); if (filename != null) addRSFPoint(filename); } }; Action loadViewAction = new AbstractAction("Load Viewpoint") { public void actionPerformed(ActionEvent event) { String filename = chooseFile("."); if (filename != null) loadView(filename); } }; Action saveViewAction = new AbstractAction("Save Viewpoint") { public void actionPerformed(ActionEvent event) { JFileChooser chooser = new JFileChooser(new File(".")); int returnVal = chooser.showSaveDialog(new JFrame()); String filename = null; if (returnVal == JFileChooser.APPROVE_OPTION) { filename = chooser.getSelectedFile().getPath(); saveView(filename); } } }; Action saveFrameAction = new AbstractAction("Save to PNG") { public void actionPerformed(ActionEvent event) { JFileChooser chooser = new JFileChooser(new File(".")); int returnVal = chooser.showSaveDialog(new JFrame()); String filename = null; if (returnVal == JFileChooser.APPROVE_OPTION) { filename = chooser.getSelectedFile().getPath(); saveFrametoPNG(filename); } } }; JMenuItem cubeItem = fileMenu.add(cubeAction); cubeItem.setMnemonic('C'); JMenuItem lineItem = fileMenu.add(lineAction); lineItem.setMnemonic('L'); JMenuItem pointItem = fileMenu.add(pointAction); pointItem.setMnemonic('P'); JMenuItem saveViewItem = fileMenu.add(saveViewAction); saveViewItem.setMnemonic('V'); JMenuItem loadViewItem = fileMenu.add(loadViewAction); loadViewItem.setMnemonic('I'); JMenuItem saveFrameItem = fileMenu.add(saveFrameAction); saveFrameItem.setMnemonic('S'); JMenuItem exitItem = fileMenu.add(exitAction); exitItem.setMnemonic('X'); JMenu colorMenu = new JMenu("Color"); Action jetAction = new AbstractAction("Jet") { public void actionPerformed(ActionEvent event) { _color = ColorList.JET; setColorMap(); } }; Action prismAction = new AbstractAction("Prism") { public void actionPerformed(ActionEvent event) { _color = ColorList.PRISM; setColorMap(); } }; Action grayAction = new AbstractAction("Gray") { public void actionPerformed(ActionEvent event) { _color = ColorList.GRAY; setColorMap(); } }; Action rwbAction = new AbstractAction("Red-White-Blue") { public void actionPerformed(ActionEvent event) { _color = ColorList.RWB; setColorMap(); } }; colorMenu.add(jetAction); colorMenu.add(prismAction); colorMenu.add(grayAction); colorMenu.add(rwbAction); JMenu clipMenu = new JMenu("% Clip"); Action clipUp = new AbstractAction("Set max pclip") { public void actionPerformed(ActionEvent event) { String value = JOptionPane.showInputDialog(new JFrame(), "Percentile Clip Max (0-100.0):", _pmax); try { _pmax = Float.parseFloat(value); if (_pmax > 100.0f) _pmax = 100.0f; if (_pmax < _pmin) _pmax = _pmin + 1.0f; System.out.printf("pclip: (%f,%f) \n", _pmin, _pmax); _ipg.setPercentiles(_pmin, _pmax); } catch (Exception e) { System.out.println(e); } } }; Action clipDown = new AbstractAction("Set min pclip") { public void actionPerformed(ActionEvent event) { String value = JOptionPane.showInputDialog( new JFrame(), String.format("Percentile Clip Min (0-%f):", _pmax), _pmin); try { _pmin = Float.parseFloat(value); if (_pmin < 0.0f) _pmin = 0.0f; if (_pmin > _pmax) _pmin = _pmax - 1.0f; System.out.printf("pclip: (%f,%f) \n", _pmin, _pmax); _ipg.setPercentiles(_pmin, _pmax); } catch (Exception e) { System.out.println(e); } } }; clipMenu.add(clipUp); clipMenu.add(clipDown); JMenu modeMenu = new JMenu("Mode"); modeMenu.setMnemonic('M'); JMenuItem ovmItem = new JMenuItem(ovm); modeMenu.add(ovmItem); JMenuItem sdmItem = new JMenuItem(sdm); modeMenu.add(sdmItem); JMenu tensorMenu = new JMenu("Tensor"); Action tenLoadAction = new AbstractAction("Load Tensors") { public void actionPerformed(ActionEvent event) { String filename = chooseFile("."); if (filename != null) loadTensors(filename); } }; Action tenCoordLoadAction = new AbstractAction("Load Tensor Coordinates") { public void actionPerformed(ActionEvent event) { String filename = chooseFile("."); if (filename != null) loadTensorCoords(filename); } }; Action showTenAction = new AbstractAction("Show Tensors at Coordinates") { public void actionPerformed(ActionEvent event) { String filename; int sel; if (_ipg == null) { sel = JOptionPane.showConfirmDialog( null, "An RSF Cube (Image) needs to be loaded. " + " Would you like to load one?", "Notice", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if (sel == JOptionPane.OK_OPTION) { filename = chooseFile("."); if (filename != null) addRSFCube(filename); } else { JOptionPane.showConfirmDialog( null, "Cannot load tensors because an RFC cube was not loaded.", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE); return; } } if (_coord == null) { sel = JOptionPane.showConfirmDialog( null, "The tensors coordinates need to be loaded. " + " Would you like to load them?", "Notice", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if (sel == JOptionPane.OK_OPTION) { filename = chooseFile("."); if (filename != null) loadCoord(filename); } else { JOptionPane.showConfirmDialog( null, "Error loading coordinates.", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE); return; } } if (_etc == null) { sel = JOptionPane.showConfirmDialog( null, "The tensors at coordinates need to be loaded. " + " Would you like to load them?", "Notice", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if (sel == JOptionPane.OK_OPTION) { filename = chooseFile("."); if (filename != null) loadTensorCoords(filename); return; } else { JOptionPane.showConfirmDialog( null, "Cannot show tensors because the tensors at coordinates" + " were not loaded.", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE); return; } } /* if(_d == null) { sel = JOptionPane.showConfirmDialog(null, "The tensors need to be loaded. " + " Would you like to load them?", "Notice", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if(sel == JOptionPane.OK_OPTION) { filename = chooseFile("."); if (filename != null) loadTensors(filename); } else { JOptionPane.showConfirmDialog(null, "Cannot show tensors because the tensors were not loaded.", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE); return; } } if(_etg == null) { sel = JOptionPane.showConfirmDialog(null, "The tensor coordinates need to be loaded. " + " Would you like to load them?", "Notice", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if(sel == JOptionPane.OK_OPTION) { filename = chooseFile("."); if (filename != null) loadTensorCoords(filename); return; } else { JOptionPane.showConfirmDialog(null, "Cannot show tensors because the tensor coordinates" + " were not loaded.", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE); return; } } */ _world.addChild(_etg); } }; Action hideTenAction = new AbstractAction("Hide Tensors at Coordinates") { public void actionPerformed(ActionEvent event) { if (_etg != null) _world.removeChild(_etg); } }; Action showTenPanAction = new AbstractAction("Show Tensor Panels") { public void actionPerformed(ActionEvent event) { String filename; int sel; if (_ipg == null) { sel = JOptionPane.showConfirmDialog( null, "An RSF Cube (Image) needs to be loaded. " + " Would you like to load one?", "Notice", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if (sel == JOptionPane.OK_OPTION) { filename = chooseFile("."); if (filename != null) addRSFCube(filename); } else { JOptionPane.showConfirmDialog( null, "Cannot load tensors because an RFC cube was not loaded.", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE); return; } } if (_d == null) { sel = JOptionPane.showConfirmDialog( null, "The tensors need to be loaded. " + " Would you like to load them?", "Notice", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if (sel == JOptionPane.OK_OPTION) { filename = chooseFile("."); if (filename != null) loadTensors(filename); addRSFTensorEllipsoids(); } else { JOptionPane.showConfirmDialog( null, "Cannot show tensors because the tensors were not loaded.", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE); return; } } else if (_tpx == null || _tpy == null) { addRSFTensorEllipsoids(); } else { ImagePanel ipx = _ipg.getImagePanel(Axis.X); ImagePanel ipy = _ipg.getImagePanel(Axis.Y); ipx.getFrame().addChild(_tpx); ipy.getFrame().addChild(_tpy); } } }; Action hideTenPanAction = new AbstractAction("Hide Tensor Panels") { public void actionPerformed(ActionEvent event) { if (_tpx != null) { ImagePanel ipx = _ipg.getImagePanel(Axis.X); ipx.getFrame().removeChild(_tpx); } if (_tpy != null) { ImagePanel ipy = _ipg.getImagePanel(Axis.Y); ipy.getFrame().removeChild(_tpy); } } }; JMenuItem tensorItem0 = tensorMenu.add(tenLoadAction); tensorItem0.setMnemonic('L'); JMenuItem tensorItem2 = tensorMenu.add(tenCoordLoadAction); tensorItem2.setMnemonic('C'); JMenuItem tensorItem1 = tensorMenu.add(showTenPanAction); tensorItem1.setMnemonic('T'); JMenuItem tensorItem5 = tensorMenu.add(hideTenPanAction); tensorItem5.setMnemonic('R'); JMenuItem tensorItem4 = tensorMenu.add(showTenAction); tensorItem4.setMnemonic('S'); JMenuItem tensorItem3 = tensorMenu.add(hideTenAction); tensorItem3.setMnemonic('H'); JMenuBar menuBar = new JMenuBar(); menuBar.add(fileMenu); menuBar.add(modeMenu); menuBar.add(tensorMenu); menuBar.add(colorMenu); menuBar.add(clipMenu); JToolBar toolBar = new JToolBar(SwingConstants.VERTICAL); toolBar.setRollover(true); JToggleButton ovmButton = new ModeToggleButton(ovm); toolBar.add(ovmButton); JToggleButton sdmButton = new ModeToggleButton(sdm); toolBar.add(sdmButton); _cb = new ColorBar(); _cb.setWidthMinimum(45); _cb.setFont(_cb.getFont().deriveFont(18.f)); // _ipg.addColorMapListener(_cb); ovm.setActive(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(new Dimension(SIZE, SIZE)); this.add(_canvas, BorderLayout.CENTER); this.add(toolBar, BorderLayout.WEST); this.add(_cb, BorderLayout.EAST); this.setJMenuBar(menuBar); this.setVisible(true); }