试用
if (code == JFileChooser.APPROVE_OPTION) {
File selectedFile = chooser.getSelectedFile();
fileName = selectedFile.getName();
FileInputStream fis =
new FileInputStream(selectedFile);
InputStreamReader in =
new InputStreamReader(fis, Charset.forName("UTF-8"));
char[] buffer = new char[1024];
int n = in.read(buffer);
String text = new String(buffer, 0, n);
myPane.setText(text);
in.close();
}
演示:
public class JEditorPaneFileChooser implements ActionListener {
JFrame myFrame = null;
JEditorPane myPane = null;
JMenuItem cmdOpen = null;
JMenuItem cmdSave = null;
String dirName = "\\herong\\swing\\";
String fileName = "JEditorPane.txt";
public static void main(String[] a) {
(new JEditorPaneFileChooser()).test();
}
private void test() {
myFrame = new JFrame("JEditorPane JFileChooser Test");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(300,200);
myPane = new JEditorPane();
myPane.setContentType("text/plain");
myPane.setText(
"Hello computer! - \u7535\u8111\u4F60\u597D\uFF01\n"
+ "Welcome to Herong's Website!\n"
+ "\u6B22\u8FCE\u4F60\u8BBF\u95EE\u548C\u8363\u7F51\u7AD9"
+ "\uFF01\nwww.herongyang.com");
myFrame.setContentPane(myPane);
JMenuBar myBar = new JMenuBar();
JMenu myMenu = getFileMenu();
myBar.add(myMenu);
myFrame.setJMenuBar(myBar);
myFrame.setVisible(true);
}
private JMenu getFileMenu() {
JMenu myMenu = new JMenu("File");
cmdOpen = new JMenuItem("Open");
cmdOpen.addActionListener(this);
myMenu.add(cmdOpen);
cmdSave = new JMenuItem("Save");
cmdSave.addActionListener(this);
myMenu.add(cmdSave);
return myMenu;
}
public void actionPerformed(ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File(dirName));
chooser.setSelectedFile(new File(fileName));
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
FileNameExtensionFilter filter = new FileNameExtensionFilter(
".txt and .java files", "txt", "java");
chooser.setFileFilter(filter);
Object cmd = e.getSource();
try {
if (cmd == cmdOpen) {
int code = chooser.showOpenDialog(myPane);
if (code == JFileChooser.APPROVE_OPTION) {
File selectedFile = chooser.getSelectedFile();
fileName = selectedFile.getName();
FileInputStream fis =
new FileInputStream(selectedFile);
InputStreamReader in =
new InputStreamReader(fis, Charset.forName("UTF-8"));
char[] buffer = new char[1024];
int n = in.read(buffer);
String text = new String(buffer, 0, n);
myPane.setText(text);
in.close();
}
} else if (cmd == cmdSave) {
int code = chooser.showOpenDialog(myPane);
if (code == JFileChooser.APPROVE_OPTION) {
File selectedFile = chooser.getSelectedFile();
fileName = selectedFile.getName();
FileOutputStream fos =
new FileOutputStream(selectedFile);
OutputStreamWriter out =
new OutputStreamWriter(fos, Charset.forName("UTF-8"));
out.write(myPane.getText());
out.close();
}
}
} catch (Exception f) {
f.printStackTrace();
}
}
}
参考:http ://www.herongyang.com/Swing/JEditorPane-File-Chooser-Dialog-Box.html