1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| import java.awt.Dimension;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.FileInputStream;
import java.util.Scanner;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
public class FilePreview extends JTabbedPane implements PropertyChangeListener{
private static final long serialVersionUID = 4536388136749661130L;
private JTextArea txtPreview = null;
private JFileChooser chooser = null;
public FilePreview(JFileChooser chooser){
setPreferredSize(new Dimension(250, 60));
add("Navigation", new JScrollPane(txtPreview = new JTextArea()));
add("Find Files", new JPanel());
//ptite configuration
txtPreview.setWrapStyleWord(true);
txtPreview.setLineWrap(true);
this.chooser = chooser;
this.chooser.addPropertyChangeListener(this);
}
public void propertyChange(PropertyChangeEvent e) {
String prop = e.getPropertyName();
if(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(prop)){
File file = (File) e.getNewValue();
if(file == null){
txtPreview.setText("");
return;
}
try {
Scanner sc = new Scanner(new FileInputStream(file));
String nl = System.getProperty("line.separator");
while(sc.hasNext())
txtPreview.append(sc.nextLine() + nl);
sc.close();
} catch (Exception e1) {
e1.printStackTrace();
txtPreview.setText(e1.getMessage());
}
}else{
txtPreview.setText("");
}
}
public static void main(String[] args) {
JFileChooser chooser = new JFileChooser(".");
chooser.setAccessory(new FilePreview(chooser));
chooser.showOpenDialog(null);
}
} |
Partager