Java 如何仅更改使用jfilechooser打开的文件的选定设置,而不更改原始文件?

Java 如何仅更改使用jfilechooser打开的文件的选定设置,而不更改原始文件?,java,swing,user-interface,jfilechooser,Java,Swing,User Interface,Jfilechooser,我正在创建一个翻译器,它使用jFileChooser打开一个文件,我试图做的是更改我用底部选择的句子 例如,假设我有一个包含Hello的文件,我的名字是Pablo,我喜欢编码 例如,当我用jFileChooser打开它时,我想选择love coding并按下一个按钮,以更改屏幕上出现的另一个单词,例如dog 我知道您可以使用box.appenddog更改框中显示的内容,您可以使用box.getSelectedText获得刚才选择的句子 你能帮我更改方框的内容,但只更改所选的句子吗 在这里你有一个

我正在创建一个翻译器,它使用jFileChooser打开一个文件,我试图做的是更改我用底部选择的句子

例如,假设我有一个包含Hello的文件,我的名字是Pablo,我喜欢编码

例如,当我用jFileChooser打开它时,我想选择love coding并按下一个按钮,以更改屏幕上出现的另一个单词,例如dog

我知道您可以使用box.appenddog更改框中显示的内容,您可以使用box.getSelectedText获得刚才选择的句子

你能帮我更改方框的内容,但只更改所选的句子吗

在这里你有一个图像,你可以认为我想通过添加狗而不是选择什么来改变框的内容

一种方法如下:

String orgBoxContent = box.getText();
String selectedText = box.getSelectedText();

orgBoxContent = orgBoxContent.replaceFirst(selectedText,"dog");
box = new JTextArea(orgBoxContent);

这样做不是更好吗:box.setTextorgBoxContent?而不是创建一个新的JTextArea,您需要将它添加到某个父容器中,对吗?当然,我不知道什么方法是正确的。Oracle的教程来自新的JTextArea.1-这不是如何更改文本组件中的数据。文本存储在文档中。应按照Abra在上述评论中的建议对文件进行修改。这个解决方案效率很低。getText方法需要从文档中获取数据并生成文本字符串。然后使用正则表达式解析文本字符串并替换数据。最后,setText方法需要解析换行符的文本字符串并重新生成文档。@camickr这个主题对我来说很清楚。打开的文件文档中没有更改?该文件与此无关。所有Swing文本组件将数据存储在文档中。文本组件不知道或不关心数据来自何处。您访问过此网页吗?API是您的朋友。类JTextComponent中的方法。