在JTextArea中打开,编辑和保存文本为.txt文件 [英] Opening, Editing and Saving text in JTextArea to .txt file
本文介绍了在JTextArea中打开,编辑和保存文本为.txt文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下代码读取文本文件罚款,但不写(显然)。
如果有人可以请告诉我如何成功地将更改保存到JTextArea,我将是非常棒的。
package funwithswing;
pre>
import java.awt。*;
import javax.swing。*;
import java.io. *;
import java.util.Scanner;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
$ b public class AllDataGUI extends JFrame {
$ b $ public AllDataGUI(){
fileRead();
个面板();
}
private String storeAllString =;
私人JButton saveCloseBtn =新JButton(保存更改并关闭);
private JButton closeButton = new JButton(Exit Without Saving);
private JFrame frame = new JFrame(Viewing All Program Details);
private JTextArea textArea = new JTextArea(storeAllString,0,70);
私人JButton getCloseButton(){
return closeButton;
private void fileRead(){
try {
FileReader read = new FileReader(CompleteData.txt);
扫描仪扫描=新扫描仪(读取); ($)b $ b while(scan.hasNextLine()){
String temp = scan.nextLine()+\\\
;
storeAllString = storeAllString + temp;
$ b catch(异常异常)
{
exception.printStackTrace();
private void fileWrite(){
try {
FileWriter write = new FileWriter(CompleteData.txt);
textArea.write(write);
}
catch(Exception e){
e.printStackTrace();
$ b $ private void panels(){
JPanel panel = new JPanel(new GridLayout(1,1));
panel.setBorder(new EmptyBorder(5,5,5));
JPanel rightPanel = new JPanel(new GridLayout(15,0,10,10));
rightPanel.setBorder(新的EmptyBorder(15,5,5,10));
JTextArea textArea = new JTextArea(storeAllString,0,70);
JScrollPane scrollBarForTextArea = new JScrollPane(textArea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
panel.add(scrollBarForTextArea);
frame.add(panel);
frame.getContentPane()。add(rightPanel,BorderLayout.EAST);
rightPanel.add(saveCloseBtn);
rightPanel.add(closeButton);
closeButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
frame.dispose();
}
});
frame.setSize(1000,700);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
$ b private void saveBtn(){
}
解决方案在你的代码中有一些错误,我修改了这些。编译并运行下面的代码这将解决您的问题。
import java.awt。*;
import javax.swing。*;
import java.io. *;
import java.util.Scanner;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
$ b public class AllDataGUI extends JFrame {
$ b $ public AllDataGUI(){
fileRead();
个面板();
}
private String storeAllString =;
私人JButton saveCloseBtn =新JButton(保存更改并关闭);
private JButton closeButton = new JButton(Exit Without Saving);
private JFrame frame = new JFrame(Viewing All Program Details);
// private JTextArea textArea = new JTextArea(storeAllString,0,70);
private JTextArea textArea = new JTextArea();
私人JButton getCloseButton(){
return closeButton;
private void fileRead(){
try {
FileReader read = new FileReader(CompleteData.txt);
扫描仪扫描=新扫描仪(读取); ($)b $ b while(scan.hasNextLine()){
String temp = scan.nextLine()+\\\
;
storeAllString = storeAllString + temp;
}
textArea.setText(storeAllString);
catch(异常异常)
{
exception.printStackTrace();
$ b private void panels(){
JPanel panel = new JPanel(new GridLayout(1,1)) ;
panel.setBorder(new EmptyBorder(5,5,5));
JPanel rightPanel = new JPanel(new GridLayout(15,0,10,10));
rightPanel.setBorder(新的EmptyBorder(15,5,5,10));
// JTextArea textArea = new JTextArea(storeAllString,0,70);
JScrollPane scrollBarForTextArea = new JScrollPane(textArea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
panel.add(scrollBarForTextArea);
frame.add(panel);
frame.getContentPane()。add(rightPanel,BorderLayout.EAST);
rightPanel.add(saveCloseBtn);
rightPanel.add(closeButton);
closeButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
frame.dispose();
}
});
saveCloseBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
saveBtn();
frame.dispose();
}
});
frame.setSize(1000,700);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
$ b $ private void saveBtn(){
File file = null;
FileWriter out = null;
尝试{
file = new File(CompleteData.txt);
out = new FileWriter(file);
out.write(textArea.getText());
out.close();
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
$ b $ public static void main(String [] arg)
{
AllDataGUI();
}
}
I am messing around with java swing and am trying to open a text file containing existing data with a JTextArea. It doesn't seem to be saving any changes regardless of the different things I have tried.
Below is code that reads the text file fine, but doesn't write it (obviously).
If someone could please advise me as to how I could successfully save changes to the JTextArea I would be greatful.
package funwithswing; import java.awt.*; import javax.swing.*; import java.io.*; import java.util.Scanner; import javax.swing.border.EmptyBorder; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class AllDataGUI extends JFrame{ public AllDataGUI(){ fileRead(); panels(); } private String storeAllString=""; private JButton saveCloseBtn = new JButton("Save Changes and Close"); private JButton closeButton = new JButton("Exit Without Saving"); private JFrame frame=new JFrame("Viewing All Program Details"); private JTextArea textArea = new JTextArea(storeAllString,0,70); private JButton getCloseButton(){ return closeButton; } private void fileRead(){ try{ FileReader read = new FileReader("CompleteData.txt"); Scanner scan = new Scanner(read); while(scan.hasNextLine()){ String temp=scan.nextLine()+"\n"; storeAllString=storeAllString+temp; } } catch (Exception exception) { exception.printStackTrace(); } } private void fileWrite(){ try{ FileWriter write = new FileWriter ("CompleteData.txt"); textArea.write(write); } catch (Exception e){ e.printStackTrace(); } } private void panels(){ JPanel panel = new JPanel(new GridLayout(1,1)); panel.setBorder(new EmptyBorder(5, 5, 5, 5)); JPanel rightPanel = new JPanel(new GridLayout(15,0,10,10)); rightPanel.setBorder(new EmptyBorder(15, 5, 5, 10)); JTextArea textArea = new JTextArea(storeAllString,0,70); JScrollPane scrollBarForTextArea=new JScrollPane(textArea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); panel.add(scrollBarForTextArea); frame.add(panel); frame.getContentPane().add(rightPanel,BorderLayout.EAST); rightPanel.add(saveCloseBtn); rightPanel.add(closeButton); closeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { frame.dispose(); } }); frame.setSize(1000, 700); frame.setVisible(true); frame.setLocationRelativeTo(null); } private void saveBtn(){ } }
解决方案There are some mistakes in your code, I have modified those. Compile and run the below code This will solv your problem.
import java.awt.*; import javax.swing.*; import java.io.*; import java.util.Scanner; import javax.swing.border.EmptyBorder; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class AllDataGUI extends JFrame{ public AllDataGUI(){ fileRead(); panels(); } private String storeAllString=""; private JButton saveCloseBtn = new JButton("Save Changes and Close"); private JButton closeButton = new JButton("Exit Without Saving"); private JFrame frame=new JFrame("Viewing All Program Details"); // private JTextArea textArea = new JTextArea(storeAllString,0,70); private JTextArea textArea = new JTextArea(); private JButton getCloseButton(){ return closeButton; } private void fileRead(){ try{ FileReader read = new FileReader("CompleteData.txt"); Scanner scan = new Scanner(read); while(scan.hasNextLine()){ String temp=scan.nextLine()+"\n"; storeAllString=storeAllString+temp; } textArea.setText(storeAllString); } catch (Exception exception) { exception.printStackTrace(); } } private void panels(){ JPanel panel = new JPanel(new GridLayout(1,1)); panel.setBorder(new EmptyBorder(5, 5, 5, 5)); JPanel rightPanel = new JPanel(new GridLayout(15,0,10,10)); rightPanel.setBorder(new EmptyBorder(15, 5, 5, 10)); // JTextArea textArea = new JTextArea(storeAllString,0,70); JScrollPane scrollBarForTextArea=new JScrollPane(textArea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); panel.add(scrollBarForTextArea); frame.add(panel); frame.getContentPane().add(rightPanel,BorderLayout.EAST); rightPanel.add(saveCloseBtn); rightPanel.add(closeButton); closeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { frame.dispose(); } }); saveCloseBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { saveBtn(); frame.dispose(); } }); frame.setSize(1000, 700); frame.setVisible(true); frame.setLocationRelativeTo(null); } private void saveBtn(){ File file = null; FileWriter out=null; try { file = new File("CompleteData.txt"); out = new FileWriter(file); out.write(textArea.getText()); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] arg) { new AllDataGUI(); } }
这篇关于在JTextArea中打开,编辑和保存文本为.txt文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文