📄 txtedit1.java
字号:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class txtedit1
{
public static void main(String args[])
{
MySimpleTextEditor editor=new MySimpleTextEditor();
editor.setSize(300,200);
editor.setVisible(true);
editor.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{System.exit(0);}
});
}
}
class MySimpleTextEditor extends Frame implements ActionListener
{
private MenuBar myBar=new MenuBar();
private Menu fileMenu,editMenu,cutsMenu,fonteditMenu,name,style,size;
private MenuItem cutItem,copyItem,pasteItem,selectAllItem,plainItem,boldItem,italicItem;
private MenuItem recentcutItem;
private MenuItem quitItem,openItem,saveItem;
private TextArea mainWorkWindow=new TextArea(10,15);//文本区域
private String placeHolder=" ";
private Vector recentCuts=new Vector();
//int fontsize=14;
//int fontstyle=Font.PLAIN;
//String fontname="Dialog";
String fontname[]={"Serif","Dialog","Mono"};
//
public MySimpleTextEditor()
{
super("我的文本编辑器");
setLayout(new BorderLayout());
add("Center",mainWorkWindow);
setMenuBar(myBar);//必要的
initFileMenu();
initEditMenu();
initFontMenu();
}
/*public void paint(Graphics g)
{
g.setFont(new Font(fontname,fontstyle,fontsize));
}*/
private void initEditMenu()
{
editMenu=new Menu("编辑");
myBar.add(editMenu);
cutItem=new Menu("剪切");
cutItem.addActionListener(this);
editMenu.add(cutItem);
copyItem=new MenuItem("复制");
copyItem.addActionListener(this);
editMenu.add(copyItem);
pasteItem=new MenuItem("粘贴");
pasteItem.addActionListener(this);
editMenu.add(pasteItem);
editMenu.addSeparator();
selectAllItem=new MenuItem("全选");
selectAllItem.addActionListener(this);
editMenu.add(selectAllItem);
editMenu.addSeparator();
cutsMenu=new Menu("剪贴板");
editMenu.add(cutsMenu);
}
//初始化编辑菜单
private void initFileMenu()
{
fileMenu=new Menu("文件");
myBar.add(fileMenu);
openItem=new MenuItem("打开");
openItem.addActionListener(this);
openItem.setEnabled(true);
fileMenu.add(openItem);
saveItem=new MenuItem("保存");
saveItem.setEnabled(true);
fileMenu.add(saveItem);
fileMenu.addSeparator();
quitItem=new MenuItem("退出");
quitItem.addActionListener(this);
fileMenu.add(quitItem);
}
//初始化文件菜单
private void initFontMenu()
{
fonteditMenu=new Menu("字体");
myBar.add(fonteditMenu);
plainItem=new MenuItem("普通");
plainItem.addActionListener(this);
plainItem.setEnabled(true);
fonteditMenu.add(plainItem);
boldItem=new MenuItem("加粗");
boldItem.addActionListener(this);
boldItem.setEnabled(true);
fonteditMenu.add(boldItem);
italicItem=new MenuItem("斜体");
italicItem.addActionListener(this);
italicItem.setEnabled(true);
fonteditMenu.add(italicItem);
}
public void actionPerformed(ActionEvent e)
{
if(!(e.getSource()instanceof MenuItem))
return;
//不是菜单项返回空
MenuItem m=(MenuItem)e.getSource();//确定是菜单项
if(m==quitItem)
{
dispose();
System.exit(0);
}//退出菜单
else if(m==cutItem)
{
placeHolder=mainWorkWindow.getSelectedText();
mainWorkWindow.replaceRange("",mainWorkWindow.getSelectionStart(),
mainWorkWindow.getSelectionEnd());
addRecentCut(placeHolder);
}//剪切菜单
else if(m==copyItem)
{
placeHolder=mainWorkWindow.getSelectedText();
}
else if(m==pasteItem)
{
mainWorkWindow.insert(placeHolder,mainWorkWindow.getCaretPosition());
}
//insert()
else if(m==selectAllItem)
{
mainWorkWindow.selectAll();
}
else if(m==openItem)
{
Frame f=new Frame("FileDialog");//此语句
FileDialog d;
d=new FileDialog(f,"FileDialog");
d.setVisible(true);
String filename=d.getFile();//获取文件名
File openf=new File(filename);
String s="";
try{
RandomAccessFile fr=new RandomAccessFile(openf,"r");
char ch;
while((ch=fr.readChar())!=-1)
{s=s+ch;
}
//把文件内容读出
fr.close();
}catch(Exception er){}
mainWorkWindow.setText(s);//文件内容写入
}
else if(m==plainItem)
{
fontstyle=Font.PLAIN;
mainWorkWindow.setFont(new Font(fontname,fontstyle,fontsize));
repaint();
}
else if(m==italicItem)
{
fontstyle=Font.ITALIC;
mainWorkWindow.setFont(new Font(fontname,fontstyle,fontsize));
repaint();
}
else if(m==saveItem)
{
Frame f=new Frame("FileDialog");
FileDialog d;
d=new FileDialog(f,"FileDialog");
d.setVisible(true);
String filename=d.getFile();
File openf=new File(filename);
try{
RandomAccessFile fw=new RandomAccessFile(openf,"rw");
String s=mainWorkWindow.getText();
fw.writeChars(s);
fw.close();
}catch(Exception er){}
}
}
private void addRecentCut(String cut)
{
recentCuts.insertElementAt(cut,0);
cutsMenu.removeAll();
for(int i=0;i<recentCuts.size();i++)
{
MenuItem item=new MenuItem((String)recentCuts.elementAt(i));
cutsMenu.add(item);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -