/** * Prompts the user to select a file. * * @param acceptableSuffixes * @return */ private File getFileUsingDialog(final String... acceptableSuffixes) { // For some strange reason, // the only way to get a Mac OS X native-style file dialog // is to use an AWT FileDialog instead of a Swing JDialog if (GameRunner.isMac()) { final FileDialog fileDialog = new FileDialog(MainFrame.getInstance()); fileDialog.setMode(FileDialog.LOAD); fileDialog.setFilenameFilter( new FilenameFilter() { public boolean accept(final File dir, final String name) { if (acceptableSuffixes == null || acceptableSuffixes.length == 0) return true; for (final String suffix : acceptableSuffixes) { if (name.toLowerCase().endsWith(suffix)) return true; } return false; } }); fileDialog.setVisible(true); final String fileName = fileDialog.getFile(); final String dirName = fileDialog.getDirectory(); if (fileName == null) return null; return new File(dirName, fileName); } final JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileFilter( new FileFilter() { @Override public boolean accept(final File file) { if (file == null) return false; else if (file.isDirectory()) return true; else { final String name = file.getAbsolutePath().toLowerCase(); for (final String suffix : acceptableSuffixes) { if (name.endsWith(suffix)) return true; } return false; } } @Override public String getDescription() { return Arrays.toString(acceptableSuffixes); } }); final int rVal = fileChooser.showOpenDialog(MainFrame.getInstance()); if (rVal == JFileChooser.APPROVE_OPTION) { return fileChooser.getSelectedFile(); } return null; }
/** Creates new ScrollableTextField */ public ScrollableTextField(final int minVal, final int maxVal) { super(); loadImages(this); m_text = new IntTextField(minVal, maxVal); setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); add(m_text); Insets inset = new Insets(0, 0, 0, 0); if (GameRunner.isMac()) { inset = new Insets(2, 0, 2, 0); } m_up = new JButton(s_up); m_up.addActionListener(m_incrementAction); m_up.setMargin(inset); m_down = new JButton(s_down); m_down.setMargin(inset); m_down.addActionListener(m_decrementAction); m_max = new JButton(s_max); m_max.setMargin(inset); m_max.addActionListener(m_maxAction); m_min = new JButton(s_min); m_min.setMargin(inset); m_min.addActionListener(m_minAction); final JPanel upDown = new JPanel(); upDown.setLayout(new BoxLayout(upDown, BoxLayout.Y_AXIS)); upDown.add(m_up); upDown.add(m_down); final JPanel maxMin = new JPanel(); maxMin.setLayout(new BoxLayout(maxMin, BoxLayout.Y_AXIS)); maxMin.add(m_max); maxMin.add(m_min); add(upDown); add(maxMin); // add(new JSpinner()); m_text.addChangeListener(m_textListener); setWidgetActivation(); }