示例#1
0
  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;
  }