public static Map showNewMapDialog(final JFrame owner) { final JDialog dialog = new JDialog(owner, Lang.getMsg("gui.newmap")); dialog.getContentPane().setLayout(new BoxLayout(dialog.getContentPane(), BoxLayout.PAGE_AXIS)); dialog.setResizable(false); dialog.setLocationRelativeTo(null); dialog.setModal(true); final JSpinner width = new JSpinner(new SpinnerNumberModel(100, 0, UNSIGNED_MAX, 1)); final JSpinner height = new JSpinner(new SpinnerNumberModel(100, 0, UNSIGNED_MAX, 1)); final JSpinner x = new JSpinner(new SpinnerNumberModel(0, -SIGNED_MAX, SIGNED_MAX, 1)); final JSpinner y = new JSpinner(new SpinnerNumberModel(0, -SIGNED_MAX, SIGNED_MAX, 1)); final JSpinner l = new JSpinner(new SpinnerNumberModel(0, -SIGNED_MAX, SIGNED_MAX, 1)); final JTextField name = new JTextField(1); final JButton btn = new JButton(Lang.getMsg("gui.newmap.Ok")); saveDir = null; btn.addActionListener( new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { final JFileChooser ch = new JFileChooser(MapEditor.getConfig().getFile("mapLastOpenDir")); ch.setDialogType(JFileChooser.OPEN_DIALOG); ch.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); if (ch.showOpenDialog(MainFrame.getInstance()) != JFileChooser.APPROVE_OPTION) { dialog.setVisible(false); return; } saveDir = ch.getSelectedFile(); dialog.setVisible(false); } }); dialog.add(new JLabel(Lang.getMsg("gui.newmap.Width"))); dialog.add(width); dialog.add(new JLabel(Lang.getMsg("gui.newmap.Height"))); dialog.add(height); dialog.add(new JLabel(Lang.getMsg("gui.newmap.X"))); dialog.add(x); dialog.add(new JLabel(Lang.getMsg("gui.newmap.Y"))); dialog.add(y); dialog.add(new JLabel(Lang.getMsg("gui.newmap.Z"))); dialog.add(l); dialog.add(new JLabel(Lang.getMsg("gui.newmap.Name"))); dialog.add(name); dialog.add(btn); dialog.doLayout(); dialog.pack(); dialog.setVisible(true); dialog.dispose(); if (saveDir != null) { return new Map( name.getText(), saveDir.getPath(), (Integer) width.getValue(), (Integer) height.getValue(), (Integer) x.getValue(), (Integer) y.getValue(), (Integer) l.getValue()); } return null; }