List of usage examples for javax.swing JTextField repaint
public void repaint()
From source file:es.emergya.ui.gis.popups.SaveGPXDialog.java
private SaveGPXDialog(final List<Layer> capas) { super("Consulta de Posiciones GPS"); setResizable(false);//from ww w.j a va 2 s . c om setAlwaysOnTop(true); try { setIconImage(((BasicWindow) GoClassLoader.getGoClassLoader().load(BasicWindow.class)).getFrame() .getIconImage()); } catch (Throwable e) { LOG.error("There is no icon image", e); } this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); JPanel dialogo = new JPanel(new BorderLayout()); dialogo.setBackground(Color.WHITE); dialogo.setBorder(new EmptyBorder(10, 10, 10, 10)); JPanel central = new JPanel(new FlowLayout()); central.setOpaque(false); final JTextField nombre = new JTextField(15); nombre.setEditable(false); central.add(nombre); final JButton button = new JButton("Examinar...", LogicConstants.getIcon("button_nuevo")); central.add(button); final JButton aceptar = new JButton("Guardar", LogicConstants.getIcon("button_save")); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JFileChooser fileChooser = new JFileChooser(); if (fileChooser.showSaveDialog(SaveGPXDialog.this) == JFileChooser.APPROVE_OPTION) { nombre.setText(fileChooser.getSelectedFile().getAbsolutePath()); aceptar.setEnabled(true); } } }); dialogo.add(central, BorderLayout.CENTER); JPanel botones = new JPanel(new FlowLayout()); botones.setOpaque(false); aceptar.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String base_url = nombre.getText() + "_"; for (Layer layer : capas) { if (layer instanceof GpxLayer) { GpxLayer gpxLayer = (GpxLayer) layer; File f = new File(base_url + gpxLayer.name + ".gpx"); boolean sobreescribir = !f.exists(); try { while (!sobreescribir) { String original = f.getCanonicalPath(); f = checkFileOverwritten(nombre, f); sobreescribir = !f.exists() || original.equals(f.getCanonicalPath()); } } catch (NullPointerException t) { log.debug("Cancelando creacion de fichero: " + t); sobreescribir = false; } catch (Throwable t) { log.error("Error comprobando la sobreescritura", t); sobreescribir = false; } if (sobreescribir) { try { f.createNewFile(); } catch (IOException e1) { log.error(e1, e1); } if (!(f.isFile() && f.canWrite())) JOptionPane.showMessageDialog(SaveGPXDialog.this, "No tengo permiso para escribir en " + f.getAbsolutePath()); else { try { OutputStream out = new FileOutputStream(f); GpxWriter writer = new GpxWriter(out); writer.write(gpxLayer.data); out.close(); } catch (Throwable t) { log.error("Error al escribir el gpx", t); JOptionPane.showMessageDialog(SaveGPXDialog.this, "Ocurri un error al escribir en " + f.getAbsolutePath()); } } } else log.error("Por errores anteriores no se escribio el fichero"); } else log.error("Una de las capas no era gpx: " + layer.name); } SaveGPXDialog.this.dispose(); } private File checkFileOverwritten(final JTextField nombre, File f) throws Exception { String nueva = JOptionPane.showInputDialog(nombre, i18n.getString("savegpxdialog.overwrite"), "Sobreescribir archivo", JOptionPane.QUESTION_MESSAGE, null, null, f.getCanonicalPath()) .toString(); log.debug("Nueva ruta: " + nueva); return new File(nueva); } }); JButton cancelar = new JButton("Cancelar", LogicConstants.getIcon("button_cancel")); cancelar.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { SaveGPXDialog.this.dispose(); } }); aceptar.setEnabled(false); botones.add(aceptar); botones.add(cancelar); dialogo.add(botones, BorderLayout.SOUTH); add(dialogo); setPreferredSize(new Dimension(300, 200)); pack(); int x; int y; Container myParent; try { myParent = ((BasicWindow) GoClassLoader.getGoClassLoader().load(BasicWindow.class)).getFrame() .getContentPane(); java.awt.Point topLeft = myParent.getLocationOnScreen(); Dimension parentSize = myParent.getSize(); Dimension mySize = getSize(); if (parentSize.width > mySize.width) x = ((parentSize.width - mySize.width) / 2) + topLeft.x; else x = topLeft.x; if (parentSize.height > mySize.height) y = ((parentSize.height - mySize.height) / 2) + topLeft.y; else y = topLeft.y; setLocation(x, y); } catch (Throwable e1) { LOG.error("There is no basic window!", e1); } this.addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { nombre.setText(""); nombre.repaint(); } @Override public void windowClosing(WindowEvent e) { nombre.setText(""); nombre.repaint(); } }); }