对此直言不讳,我正在寻求如何实际使用它的帮助。我们刚刚在我的课程中使用了这个,但是我们的新老师没有教,我真的很挣这个。所以我使用Windows构建器设置了一个基本的JFrame,对象是能够将文本文件作为字符串打开并将其放入文本空间,然后能够在文本中找到字符串并进行更改。我会粘贴下面的代码,如果有人可以帮忙解释如何做到这一点,我会非常感谢它,谢谢。 :)
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.TextArea;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.filechooser.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class task1 extends JFrame {
private JPanel contentPane;
private JTextField findTxtBox;
private JButton findBtn;
private JTextField replaceTxtBox;
private JTextField fileTxtBox;
private JButton openBtn;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
task1 frame = new task1();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public task1() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 312);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
TextArea textArea = new TextArea();
textArea.setBounds(10, 45, 380, 160);
contentPane.add(textArea);
findTxtBox = new JTextField();
findTxtBox.setBounds(80, 211, 236, 20);
contentPane.add(findTxtBox);
findTxtBox.setColumns(10);
findBtn = new JButton("Find");
findBtn.setBounds(326, 210, 89, 23);
contentPane.add(findBtn);
JButton btnReplace = new JButton(" Replace");
btnReplace.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
btnReplace.setBounds(326, 240, 89, 23);
contentPane.add(btnReplace);
replaceTxtBox = new JTextField();
replaceTxtBox.setColumns(10);
replaceTxtBox.setBounds(80, 242, 236, 20);
contentPane.add(replaceTxtBox);
fileTxtBox = new JTextField();
fileTxtBox.setColumns(10);
fileTxtBox.setBounds(80, 11, 236, 20);
contentPane.add(fileTxtBox);
final JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileNameExtensionFilter("Text Files", "txt"));
fc.removeChoosableFileFilter(fc.getAcceptAllFileFilter());
openBtn = new JButton("Open File");
openBtn.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
fc.showOpenDialog(null);
}
});
openBtn.setBounds(326, 10, 89, 23);
contentPane.add(openBtn);
}
}
答案 0 :(得分:3)
该对象是能够将文本文件作为字符串打开并将其放入文本空间,然后能够在文本中找到字符串并进行更改。
这不仅仅涉及使用文件选择器。我建议您首先阅读How to Use File Choosers上的Swing教程中的部分,以获取一个工作示例。
文件选择器仅用于获取未读取文件的文件名。接下来我建议您使用JTextArea
(不是TextArea)来显示您阅读的文件中的文本。您可以使用JTextArea的read(...)
方法执行此操作。
所有文本组件都有一个getText()方法,您可以使用获取文本。然后,您可以搜索字符串以查找所需内容,并使用JTextArea的replace()
方法替换文本。
最后,您不应该使用setBounds()方法来设置组件的大小/位置。您应该使用Layout Managers
并让他们完成自己的工作。 Swing教程还有一个关于使用布局管理器的部分。