某按钮的监视器方法actionPerformed0实现将文本区中的内容写入到文本文件 myText.txt中。 public void actionPerformed(ActionEvent e){ try { int n = txtFld.getText().length(); byte buffer[ ]=new byte[n]; buffer=txtFld.getText( ).getBytes( ); . FileOutputStream wf=new (1) ( "myText.txt"); wf.write(buffer, 0,n); (2) ;} catch (IOException e){ txtFld.setText(e.toString( ));} } }
时间: 2023-02-19 16:08:42 浏览: 84
这段代码实现了在文本区中的内容写入到文本文件"myText.txt"中的功能。
首先,通过txtFld.getText()获取文本区中的内容,然后使用getBytes()方法将其转换为字节数组。
接着,使用FileOutputStream创建了一个文件输出流,并以"myText.txt"为文件名创建了一个文件,(1)处代码实现了这一点。
最后,使用write()方法写入字节数组到文件中,(2)处代码实现了这一点。
如果抛出IOException异常,代码将会使用txtFld.setText(e.toString())在文本区中显示异常的信息。
相关问题
设计如下界面,窗口中的按钮和文本框作为ActionEvent事件源,确定监视器。编写一个实现ActionListener接口的类,该类的实例作为按钮和文本框的监视器,按钮触发ActionEvent事件,监视器调用actionPerformed方法,实现在命令行窗口输出按钮名字;文本框触发ActionEvent事件,监视器调用actionPerformed方法,实现在命令行窗口输出文本框的文本以及该文本的长度。
很抱歉,我是一个语言模型,无法提供图形化界面操作。但是,我可以提供一个Java代码的示例,来实现您的需求。
首先,我们需要创建一个实现ActionListener接口的类,并重写actionPerformed方法,实现在命令行窗口输出按钮名字或文本框文本及长度。代码如下:
```
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JTextField;
public class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source instanceof JButton) {
JButton button = (JButton) source;
System.out.println("Button name: " + button.getText());
} else if (source instanceof JTextField) {
JTextField textField = (JTextField) source;
String text = textField.getText();
int length = text.length();
System.out.println("Text field text: " + text);
System.out.println("Text field length: " + length);
}
}
}
```
然后,在创建窗口时,为按钮和文本框添加该监听器,代码如下:
```
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class MyFrame extends JFrame {
private JPanel panel;
private JButton button;
private JTextField textField;
public MyFrame() {
panel = new JPanel();
button = new JButton("Button");
textField = new JTextField(20);
textField.setText("Text field");
button.addActionListener(new MyActionListener());
textField.addActionListener(new MyActionListener());
panel.add(button);
panel.add(textField);
add(panel);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
```
最后,在主函数中创建窗口对象即可,代码如下:
```
public class Main {
public static void main(String[] args) {
MyFrame frame = new MyFrame();
}
}
```
这样,当按钮被点击或文本框的文本被修改时,就会在命令行窗口输出相应的信息。
利用Swing组件编写一个界面大小800×600像素的简易文本编辑器MyTextEditor.java,该编辑器带有菜单栏,且只有一个“文件”菜单,下含“保存”、“取消”和“退出”三个菜单条,要求: (1)程序启动后,多行文本输入框JTextArea中显示当前目录下myText.txt文件中原有内容,如果该文件不存在,则新建文件; (2)保存(菜单)功能:将编辑器界面输入的内容写入myText.txt文件中保存; (3)取消(菜单)功能:将文本框中内容清空,且清空myText.txt文件中内容; (4)退出(菜单)功能:退出程序。
好的,我会根据你的要求为你编写一个简易的文本编辑器MyTextEditor.java,具体实现如下:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyTextEditor extends JFrame implements ActionListener {
private JTextArea textArea;
private JMenu fileMenu;
private JMenuItem saveItem, cancelItem, exitItem;
public MyTextEditor() {
super("My Text Editor");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// 创建文件菜单
fileMenu = new JMenu("文件");
menuBar.add(fileMenu);
// 创建“保存”菜单项
saveItem = new JMenuItem("保存");
saveItem.addActionListener(this);
fileMenu.add(saveItem);
// 创建“取消”菜单项
cancelItem = new JMenuItem("取消");
cancelItem.addActionListener(this);
fileMenu.add(cancelItem);
// 创建“退出”菜单项
exitItem = new JMenuItem("退出");
exitItem.addActionListener(this);
fileMenu.add(exitItem);
// 创建文本输入框并添加到窗口中
textArea = new JTextArea();
add(textArea);
// 读取文件内容并显示在文本输入框中
File file = new File("myText.txt");
if (file.exists()) {
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
textArea.append(line + "\n");
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == saveItem) {
// 保存文件内容
try {
FileWriter fw = new FileWriter("myText.txt");
fw.write(textArea.getText());
fw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == cancelItem) {
// 取消编辑并清空文件内容
textArea.setText("");
try {
FileWriter fw = new FileWriter("myText.txt");
fw.write("");
fw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == exitItem) {
// 退出程序
System.exit(0);
}
}
public static void main(String[] args) {
new MyTextEditor();
}
}
```
请注意,该程序需要在包含该程序的工作目录下存在myText.txt文件,否则程序会在启动时自动创建该文件。
阅读全文