gpt4 book ai didi

java - 用于选择文件并将文本读入 GUI 的按钮 (JTextArea)

转载 作者:行者123 更新时间:2023-11-30 07:13:07 24 4
gpt4 key购买 nike

我正在使用方法和类创建一个 GUI,并尝试创建一个按钮,用户可以在其中选择它,然后选择一个文件。然后,该文件会将文件中存储的内容读入文本区域/文本字段/JLabel。任何人都可以帮助我编写代码,我不知道如何编码,以便我可以选择按钮来选择文件,然后将文本读入 GUI。

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);
}
}
}
}

关于java - 用于选择文件并将文本读入 GUI 的按钮 (JTextArea),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38852004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com