使用按钮将JTEXTAREA保存到.txt文件



如果我在jtextarea中输入文本,然后单击"保存"按钮,则jtextarea文本应写入/保存到.txt文件中。是我的尝试&捕获正确的位置,如果是处理程序方法,或者部分应该在构造函数中?

这是我的代码:

package exercises;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class SimpleNotePadApp extends JFrame implements ActionListener {
JButton button1 = new JButton("Open");
JButton button2 = new JButton("Save");
public SimpleNotePadApp(String title) {
    super(title);                             
    setDefaultCloseOperation(EXIT_ON_CLOSE);  
    setSize(300, 350);                        
    setLayout(null);

    JTextArea newItemArea = new JTextArea();
    newItemArea.setLocation(3, 3);
    newItemArea.setSize(297, 282);
    getContentPane().add(newItemArea);
    button1.setLocation(30,290);  
    button1.setSize(120, 25);
    getContentPane().add(button1);
    button2.setLocation(150,290);  
    button2.setSize(120, 25);
    getContentPane().add(button2);
}
public static void main(String[] args) {
    SimpleNotePadApp frame;
    frame = new SimpleNotePadApp("Text File GUI");      
    frame.setVisible(true);                             
}
public void actionPerformed(ActionEvent e) {
    if(e.getSource() == button1)
    {
        try {
            PrintWriter out = new PrintWriter(new FileWriter("TestFile.txt"));
            newItemArea.getText();
            newItemArea.write(out);
            out.println(newItemArea);
            out.flush();
            out.close();
        } catch (IOException e1) {
            System.err.println("Error occurred");
            e1.printStackTrace();
        }
    }
}
}

预先感谢

您的try ... catch处于正确的位置,但内容应为:

        PrintWriter out = new PrintWriter(new FileWriter("TestFile.txt"));
        newItemArea.write(out);
        out.close();

考虑使用try-with-resources,并且.close()变得不必要:

    try ( PrintWriter out = new PrintWriter(new FileWriter("TestFile.txt")) {
        newItemArea.write(out);
    } catch (IOException e1) {
        System.err.println("Error occurred");
        e1.printStackTrace();
    }

另外,您需要在施工期间将ActionListener连接到JButton

button2.addActionListener(this);

thisSimpleNotePadApp实例,实现ActionListener

最后,您想要:

 if(e.getSource() == button2)

...因为button2是您的"保存"按钮(不是button1

相关内容

  • 没有找到相关文章

最新更新