Java 选择文件并将文本读入GUI的按钮(JTextArea)
我正在使用方法和类创建一个GUI,并尝试创建一个按钮,用户可以在其中选择它,然后选择一个文件。然后,文件将把存储在文件中的内容读入textarea/textfield/JLabel。有人能帮我编写代码吗?我不知道如何编写代码,所以我可以选择按钮选择一个文件,然后它将文本读入GUIJava 选择文件并将文本读入GUI的按钮(JTextArea),java,user-interface,actionlistener,filechooser,Java,User Interface,Actionlistener,Filechooser,我正在使用方法和类创建一个GUI,并尝试创建一个按钮,用户可以在其中选择它,然后选择一个文件。然后,文件将把存储在文件中的内容读入textarea/textfield/JLabel。有人能帮我编写代码吗?我不知道如何编写代码,所以我可以选择按钮选择一个文件,然后它将文本读入GUI public void addLoadFile(){ btnLoadFile = new JButton("Load file of Books"); btnLoadFile.setBo
public void addLoadFile(){
btnLoadFile = new JButton("Load file of Books");
btnLoadFile.setBounds(415, 30, 150, 20);
btnLoadFile.addActionListener(this);
panelLoadFile.add(btnLoadFile);
textArea = new JTextArea();
}
class this implements ActionListener {
@Override
JFileChooser fileChooser = new JFileChooser();
int ret = fileChooser.showOpenDialog(this);
if(ret== JFileChooser.APPROVE_OPTION)
{
File f= fileChooser.getSelectedFile();
try
{
FileReader r=new FileReader(f);
area.read(4,"");
}
catch (Exception ee)
}
System.out.prinkln("");
}
以下代码段可能会有所帮助: 将侦听器添加到按钮
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
所执行操作的代码
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser fileChooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"Text Files(*.txt)", "txt");
fileChooser.setFileFilter(filter);
fileChooser.setCurrentDirectory(new File(System
.getProperty("user.home")));
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(selectedFile));
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String all = sb.toString();
jTextArea1.setText(all);
}catch(Exception e){
e.printStackTrace();
}finally {
try {
br.close();
} catch (IOException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
尝试在后台线程中运行,例如使用
SwingWorker
或ExecutorService
,这样UI就不会挂起大文件。可能存在重复的