Manipulasi JFileChooser bagian-2 (buat text)
pada tutorial bagian 1, kita telah membuat ImageChooser, yaitu JFileChooser yang dimanipulasi untuk menampilkan gambar. nah sekarang kita akan membuat JFileChooser yang dapat menampilkan plain text, atau bisa dibilang kita akan membuat TextChooser.
saat ini tak akan ada banyak penjelasan, karena hampir seluruh fungsinya telah saya jelaskan di bagian satu. mungkin saat ini kita akan menggunakan Java IO untuk meload teks sebuah file, jadi jika anda belum mengerti soal Java IO, lebih baik anda skip dulu tutorial ini, beralih dulu ke tutorial Java IO, lalu balik lagi kesini.
OK, pertama kita buat FileFilter untuk menampilkan File Text, seperti .txt, .html, .htm, .java, and so on…
import java.io.File;
import javax.swing.filechooser.FileFilter;public class TextFilter extends FileFilter {
@Override
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}
String name = f.getName().toUpperCase();
if (name.endsWith(”.TXT”) ||
name.endsWith(”.JAVA”) ||
name.endsWith(”.HTML”) ||
name.endsWith(”.HTM”) ||
name.endsWith(”.CSS”) ||
name.endsWith(”.JS”) ||
name.endsWith(”.CPP”) ||
name.endsWith(”.C”) ||
name.endsWith(”.CS”) ||
name.endsWith(”.PAS”) ||
name.endsWith(”.ASP”) ||
name.endsWith(”.PHP”) ||
name.endsWith(”.JSP”) ||
name.endsWith(”.XML”)) {
return true;
}
return false;
}@Override
public String getDescription() {
return “Plain Text File”;
}
}
sekarang kita buat TextChoosernya :
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;public class TextChooser extends JFileChooser {
private JTextArea area;
public TextChooser() {
super();
setFileFilter(new TextFilter());area = new JTextArea();
area.setEditable(false);JScrollPane pane = new JScrollPane(area);
JPanel panel = new JPanel(new java.awt.BorderLayout());
panel.setPreferredSize(new java.awt.Dimension(300, 300));
panel.add(pane);setAccessory(panel);
addPropertyChangeListener(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY, new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (getSelectedFile() != null) {
if (!getSelectedFile().isDirectory()) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(getSelectedFile())));
String temp = null;
area.setText(”");
while ((temp = reader.readLine()) != null) {
area.append(temp + “n”);
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
}
}
});}
}
dibawah ini adalah contoh penggunaan TextChooser :
hahahaa, ternyata JFileChooser itu menarik yach…
see you at next trix
Rock with Java!!!
