|
|
package XDEDM_Notepad;
|
|
|
|
|
|
import java.awt.*; //图形界面java库
|
|
|
|
|
|
import javax.lang.model.util.ElementScanner6;
|
|
|
import javax.swing.*; //GUI工具包
|
|
|
import java.awt.event.*; //AWT事件包
|
|
|
import java.io.*; //输入输出
|
|
|
import java.awt.datatransfer.*; //复制粘贴数据传输
|
|
|
|
|
|
public class XNotepad extends JFrame implements ActionListener,WindowListener {
|
|
|
JTextArea XNarea = new JTexArea();
|
|
|
File fnameContainer;
|
|
|
|
|
|
public XNotepad(){
|
|
|
Font fnt = new Font("SimSun",Font.PLAIN,15); //宋体,15号
|
|
|
|
|
|
Container con=getContentPane();
|
|
|
|
|
|
JMenuBar XNb = new JMenuBar(); //菜单栏目
|
|
|
JMenu XNfile = new JMenu("文件");
|
|
|
JMenu XNedit = new JMenu("编辑");
|
|
|
JMenu XNhelp = new JMenu("编辑");
|
|
|
JMenu XNelse = new JMenu("其他");
|
|
|
|
|
|
con.setLayout(new BorderLayout()); //边界布局
|
|
|
|
|
|
JScrollPane sbrText = new JScrollPane(XNarea); //滚动条(根据需要显示)
|
|
|
sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
|
|
|
|
|
sbrText.setVisible(true); //显示滚动面板
|
|
|
|
|
|
XNarea.setFont(fnt); //设置字体
|
|
|
XNarea.setLineWrap(true); //自动换行
|
|
|
XNarea.setWrapStyleWord(true); //单词换行
|
|
|
XNarea.setVisible(true); //显示文本域
|
|
|
|
|
|
con.add(sbrText); //添加滚动面板
|
|
|
con.add(XNb,BorderLayout.NORTH); //添加菜单栏
|
|
|
|
|
|
createMenuItem(XNfile,"新建"); //创建菜单项
|
|
|
createMenuItem(XNfile,"打开");
|
|
|
createMenuItem(XNfile,"保存");
|
|
|
|
|
|
createMenuItem(XNedit,"复制");
|
|
|
createMenuItem(XNedit,"剪切");
|
|
|
createMenuItem(XNedit,"粘贴");
|
|
|
createMenuItem(XNedit,"全选");
|
|
|
createMenuItem(XNedit,"删除");
|
|
|
|
|
|
createMenuItem(XNhelp,"字号");
|
|
|
createMenuItem(XNhelp,"字体");
|
|
|
createMenuItem(XNhelp,"缩放");
|
|
|
|
|
|
createMenuItem(XNelse,"关于");
|
|
|
createMenuItem(XNelse,"退出");
|
|
|
|
|
|
XNb.add(XNfile); //添加菜单
|
|
|
XNb.add(XNedit);
|
|
|
XNb.add(XNhelp);
|
|
|
XNb.add(XNelse);
|
|
|
|
|
|
setJMenBar(XNb); //设置菜单栏
|
|
|
|
|
|
//指定一个图片作为窗口的图标
|
|
|
setIconImage(Toolkit.getDefaultToolkit().getImage("XNcat.jpg"));
|
|
|
|
|
|
addWindowListener(this); //添加窗口监听器
|
|
|
setSize(500,500); //设置窗口大小
|
|
|
setTitle("新建记事本.txt"); //设置标题
|
|
|
setVisible(true); //显示窗口
|
|
|
}
|
|
|
|
|
|
public void createMenuItem(JMenu jm,String txt){ //创建菜单项
|
|
|
JMenuItem jmfire = new JMenuItem(txt); //创建菜单项
|
|
|
jmfire.addActionListener(this); //添加监听器
|
|
|
jm.add(jmfire);
|
|
|
}
|
|
|
|
|
|
public void actionPerformed(ActionEvent e){
|
|
|
JFileChooser jfc = new JFileChooser(); //文件选择器
|
|
|
|
|
|
if(e.getActionCommand().equals("新建")){
|
|
|
this.setTitle("新建记事本.txt");
|
|
|
XNarea.setText("");
|
|
|
fnameContainer = null;
|
|
|
|
|
|
}else if(e.getActionCommand().equals("打开")){
|
|
|
int ret = jfc.showDialog(null,"打开");
|
|
|
if(ret == JFileChooser.APPROVE_OPTION){
|
|
|
try{
|
|
|
File f = jfc.getSelectedFile();
|
|
|
OpenFile(f.getAbsolutePath());
|
|
|
this.setTitle(f.getName());
|
|
|
fnameContainer = f;
|
|
|
}catch(IOException ers){} //捕获异常
|
|
|
}
|
|
|
|
|
|
}else if(e.getActionCommand().equals("保存")){
|
|
|
if(fnameContainer != null){
|
|
|
jfc.setCurrentDirectory(fnameContainer);
|
|
|
jfc.setSelectedFile(fnameContainer);
|
|
|
}else{
|
|
|
jfc.setSelectedFile(new File("新建记事本.txt"));
|
|
|
}
|
|
|
|
|
|
int ret = jfc.showDialog(null);
|
|
|
|
|
|
if(ret == JFileChooser.APPROVE_OPTION){
|
|
|
try{
|
|
|
|
|
|
File fyl = jfc.getSelectedFile();
|
|
|
SaveFile(fyl.getAbsolutePath());
|
|
|
this.setTitle(fyl.getName());
|
|
|
fnameContainer = fyl;
|
|
|
|
|
|
}catch(Exception ers){}
|
|
|
}
|
|
|
}else if(e.getActionCommand().equals("复制")){
|
|
|
XNarea.copy();
|
|
|
|
|
|
}else if(e.getActionCommand().equals("剪切")){
|
|
|
XNarea.cut();
|
|
|
|
|
|
}else if(e.getActionCommand().equals("粘贴")){
|
|
|
XNarea.paste();
|
|
|
|
|
|
}else if(e.getActionCommand().equals("全选")){
|
|
|
XNarea.selectAll();
|
|
|
|
|
|
}else if(e.getActionCommand().equals("删除")){
|
|
|
XNarea.replaceSelection("");
|
|
|
|
|
|
}else if(e.getActionCommand().equals("字号")){
|
|
|
|
|
|
}else if(e.getActionCommand().equals("字体")){
|
|
|
|
|
|
}else if(e.getActionCommand().equals("缩放")){
|
|
|
|
|
|
}else if(e.getActionCommand().equals("关于")){
|
|
|
JOptionPane.showMessageDialog(this,"制作者:薛定谔的猫 团队","关于",JOptionPane.INFORMATION_MESSAGE);
|
|
|
|
|
|
}else if(e.getActionCommand().equals("退出")){
|
|
|
Exiting();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void OpenFile(String absolutePath) {
|
|
|
}
|
|
|
} |