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!!