⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jishiben.java

📁 程序包括小型的飞机与导弹游戏的源代码和记事本的源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package com.zk1;


import java.util.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.undo.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.io.*;

public class JiShiBen extends JFrame {
private FaceAndSize fc = new FaceAndSize();
private Tihuan ti = new Tihuan();
private Chazhao cz = new Chazhao();
private Zhuandao zd = new Zhuandao();
private About about1 = new About();
private JTextArea jta=new JTextArea();
private JScrollPane jsp=new JScrollPane(jta);
private File file=new File("未定标题");
final UndoManager undo = new UndoManager();
private static String st1="";//打开文本路径
private static String st2="";// 保存后文本区
private static String st3="";//打开后文本区
private static String st4="";//保存路径
private static boolean b=true;//自动换行

//构造函数
public JiShiBen(){
	super("未定标题 -记事本");
	this.setIconImage(Toolkit.getDefaultToolkit().getImage("jishiben.gif"));
	JMenuBar jmb=new JMenuBar();
	jmb.setOpaque(true);
	JMenu jm=fileMenu();
	jmb.add(jm);
	JMenu jm1=fileMenu1();
	jmb.add(jm1);
	JMenu jm2=fileMenu2();
	jmb.add(jm2);
	JMenu jm3=fileMenu3();
	jmb.add(jm3);
	this.setJMenuBar(jmb);
	Container cp = getContentPane();
	cp.add(jsp);
	this.setLocation(250,50);
	this.setSize(500,650);
	this.setVisible(true);
	//主窗口关闭监听功能
	this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
	this.addWindowListener(new WindowAdapter(){
		public void windowClosing(WindowEvent w)
		{
			int n;
			String str="";
			str=jta.getText();
			if ("".equals(st1)){//当前文本不是打开的
				if("".equals(str) || str.equals(st2)){//当前文本没有被修改 或 修改过已经保存
					System.exit(0);
				}
				else{//当前文本修改过但没有保存
					n = JOptionPane.showConfirmDialog(null,file+" 文件的文字已经改变.想保存文件吗?","记事本",JOptionPane.YES_NO_CANCEL_OPTION);
					if (n==0){
						save_exit();//先保存在退出方法
					}
					if (n==1){
						System.exit(0);
					}
					if (n==2){
					}
				}
			}
			else{//当前文本是打开的
				if(str.equals(st3) || str.equals(st2)){//当前文本没有被修改 或 修改过已经保存
					System.exit(0);
				}
				else{//当前文本修改过但没有保存
					n = JOptionPane.showConfirmDialog(null,file+" 文件的文字已经改变.想保存文件吗?","记事本",JOptionPane.YES_NO_CANCEL_OPTION); 	
					if (n==0){
						save_exit();//先保存在退出方法
					} 
					if (n==1){
						System.exit(0);
					}
					if (n==2){
					}
				}
				
			}
				
		}
	});
	//撤销与重做监听
    jta.getDocument().addUndoableEditListener (new UndoableEditListener(){
    	public void undoableEditHappened(UndoableEditEvent evt){
     		undo.addEdit(evt.getEdit());
 		}
	});
    
}
//文件菜单栏
public JMenu fileMenu(){
	JMenu thefile=new JMenu("文件(F)");
	JMenuItem newf=new JMenuItem("新建(N)",'N');
	newf.setAccelerator(KeyStroke.getKeyStroke('N',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem open=new JMenuItem("打开(O)...",'O');
	open.setAccelerator(KeyStroke.getKeyStroke('O',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem save=new JMenuItem("保存(S)",'S');
	save.setAccelerator(KeyStroke.getKeyStroke('S',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem savea=new JMenuItem("另存为(A)...",'A');
	JMenuItem pages=new JMenuItem("页面设置(U)...",'U');
	JMenuItem print=new JMenuItem("打印(P)...",'P');
	print.setAccelerator(KeyStroke.getKeyStroke('P',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem quit=new JMenuItem("退出(X)",'X');
	thefile.add(newf);
	newf.addActionListener(new Newf());
	thefile.add(open);
	open.addActionListener(new Open());
	thefile.add(save);
	save.addActionListener(new Save());
	thefile.add(savea);
	savea.addActionListener(new Savea());
	thefile.addSeparator();
	thefile.add(pages);
	pages.addActionListener(new Pages());
	thefile.add(print);
	print.addActionListener(new Print());
	thefile.addSeparator();
	thefile.add(quit);
	quit.addActionListener(new Quit());
	return thefile;
}
//编辑菜单栏
public JMenu fileMenu1(){
	JMenu compilation=new JMenu("编辑(E)");
	JMenuItem chexiao=new JMenuItem("撤销(U)",'U');
	chexiao.setAccelerator(KeyStroke.getKeyStroke('Z',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem chongzuo=new JMenuItem("重做(R)",'R');
	chongzuo.setAccelerator(KeyStroke.getKeyStroke('Y',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem cut=new JMenuItem("剪切(T)",'T');
	cut.setAccelerator(KeyStroke.getKeyStroke('X',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem copy=new JMenuItem("复制(C)",'C');
	copy.setAccelerator(KeyStroke.getKeyStroke('C',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem paste=new JMenuItem("粘贴(P)",'P');
	paste.setAccelerator(KeyStroke.getKeyStroke('V',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem dele=new JMenuItem("删除(L)",'L');
	JMenuItem lookup=new JMenuItem("查找(F)...",'F');
	lookup.setAccelerator(KeyStroke.getKeyStroke('F',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem findn=new JMenuItem("查找下一个(N)",'N');
	JMenuItem swap=new JMenuItem("替换(R)...",'R');
	swap.setAccelerator(KeyStroke.getKeyStroke('H',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem got=new JMenuItem("转到(G)...",'G');
	got.setAccelerator(KeyStroke.getKeyStroke('G',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem checka=new JMenuItem("全选(A)",'A');
	checka.setAccelerator(KeyStroke.getKeyStroke('A',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
	JMenuItem time=new JMenuItem("时间/日期(D)",'D');
	compilation.add(chexiao);
	chexiao.addActionListener(new Chexiao());
	compilation.add(chongzuo);
	chongzuo.addActionListener(new Chongzuo());
	compilation.addSeparator();
	compilation.add(cut);
	cut.addActionListener(new Cut());
	compilation.add(copy);
	copy.addActionListener(new Copy());
	compilation.add(paste);
	paste.addActionListener(new Paste());
	compilation.add(dele);
	dele.addActionListener(new Dele());
	compilation.addSeparator();
	compilation.add(lookup);
	lookup.addActionListener(new Lookup());
	compilation.add(findn);
	findn.addActionListener(new Lookup());
	compilation.add(swap);
	swap.addActionListener(new Swap());
	compilation.add(got);
	got.addActionListener(new Got());
	compilation.addSeparator();
	compilation.add(checka);
	checka.addActionListener(new Checka());
	compilation.add(time);
	time.addActionListener(new Time());
	return compilation;
}
//格式菜单栏
public JMenu fileMenu2(){
	JMenu format=new JMenu("格式(O)");
	JCheckBoxMenuItem linew=new JCheckBoxMenuItem("自动换行(W)");
	JMenuItem fontf=new JMenuItem("    字体(F)...",'F');
	format.add(linew);
	linew.addActionListener(new Linew());
	format.add(fontf);
	fontf.addActionListener(new Fontf());
	return format;
}
//帮助菜单栏
public JMenu fileMenu3(){
	JMenu help=new JMenu("帮助(H)");
	JMenuItem helpm=new JMenuItem("帮助主题(H)",'H');
	JMenuItem awp=new JMenuItem("关于记事本(A)",'A');
	help.add(helpm);
	helpm.addActionListener(new Helpm());
	help.addSeparator();
	help.add(awp);
	awp.addActionListener(new Awp());
	return help;
}
//普通打开文件方法
public void opened(){
	JFileChooser c = new JFileChooser();
    c.setFileFilter(new TextFileFilter());
    int rVal = c.showOpenDialog(this);
    if(rVal == JFileChooser.APPROVE_OPTION) {
  		st1=c.getCurrentDirectory().toString();
    	file = c.getSelectedFile();
    	this.setTitle(c.getSelectedFile().getName()+" -记事本");
        int b;
        String s="";
        try {
           	FileReader fr=new FileReader(file);
        	while((b=fr.read())!=-1){
        		s=s+((char)b);
        	}
        	jta.setText(s);
        	st3=jta.getText();
        	st2="";
        	st4="";
        	fr.close();
        	undo.discardAllEdits();
        }
        catch (IOException ioe) {
        	throw new RuntimeException(ioe);
        }
    }		
}
//打开功能中的先保存再打开方法
public void save_open(){
	JFileChooser c = new JFileChooser(file);
    c.setFileFilter(new TextFileFilter());
    int rVal = c.showSaveDialog(this);
    if(rVal == JFileChooser.APPROVE_OPTION) {
        file = c.getSelectedFile();
        this.setTitle(c.getSelectedFile().getName()+" -记事本");
	    int b;
        String s="";
        try {
        	s=jta.getText();
        	FileWriter fw=new FileWriter(file);
        	fw.write(s);
        	st2=jta.getText();
        	st4=c.getCurrentDirectory().toString();
        	opened();
        	fw.close();
        }
        catch (IOException ioe) {
        	throw new RuntimeException(ioe);
        }
    }
}	
//普通弹出式保存文件方法
public void saveed(){
	JFileChooser c = new JFileChooser(file);
    c.setFileFilter(new TextFileFilter());
    int rVal = c.showSaveDialog(this);
    if(rVal == JFileChooser.APPROVE_OPTION) {
        file = c.getSelectedFile();
        this.setTitle(c.getSelectedFile().getName()+" -记事本");
	    int b;
        String s="";
        try {
        	s=jta.getText();
        	FileWriter fw=new FileWriter(file);
        	fw.write(s);
        	st2=jta.getText();
        	st4=c.getCurrentDirectory().toString();
        	fw.close();
        }
        catch (IOException ioe) {
        	throw new RuntimeException(ioe);
        }
    }
}
//先保存在退出方法
public void save_exit(){
	JFileChooser c = new JFileChooser(file);
    c.setFileFilter(new TextFileFilter());
    int rVal = c.showSaveDialog(this);
    if(rVal == JFileChooser.APPROVE_OPTION) {
        file = c.getSelectedFile();
        this.setTitle(c.getSelectedFile().getName()+" -记事本");
	    int b;
        String s="";
        try {
        	s=jta.getText();
        	FileWriter fw=new FileWriter(file);
        	fw.write(s);
        	st2=jta.getText();
        	st4=c.getCurrentDirectory().toString();
        	fw.close();
        }
        catch (IOException ioe) {
        	throw new RuntimeException(ioe);
        }
        System.exit(0);
    }
}
//新建功能中保存文件并清零方法
public void newsaveed(){
	JFileChooser c = new JFileChooser(file);
    c.setFileFilter(new TextFileFilter());
    int rVal = c.showSaveDialog(this);
    if(rVal == JFileChooser.APPROVE_OPTION) {
        file = c.getSelectedFile();
	    int b;
        String s="";
        try {
        	s=jta.getText();
        	FileWriter fw=new FileWriter(file);
        	fw.write(s);
        	fw.close();
        	clear();
        }
        catch (IOException ioe) {
        	throw new RuntimeException(ioe);
        }
    }
}
//无弹出文件框的保存文件方法
public void usaveed(){
    int b;
    String s="";
    try{
    	s=jta.getText();
        FileWriter fw=new FileWriter(file);
        fw.write(s);
        st2=jta.getText(); 
        fw.close();
    }
    catch (IOException ioe) {
    	throw new RuntimeException(ioe);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -