Tak właśnie mam, ale to zapobiega tylko wyświetlaniu "złych" typów, ale można nadal ręcznie wpisać plik z błędnym rozszerzeniem.
Treść całego otwierania(zapis będzie analogiczny więc nie podaje)
FileNameExtensionFilter filter = new FileNameExtensionFilter("Pliki tekstowe", "txt");
jfc.setFileFilter(filter);
int odpowiedz = jfc.showOpenDialog(this);
if (odpowiedz == JFileChooser.APPROVE_OPTION) { // jeśli user wybierze jakiś plik
try {
okno.setText("");
f=jfc.getSelectedFile();
BufferedReader bufor = new BufferedReader(new FileReader(jfc.getSelectedFile()));
String linia = bufor.readLine();
while (linia != null) {
okno.append(linia + "\n");
linia = bufor.readLine();
}
bufor.close();
} catch (FileNotFoundException file) {
JOptionPane.showMessageDialog(this, "Nie ma pliku.", "Komunikat", JOptionPane.PLAIN_MESSAGE);
} catch (IOException wyjatek) {
JOptionPane.showMessageDialog(this, "Błąd I/O", "Komunikat", JOptionPane.PLAIN_MESSAGE);
}
}