package www9m11;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class TestEditor implements ActionListener {
private JFrame jf;
private JMenuBar jmb;
private JTextArea jta;
private boolean wasSaved=true;
private String filePath;
public TestEditor() {
jf=new JFrame("记事本");
jta=new JTextArea(20,50);
jmb=new JMenuBar();
String[] jmLabel={"文件","编辑","帮助"};
String[][] jmiLabel={
{"新建","打开","","保存","另存为","","退出"},
{"撤销","","剪切","复制","粘贴","","查找","替换"},
{"关于记事本"}};
for (int i = 0; i < jmLabel.length; i++) {
JMenu jm=new JMenu(jmLabel[i]);
Object o=new Object();
for (int j = 0; j < jmiLabel[i].length; j++) {
if("".equals(jmiLabel[i][j])){
jm.addSeparator();//这个是 菜单中横线分隔符号 就是在 两个菜单项的
}else{
JMenuItem jmi=new JMenuItem(jmiLabel[i][j]);
jmi.addActionListener(this);
jm.add(jmi);
}
}
jmb.add(jm);
}
}
private void init(){
jf.setJMenuBar(jmb);
JScrollPane jsp=new JScrollPane(jta);
jf.add(jsp);
}
private void addEventHandler(){
jta.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent e) {
// System.out.println("TestEditor.addEventHandler().new DocumentListener() {...}.removeUpdate()");
wasSaved=false;
}
@Override
public void insertUpdate(DocumentEvent e) {
// System.out.println("TestEditor.addEventHandler().new DocumentListener() {...}.insertUpdate()");
Java Swing复习(3)JMenu,做一个文本编辑器,涉及读和写操作,事件监听,处理
最新推荐文章于 2023-11-18 16:32:51 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)