Susbtituir arquivo existente no JFileChooser

0 respostas
sem_nyck

galera, preciso descobrir o método que verifica se já existe um arquivo com o nome e extensão que o usuário irá salvar quando estiver usando a interface do Chooser…

segue o código para ajudar…

package br.unipaulistana.prog3.swing.event.ExemploFileChooser;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class ExemploFileChooserComMenu extends JFrame implements ActionListener {
	private JButton botaoSave;
	private JButton botaoOpen;
	private JTextArea telaTexto;
	private JFileChooser jfc;
	private FileUtil fileUtil;

	public ExemploFileChooserComMenu(String titulo) {
		super(titulo);
		botaoSave = new JButton("Save");
		botaoSave.addActionListener(this);
		botaoOpen = new JButton("Open");
		botaoOpen.addActionListener(this);
		telaTexto = new JTextArea(30, 50);
		jfc = new JFileChooser();
		fileUtil = new FileUtil();
	}

	private JMenuBar createJMenuBar() {
		JMenuBar menuBar = new JMenuBar();

		// JMemu File
		JMenu fileMenu = new JMenu("File");
		fileMenu.setMnemonic(KeyEvent.VK_F);
		menuBar.add(fileMenu);

		// JMenuItem Open File
		JMenuItem openFile = new JMenuItem("Open File", KeyEvent.VK_O);
		openFile.addActionListener(this);
		fileMenu.add(openFile);

		// JMenuItem Save File
		JMenuItem saveFile = new JMenuItem("Save File", KeyEvent.VK_S);
		saveFile.addActionListener(this);
		fileMenu.add(saveFile);

		// JMenuItem Exit
		JMenuItem sair = new JMenuItem("Exit", KeyEvent.VK_X);
		sair.addActionListener(this);
		fileMenu.add(sair);

		return menuBar;
	}

	private void mostrarTela() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocation(300, 50);
		setJMenuBar(createJMenuBar());
		JPanel panel = new JPanel();
		panel.add(botaoOpen, BorderLayout.CENTER);
		panel.add(botaoSave);
		JScrollPane scroll = new JScrollPane(telaTexto,
				JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
				JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		getContentPane().add(panel, BorderLayout.NORTH);
		getContentPane().add(scroll, BorderLayout.CENTER);
		setVisible(true);
		pack();

	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == botaoOpen) {
			int abrir = jfc.showOpenDialog(this);
			if (abrir == JFileChooser.APPROVE_OPTION) {
				File file = jfc.getSelectedFile();
				try {
					telaTexto.setText(fileUtil.lerArquivo(file));
				} catch (IOException e1) {
					JOptionPane.showMessageDialog(null,
							"Erro ao abrir o arquivo", "Erro de Leitura",
							JOptionPane.ERROR_MESSAGE);
				}
			}
		}

		if (e.getSource() == botaoSave) {
			int salvar = jfc.showSaveDialog(this);
			if (salvar == JFileChooser.APPROVE_OPTION) {
				File file = jfc.getSelectedFile();
				String texto = telaTexto.getText();
				try {
					// Veriricar se o arquivo já existe
					fileUtil.gravarArquivo(file, texto);
				} catch (Exception e2) {
					JOptionPane.showMessageDialog(null,
							"Erro ao gravar o arquivo!", "Erro de Gravação",
							JOptionPane.ERROR_MESSAGE);
				}
			}
		}

		// checar se o evento é de JMenuItem
		if (e.getSource() instanceof JMenuItem) {
			JMenuItem menuItem = (JMenuItem) e.getSource();

			String texto = menuItem.getText();
			if ("Open File".equals(texto)) {
				int abrir = jfc.showOpenDialog(this);
				if (abrir == JFileChooser.APPROVE_OPTION) {
					File file = jfc.getSelectedFile();
					try {
						telaTexto.setText(fileUtil.lerArquivo(file));
					} catch (IOException e1) {
						JOptionPane.showMessageDialog(null,
								"Erro ao abrir o arquivo", "Erro de Leitura",
								JOptionPane.ERROR_MESSAGE);
					}
				}
			} else if ("Save File".equals(texto)) {
				int salvar = jfc.showSaveDialog(this);
				if (salvar == JFileChooser.APPROVE_OPTION) {
					File file = jfc.getSelectedFile();
					String texto2 = telaTexto.getText();
					try {
						// Veriricar se o arquivo já existe
						fileUtil.gravarArquivo(file, texto2);
					} catch (Exception e2) {
						JOptionPane.showMessageDialog(null,
								"Erro ao gravar o arquivo!",
								"Erro de Gravação", JOptionPane.ERROR_MESSAGE);
					}
				}
			} else if ("Exit".equals(texto)) {
				int opcao = JOptionPane.showConfirmDialog(this,
						"Deseja realmente sair?", "Sair",
						JOptionPane.YES_NO_OPTION);
				if (opcao == JOptionPane.OK_OPTION) {
					System.exit(0);
				}
			}
		}
	}

	public static void main(String[] args) {
		ExemploFileChooserComMenu executar = new ExemploFileChooserComMenu(""
				+ "ExemploFileChooserComMenu");
		executar.mostrarTela();
	}
}

espero contar mais uma vez com a colaboração de vcs…

valeu galera!!

Criado 4 de novembro de 2007
Respostas 0
Participantes 1