La compoenente chooser è stata dichiarata come variabile globale dentro la classe textEditFrame ovvero quella che implementa il word editor, o meglio dovrebbe! Comunque per completezza ti riporto le parti del codiche che ne fanno uso. Grazie anticipatamente.
codice:
public class TextEditFrame extends JFrame{
/*** Variabili di Classe ***/
private JTextArea textArea;
private JTextField from;
private JTextField to;
private JComboBox faceCombo;
private JComboBox sizeCombo;
private JMenuItem saveItem;
private JMenuItem saveAsItem;
private JCheckBoxMenuItem readonlyItem;
private JPopupMenu popup;
private int fontSize;
private String fontFace;
private int fontStyle;
private Font font;
private AboutDialog dialog;
private JFileChooser chooser;
/*** Costruttore ***/
........
........
//BARRA DEI MENU
//menu di massimo livello FILE
JMenu fileMenu = new JMenu("File");
//mostra il tasto mnemonico
fileMenu.setMnemonic('F');
//agginge le voci del menu File
JMenuItem newItem = fileMenu.add(new TestAction("New"));
//agginge le voci del menu File con i tasti di scelta rapida
JMenuItem openItem = new JMenuItem("Open");
openItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_O, InputEvent.CTRL_MASK));
fileMenu.add(openItem);
openItem.addActionListener(new FileOpenListener());
............
............
//BARRA DEGLI STRUMENTI
//imposta le azioni dei pulsanti
Action newAction = new TestAction("New", new ImageIcon("new.gif"));
JButton openButton = new JButton(new ImageIcon("open.gif"));
openButton.addActionListener(new FileOpenListener());
............
............
/*
@effects apre una finestra di dialogo di scelta dei file
**/
private class FileOpenListener implements ActionListener{
public void actionPerformed(ActionEvent evt){
//imposta la finestra di scelta dei file
chooser.setCurrentDirectory(new File("."));
//accetta tutti i file di testo con estenzione .txt .java .c .cpp
final ExtensionFileFilter filter
= new ExtensionFileFilter();
filter.addExtension("txt");
filter.addExtension("java");
filter.addExtension("c");
filter.addExtension("cpp");
filter.setDescription("Text files");
chooser.setFileFilter(filter);
//mostra una finestra di dialogo di scelta del file
int result
= chooser.showOpenDialog(TextEditFrame.this);
//per salvare usare showSaveDialog
//se il file di testo selezionato è accettato, lo visualizza nella casella di testo
if(result == JFileChooser.APPROVE_OPTION)
textArea.setText(chooser.getSelectedFile().getPath());
}//actionPerformed
}//FileOpenListener