You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
6.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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) {
}
}