欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java实现Windows记事本

程序员文章站 2022-09-27 18:57:56
源文件下载: 链接:https://pan.baidu.com/s/1ZkENEz5Uj5VJ8Zuyi6ZcDA 提取码:vpca 源码: JF_Notpad.java实现主要面板,在二级菜单可以实现java模板建立,可以后期自己添加: import java.awt.*; import java ......
给大家分享下我之前的作品:

源文件下载:

  链接:https://pan.baidu.com/s/1zkenez5uj5vj8zuyi6zcda
  提取码:vpca

 

源码:

  jf_notpad.java实现主要面板,在二级菜单可以实现java模板建立,可以后期自己添加:

  

java实现Windows记事本
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;    //导入菜单
import javax.swing.filechooser.filenameextensionfilter;
import java.util.date;    //获取系统的时间
import java.text.simpledateformat;    //控制系统的时间格式

import java.awt.event.*;
import java.io.*;
import java.util.regex.*;

public class jf_notpad extends jframe implements actionlistener,windowlistener{
    //menubar
    private    jmenubar mb;
    private jmenu file,edit,format,view,help;
    
    //menutoolbar
    private jtoolbar tool;
    private    static int buttonwidth,buttonheight;
    private jbutton create,unfold,copy,cut,paste,pasteshortcut,delete;
    
    
    //file
    //jmenu下还可以有二级菜单
    private jmenu newnot;
    //jmenuitem不可以有其他菜单
    private jmenuitem notpad,model,open,save,saveas,pageset,print,exit;
    
    //edit
    private jmenuitem undoe,cute,copye,pastee,deletee,finde,findnexte,replacee,gotoe,selectalle,timedatee;
    
    //format
    private jmenuitem     wordwrap,font;
    
    //view
    private jmenuitem     statusbar;
    
    //help
    private jmenuitem     viewhelp,about;
    
    //leftspace
    private jpanel leftspace;
    
    //textarea
    private jtextarea content;
    private jscrollpane scroll;
    
    //openurl,saveurl
    private static string openurl="e:/notpad.txt";    //保存之前打开文件的路径
    private static string saveurl="e:/notpad.txt";    //保存之前保存文件的路径
    private boolean saved=false;    //判断文件是否保存过
    
    //contentfont 字体
    private font contentfont;
    
    
    //是否在打开保存面板后,还应该打开选择文件面板
    private boolean openfilebool=false;
    
    public static void main(string[] args) {
        jf_notpad not=new jf_notpad();
    }
    
    public static jbutton changeiconsize(jbutton button,string url,int width,int height,string tip){
        button.setbounds(0,0,width,height);
        imageicon buttonimg=new imageicon(url);
        //改变图片的大小
        image temp=buttonimg.getimage().getscaledinstance(button.getwidth(), button.getheight(), buttonimg.getimage().scale_default);
        button=new jbutton(new imageicon(temp));
        button.settooltiptext(tip);    //提示
        
        return button;
    }
    
    public static image changeimagesize(string url,int width,int height){
        imageicon img=new imageicon(url);
        //改变图片的大小
        image temp=img.getimage().getscaledinstance(width, height, img.getimage().scale_default);
        
        return temp;
    }
    
    jf_notpad(){
        //menubar
        mb=new jmenubar();
        file=new jmenu("file(f)");
        file.setmnemonic('f');
        edit=new jmenu("edit(e)");
        edit.setmnemonic('e');
        format=new jmenu("format(o)");
        format.setmnemonic('o');
        view =new jmenu("view(v)");
        view.setmnemonic('v');
        help=new jmenu("help(h)");
        help.setmnemonic('h');
        
        //menutoolbar
        tool=new jtoolbar();
        buttonwidth=22;
        buttonheight=22;
        
        create=new jbutton();
        create=jf_notpad.changeiconsize(create, "img/notpad/news.png", buttonwidth, buttonwidth, "new");
        unfold=new jbutton();
        unfold=jf_notpad.changeiconsize(unfold, "img/notpad/open.png", buttonwidth, buttonwidth, "open");
        copy=new jbutton();
        copy=jf_notpad.changeiconsize(copy, "img/notpad/copy.png", buttonwidth, buttonwidth, "copy");
        cut=new jbutton();
        cut=jf_notpad.changeiconsize(cut, "img/notpad/cut.png", buttonwidth, buttonwidth, "cut");
        paste=new jbutton();
        paste=jf_notpad.changeiconsize(unfold, "img/notpad/paste.png", buttonwidth, buttonwidth, "paste");
        pasteshortcut=new jbutton();
        pasteshortcut=jf_notpad.changeiconsize(pasteshortcut, "img/notpad/pasteshortcut.png", buttonwidth, buttonwidth, "pasteshortcut");
        delete=new jbutton();
        delete=jf_notpad.changeiconsize(delete, "img/notpad/delete.png", buttonwidth, buttonwidth, "delete");
        
        //menutoolbarlistener
        create.setactioncommand("notpad");
        create.addactionlistener(this);
        unfold.setactioncommand("open");
        unfold.addactionlistener(this);
        copy.setactioncommand("copye");
        copy.addactionlistener(this);
        cut.setactioncommand("cute");
        cut.addactionlistener(this);
        paste.setactioncommand("pastee");
        paste.addactionlistener(this);
        pasteshortcut.setactioncommand("pasteshortcut");
        pasteshortcut.addactionlistener(this);
        delete.setactioncommand("deletee");
        delete.addactionlistener(this);
        
        //file
        newnot=new jmenu("new(n)");
        newnot.setmnemonic('n');
        imageicon icon=new imageicon(this.changeimagesize("img/notpad/logo.png", buttonwidth-5,buttonheight-5 ));
        notpad=new jmenuitem("notpad",icon);
        model=new jmenuitem("model");
        icon=new imageicon(this.changeimagesize("img/notpad/open.png", buttonwidth-5, buttonheight-5));
        open=new jmenuitem("open",icon);
        icon=new imageicon(this.changeimagesize("img/notpad/save.png", buttonwidth-5, buttonheight-5));
        save=new jmenuitem("save",icon);
        icon=new imageicon(this.changeimagesize("img/notpad/saveas.png", buttonwidth-5, buttonheight-5));
        saveas=new jmenuitem("save as...",icon);
        pageset=new jmenuitem("pageset");
        print=new jmenuitem("print");
        icon=new imageicon(this.changeimagesize("img/notpad/exit.png", buttonwidth-5, buttonheight-5));
        exit=new jmenuitem("exit",icon);
        
        //filelistener
        notpad.setactioncommand("notpad");
        notpad.addactionlistener(this);
        model.setactioncommand("model");
        model.addactionlistener(this);
        open.setactioncommand("open");
        open.addactionlistener(this);
        save.setactioncommand("save");
        save.addactionlistener(this);
        saveas.setactioncommand("saveas");
        saveas.addactionlistener(this);
        pageset.setactioncommand("pageset");
        pageset.addactionlistener(this);
        print.setactioncommand("print");
        print.addactionlistener(this);
        exit.setactioncommand("exit");
        exit.addactionlistener(this);
        
        //edit    
        undoe=new jmenuitem("undo");
        icon=new imageicon(this.changeimagesize("img/notpad/cut.png", buttonwidth-5, buttonheight-5));
        cute=new jmenuitem("cut",icon);
        icon=new imageicon(this.changeimagesize("img/notpad/copy.png", buttonwidth-5, buttonheight-5));
        copye=new jmenuitem("copy",icon);
        icon=new imageicon(this.changeimagesize("img/notpad/paste.png", buttonwidth-5, buttonheight-5));
        pastee=new jmenuitem("paste",icon);
        icon=new imageicon(this.changeimagesize("img/notpad/delete.png", buttonwidth-5, buttonheight-5));
        deletee=new jmenuitem("delete",icon);
        finde=new jmenuitem("find...");
        findnexte=new jmenuitem("find next");
        replacee=new jmenuitem("replace...");
        gotoe=new jmenuitem("go to..");
        selectalle=new jmenuitem("select all");
        timedatee=new jmenuitem("time/data");
        
        //editlistener
        undoe.setactioncommand("undoe");
        undoe.addactionlistener(this);
        cute.setactioncommand("cute");
        cute.addactionlistener(this);
        copye.setactioncommand("copye");
        copye.addactionlistener(this);
        pastee.setactioncommand("pastee");
        pastee.addactionlistener(this);
        deletee.setactioncommand("deletee");
        deletee.addactionlistener(this);
        finde.setactioncommand("finde");
        finde.addactionlistener(this);
        findnexte.setactioncommand("findnexte");
        findnexte.addactionlistener(this);
        replacee.setactioncommand("replacee");
        replacee.addactionlistener(this);
        gotoe.setactioncommand("gotoe");
        gotoe.addactionlistener(this);
        selectalle.setactioncommand("selectalle");
        selectalle.addactionlistener(this);
        timedatee.setactioncommand("timedatee");
        timedatee.addactionlistener(this);
        
        //format
        icon=new imageicon(this.changeimagesize("img/notpad/wordwrap.png", buttonwidth-5, buttonheight-5));
        wordwrap=new jmenuitem("word wrap",icon);
        icon=new imageicon(this.changeimagesize("img/notpad/font.png", buttonwidth-8, buttonheight-8));
        font=new jmenuitem("font...",icon);
        
        //formatlistener
        wordwrap.setactioncommand("wordwrap");
        wordwrap.addactionlistener(this);
        font.setactioncommand("font");
        font.addactionlistener(this);
        
        //view
        statusbar=new jmenuitem("status bar");
        
        //viewlistener
        statusbar.setactioncommand("statusbar");
        statusbar.addactionlistener(this);
        
        //help
        viewhelp=new jmenuitem("view help");
        icon=new imageicon(this.changeimagesize("img/notpad/about.png", buttonwidth-5, buttonheight-5));
        about=new jmenuitem("about notepad",icon);
        
        //helplistener
        viewhelp.setactioncommand("viewhelp");
        viewhelp.addactionlistener(this);
        about.setactioncommand("about");
        about.addactionlistener(this);
        
        //leftspace
        leftspace=new jpanel();
        
        //contentfont 
        contentfont=new font("kaiti",font.plain,20);
        
        //textarea
        content=new jtextarea();
        content.setfont(contentfont);
        scroll=new jscrollpane(content);
        //scroll.sethorizontalscrollbar(content);
        
        //openurl,saveurl
//        openurl="e:/notpad.txt";
//        saveurl="e:/notpad.txt";
//        saved=false;
        
        //savefilepanel
//        save savef=new save("save",this);
        
        //添加组件,从下一级开始装
        newnot.add(notpad);    newnot.add(model);
        file.add(newnot);    file.add(open);    file.add(save);    file.add(saveas);    file.addseparator();    file.add(pageset);    file.add(print);    file.addseparator();    file.add(exit);
        
        edit.add(undoe);
        edit.addseparator();
        edit.add(cute);
        edit.add(copye);
        edit.add(pastee);
        edit.add(deletee);
        edit.addseparator();
        edit.add(finde);
        edit.add(findnexte);
        edit.add(replacee);
        edit.add(gotoe);
        edit.addseparator();
        edit.add(selectalle);
        edit.add(timedatee);
        
        format.add(wordwrap);
        format.add(font);
        
        view.add(statusbar);
        
        help.add(viewhelp);
        help.addseparator();
        help.add(about);
        

        mb.add(file);    mb.add(edit); mb.add(format);    mb.add(view);    mb.add(help);
        
        tool.add(create);    
        tool.add(unfold); 
        tool.add(copy);
        tool.add(cut);
        tool.add(paste);
        tool.add(pasteshortcut);
        tool.add(delete);
        
        this.setjmenubar(mb);
        this.add(tool,borderlayout.north);
        this.add(leftspace,borderlayout.west);
        this.add(scroll);
        
        
        this.settitle("notpad");
        this.seticonimage(new imageicon("img/notpad/logo.png").getimage());
        this.setlocation(300,300);
        this.setsize(400,400);
        this.setdefaultcloseoperation(this.exit_on_close);
        this.setvisible(true);
        
    }
    
    private string origcontent=null;    //保存一开始的文件或者保存过的文件
    private string copycontent=null;
    @override
    public void actionperformed(actionevent e) {
        switch(e.getactioncommand()){
        case "notpad":{
            system.out.println("notpad");
            
            this.ischangefile("txt");
            
        }break;

        case "model":{
            system.out.println("model");
            
            this.ischangefile("java");
        }break;

        case "open":{
            system.out.println("open");
            //防止第一次打开空文件时,还没保存
            if(this.origcontent==null){
                this.saved=true;
            }
            
            if(saved){
                this.openfilepanel();
            }else{
                save savef=new save("save",this);
                this.openfilepanel();
            }
            
            
            
        }break;

        case "save":{
            system.out.println("save");
            this.savefile();
            //this.setsaved(true);
            
        }break;

        case "saveas":{
            system.out.println("saveas");
            
            string str=content.gettext();
            //选择保存文件的路径
            jfilechooser filechoose=null;
            if(saveurl==null){
                filechoose=new jfilechooser();
            }else{
                filechoose=new jfilechooser(saveurl);
            }
            filenameextensionfilter filter=new filenameextensionfilter("txt & java","java","txt");    //设置可以识别的文件
            filechoose.setfilefilter(filter);
            filechoose.setdialogtitle("save file");
            filechoose.showsavedialog(save);
            filechoose.setvisible(true);
            
            file outfile =filechoose.getselectedfile();
            saveurl=filechoose.getselectedfile().getpath();
            printstream p=null;
            try{
                p=new printstream(outfile);
                system.setout(p);
                system.out.print(str);
            }catch(exception a){
                system.out.println("saveas file error!!");
            }finally{
                p.close();
            }    
        }break;

        case "pageset":{
            system.out.println("pageset");
            
        }break;

        case "print":{
            system.out.println("print");
            
        }break;

        case "exit":{
            system.out.println("exit");
            
            system.exit(-1);
        }break;

        case "undoe":{
            system.out.println("undoe");
            
        }break;

        case "cute":{
            system.out.println("cute");
            if(this.content.getselectedtext()!=null){
                this.copycontent=this.content.getselectedtext();
            }
            this.content.replaceselection("");
        }break;

        case "copye":{
            system.out.println("copye");
            if(this.content.getselectedtext()!=null){
                this.copycontent=this.content.getselectedtext();
            }
            
        }break;

        case "pastee":{
            system.out.println("pastee");
            if(copycontent!=null){
                this.content.replacerange("", content.getselectionstart(), content.getselectionend());
            }
            this.content.insert(copycontent, this.content.getselectionstart());
        }break;

        case "deletee":{
            system.out.println("deletee");
            
            this.content.replaceselection("");
        }break;

        case "finde":{
            system.out.println("finde");
            
            
        }break;

        case "findnexte":{
            system.out.println("findnexte");
            
        }break;

        case "replacee":{
            system.out.println("replacee");
            
        }break;

        case "gotoe":{
            system.out.println("gotoe");
            
        }break;

        case "selectalle":{
            system.out.println("selectalle");
            
            this.content.selectall();
        }break;

        case "timedatee":{
            system.out.println("timedatee");
            
            simpledateformat df=new simpledateformat("yyyy-mm-dd hh:mm:ss");
            //system.out.println(df.format(new date()));
            this.content.insert(df.format(new date()), content.getselectionstart());
        }break;

        case "wordwrap":{
            system.out.println("wordwrap");
            
            imageicon icon;
            if(this.content.getlinewrap()){
                this.content.setlinewrap(false);
                icon=new imageicon(this.changeimagesize("img/notpad/wordwrap.png", buttonwidth-5, buttonheight-5));
                this.wordwrap.seticon(icon);
            }else{
                this.content.setlinewrap(true);
                icon=new imageicon(this.changeimagesize("img/notpad/wordwrapno.png", buttonwidth-5, buttonheight-5));
                this.wordwrap.seticon(icon);
            }
            
        }break;

        case "font":{
            system.out.println("font");
            
            fontpanel f=new fontpanel("font",this);
            
//            this.content.setfont(new font(f.getfontn(),f.getfontsytlen(),f.getsizen()));
            
        }break;

        case "statusbar":{
            system.out.println("statusbar");
            
        }break;

        case "viewhelp":{
            system.out.println("viewhelp");
            
        }break;

        case "about":{
            system.out.println("about");
            
            about a=new about("about","1.0","feiquan","228332xxxxx@qq.com","1843522xxxx","https://www.baidu.com");
        }break;
        
        case "pasteshortcut":{
            system.out.println("pasteshortcut");
            
        }break;
        
        }
        
    }

    @override
    public void windowopened(windowevent e) {
        // todo auto-generated method stub
        
    }

    @override
    public void windowclosing(windowevent e) {
        // todo auto-generated method stub
        system.out .println("弹出是否选择保存的对话框");
        if(saved){
            save savef=new save("save",this);
        }
    }

    @override
    public void windowclosed(windowevent e) {
        // todo auto-generated method stub
        
    }

    @override
    public void windowiconified(windowevent e) {
        // todo auto-generated method stub
        
    }

    @override
    public void windowdeiconified(windowevent e) {
        // todo auto-generated method stub
        
    }

    @override
    public void windowactivated(windowevent e) {
        // todo auto-generated method stub
        
    }

    @override
    public void windowdeactivated(windowevent e) {
        // todo auto-generated method stub
        
    }

    public static string getopenurl() {
        return openurl;
    }

    public static void setopenurl(string openurl) {
        jf_notpad.openurl = openurl;
    }

    public static string getsaveurl() {
        return saveurl;
    }

    public static void setsaveurl(string saveurl) {
        jf_notpad.saveurl = saveurl;
    }
    
    //保存文件其中包含了,判断文件是否存在
    public void savefile(){
        string str=this.content.gettext();
        system.out.println("正在保存:\n"+str);
        
        //判断文件是否存在,不存在则创建文件
        file file=new file(openurl);
        if(!file.exists()){
            try{
                file.createnewfile();
            }catch(exception a){
                system.out.println("创建文件 "+file.getabsolutepath()+" 失败!!");
            }
        }
        
        printstream p=null;
        try{
            p=new printstream(new file(openurl));
            system.setout(p);
            system.out.print(str);
            saved=true;
        }catch(exception a){
            system.out.println("save file error!!");
            saved=false;
        }finally{
            p.close();
        }
        
    }
    
    //判断文件是否修改过,并根据传入的属性判断新建那个文件
    public void ischangefile(string properties){
        system.out.println("是否保存文件:"+saved);
        //判断文件是否修改过
        if(!(this.content.gettext().equals(origcontent))){
            saved=false;
        }
        
        //如果内容为空,也视为已经保存
        if(this.content.gettext()==null||this.content.gettext().equals(""))saved=true;
        
        system.out.println("判断后是否保存文件:"+saved);
        if(saved){
            switch(properties){
            case "txt":{
                this.content.settext("");
                this.settitle("notpad");
                origcontent="";
            }break;
            case "java":{
                this.settitle("notpad");
                string str="public class notpad {\n\tpublic static void main (string[] ages) {\n\t\t\n\t}\n}";
                this.content.settext(str);
                
                origcontent=str;
            }break; 
            }
            
        }else{
            system.out .println("弹出是否选择保存的对话框");
            save savef=new save("save",this);
            
        }
        system.out.println("经过保存面板后是否保存文件:"+saved);
    }
    
    //打开选择打开文件面板,并选择文件
    public void openfilepanel(){
        origcontent=this.content.gettext();
        //显示选择文件面板
        jfilechooser filechoose=null;
        if(openurl==null){
            filechoose=new jfilechooser();
        }else{
            filechoose=new jfilechooser(openurl);
        }
        filenameextensionfilter filter=new filenameextensionfilter("txt & java","java","txt");
        filechoose.setfilefilter(filter);
        filechoose.setdialogtitle("open file");
        filechoose.showopendialog(null);
        filechoose.setvisible(true);
        
        //得到文件
        string url=filechoose.getselectedfile().getabsolutepath();    //得到选择文件的路径
        
        
        //设置保存面板显示的路径
        jf_notpad.setopenurl(url);
        save savef=new save("save",this);
        savef.setvisible(false);
        savef.seturl(url);
        jlabel temp=savef.geturll();
        temp.settext(url+" ?");
        savef.seturll(temp);
        
        string name=filechoose.getselectedfile().getname();
        this.settitle(name+" - notpad");    //设置主窗口标题
        
        //文件流
        filereader fread=null;     bufferedreader buffread=null;
        
        try{
            fread=new filereader(openurl);
            buffread=new bufferedreader(fread);
            
            string str=""; string readline="";
            readline=buffread.readline();
            while(readline!=null){
                str=str+readline+"\r\n";
                readline=buffread.readline();
            }
            
            content.settext(str);
            origcontent=str;
        }catch(exception a){
            system.out.println("open file error!!");
        }finally{
            try{
                fread.close();
                buffread.close();
            }catch(exception b){
                system.out.println("open file stream error!!");
            }
        }
    }

    public boolean issaved() {
        return saved;
    }

    public void setsaved(boolean saved) {
        this.saved = saved;
    }

    public boolean getopenfilebool() {
        return openfilebool;
    }

    public void setopenfilebool(boolean openfilebool) {
        this.openfilebool = openfilebool;
    }

    public string getorigcontent() {
        return origcontent;
    }

    public void setorigcontent(string origcontent) {
        this.origcontent = origcontent;
    }

    public jtextarea getcontent() {
        return content;
    }

    public void setcontent(jtextarea content) {
        this.content = content;
    }
}
jf_notpad

 

java实现Windows记事本

  fontpanel.java实现,字体面板:

  

java实现Windows记事本
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class fontpanel extends jframe implements actionlistener{
    private jlist list1,list2,list3;
    private jscrollpane scroll1,scroll2,scroll3;
    private jlabel l1,l2,l3,l4,l5,l6,simplel;
    private jbutton ok,cancel,use;
    private jpanel p,scrollp,p2,space,space2,simple,mainp,bottomp;
    private  static string fontn="kaiti";
    private static int fontsytlen=0,sizen=20;
    private  jf_notpad notpad ;
    
//    public static void main (string[] ages) {
//        fontpanel f=new fontpanel("font");
//        
//    }
    
    fontpanel(string title,jf_notpad notpad){
        
        this.notpad=notpad;
        
        string[] s={"font","fontstyle","size"};
        
        //获取系统字体
        string[] font=graphicsenvironment.getlocalgraphicsenvironment().getavailablefontfamilynames();
        string style=" plain,bold, italic ";
        string[] fontstyle=style.split(",");
        string sizestr="";
        for(int i=8;i<73;i++){
            sizestr=sizestr+i+",";
        }
        string[] size=sizestr.split(",");
        int count=5;
        
        list1=new jlist(font);
        list1.setvisiblerowcount(count);
        list2=new jlist(fontstyle);
        list2.setvisiblerowcount(count);
        list3=new jlist(size);
        list3.setvisiblerowcount(count);
        
        list1.setselectedindex(153);
        list2.setselectedindex(0);
        list3.setselectedindex(12);
        
        scroll1=new jscrollpane(list1);
        scroll2=new jscrollpane(list2);
        scroll3=new jscrollpane(list3);
        
        l1=new jlabel(s[0],jlabel.center);
        l2=new jlabel(s[1],jlabel.center);
        l3=new jlabel(s[2],jlabel.center);
        l4=new jlabel(this.fontn,jlabel.center);
        l5=new jlabel(fontstyle[this.fontsytlen],jlabel.center);
        l6=new jlabel(string.valueof(this.sizen),jlabel.center);
        
        
        ok=new jbutton("ok");     cancel=new jbutton("cancel");
        ok.setactioncommand("ok");     ok.addactionlistener(this);
        cancel.setactioncommand("cancel");    cancel.addactionlistener(this);
        
        p=new jpanel();
        p.setlayout(new gridlayout(2,3,10,10));
        
        p.add(l1);    p.add(l2);    p.add(l3);
        p.add(l4);    p.add(l5);    p.add(l6);
        
        scrollp=new jpanel(new gridlayout(1,3,10,10));
        
        scrollp.add(scroll1);    scrollp.add(scroll2);    scrollp.add(scroll3);
        
        simple=new jpanel();
        simple.setlayout(new flowlayout(flowlayout.left));
        simplel=new jlabel("aabbyyzz");
        simplel.setfont(new font(fontpanel.fontn,fontpanel.fontsytlen,fontpanel.sizen));
        
        use=new jbutton("simple");
        use.setactioncommand("simple");
        use.addactionlistener(this);
        
        simple.add(use);    simple.add(new jlabel("   "));    simple.add(simplel);
        
        p2=new jpanel();
        p2.setlayout(new flowlayout(flowlayout.right));
        
        p2.add(ok);    p2.add(cancel);
        
        space=new jpanel();
        space2=new jpanel();
        
        bottomp=new jpanel(new gridlayout(2,1,10,10));
        bottomp.add(simple);    bottomp.add(p2);
        
        mainp =new jpanel(new gridlayout(3,1,10,10));
        
        mainp.add(p);    mainp.add(scrollp);     mainp.add(bottomp);
        
        this.add(mainp);
        this.add(p2,borderlayout.south);    
        this.add(space,borderlayout.west);
        this.add(space2,borderlayout.east);
        
        this.settitle(title);
        this.seticonimage(new imageicon("img/notpad/font.png").getimage());
        this.setlocation(300,300);
        this.setsize(500,640);
        this.setvisible(true);
        this.setresizable(false);
//        this.setdefaultcloseoperation(this.exit_on_close);
        
    }

    @override
    public void actionperformed(actionevent e) {
        switch(e.getactioncommand()){
        case "ok":{
            this.setfontn(this.list1.getselectedvalue().tostring());
            this.setfontsytlen(this.list2.getselectedindex());
            this.setsizen(this.list3.getselectedindex()+8);
//            system.out.println(this.getfontn()+"\t"+this.getfontsytlen()+"\t"+this.getsizen());
            this.setvisible(false);
            
            font f=new font(fontpanel.fontn,fontpanel.fontsytlen,fontpanel.sizen);
            jtextarea t=notpad.getcontent();
            t.setfont(f);
            notpad.setcontent(t);
        }break;
        case "cancel":{
            this.setvisible(false);
        }break;
        case "simple":{
            this.simplel.setfont(new font(this.list1.getselectedvalue().tostring(),this.list2.getselectedindex(),this.list3.getselectedindex()+8));
        }break;
        }
    }

    public static string getfontn() {
        return fontn;
    }

    public static void setfontn(string fontn) {
        fontpanel.fontn = fontn;
    }

    public static int getfontsytlen() {
        return fontsytlen;
    }

    public static void setfontsytlen(int fontsytlen) {
        fontpanel.fontsytlen = fontsytlen;
    }

    public static int getsizen() {
        return sizen;
    }

    public static void setsizen(int sizen) {
        fontpanel.sizen = sizen;
    }
}
fontpanel.java

 

java实现Windows记事本

 

   about.java实现关于面板:

  

java实现Windows记事本
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public  class about extends jframe implements actionlistener {
    private jlabel [] l={null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null};
    private jpanel p,p2;
    private jbutton b;
    
    about(string title,string version,string copyrigth,string qqemil,string relative,string href){
        string [] s={"","","version:",version," "," ","@copyright:",copyrigth,"qq邮箱:",qqemil,"联系方式:",relative,"","<html><a href='"+href+"'>更多</a></html>>","",""};
        jpanel p=new jpanel();
        p.setlayout(new gridlayout((int)l.length/2,2));
        for(int i=0;i<l.length;i++){
            if(i%2==0){
                l[i]=new jlabel(s[i],jlabel.center);
            }else{
                l[i]=new jlabel(s[i],jlabel.left) ;
            }
            //设置手型
            if(i==13){
                l[i].setcursor(cursor.getdefaultcursor().getpredefinedcursor(cursor.hand_cursor));
            }
            p.add(l[i]);
        }
        system.out.println(l.length);
        b=new jbutton("ok");
        b.setactioncommand("ok");
        b.addactionlistener(this);
        
        p2=new jpanel();
        p2.setlayout(new flowlayout(flowlayout.right));
        p2.add(b);
        p2.add(new jlabel("          "));
        
        this.add(p);
        this.add(p2,borderlayout.south);
        this.settitle(title);
        this.seticonimage(new imageicon("img/notpad/about.png").getimage());
        this.setlocation(300,300);
        this.setsize(350,300);
        this.setvisible(true);
        this.setresizable(false);
        //this.setdefaultcloseoperation(this.exit_on_close);
    }
    
    public void actionperformed(actionevent e)
    {
        system.out.println(e);
    }
}
about.java

 

java实现Windows记事本

    save.java实现文件的保存读取:

  

java实现Windows记事本
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class save extends jframe implements actionlistener {
    private jlabel l,urll;
    private jbutton save,nosave,cancel;
    private string url;
    private jpanel bottomp,contentp;
    private font font;
    private jf_notpad notpad;
    
//    public static void main(string[] ages){
//        save s=new save("save");
//    }
    
    save(string title,jf_notpad notpad){
        this.notpad=notpad;
        
        font=new font("",font.bold,14);
        
        url=notpad.getopenurl()+" ?";
        urll=new jlabel(url,jlabel.center);
        urll.setfont(font);
        l=new jlabel("do you want to save changes to ",jlabel.center);
        l.setfont(font);
        
        contentp=new jpanel(new gridlayout(2,1));
        contentp.add(l);    contentp.add(urll);
        
        save=new jbutton("save");
        nosave=new jbutton("don't save");
        cancel=new jbutton("cancel");
        
        save.setactioncommand("save");
        nosave.setactioncommand("nosave");
        cancel.setactioncommand("cancel");
        
        save.addactionlistener(this);
        nosave.addactionlistener(this);
        cancel.addactionlistener(this);
        
        bottomp=new jpanel(new flowlayout(flowlayout.right));
        
        bottomp.add(save);    bottomp.add(nosave);    bottomp.add(cancel);
        
        
        this.add(contentp);
        this.add(bottomp,borderlayout.south);
        
        this.settitle(title);
        this.setlocation(300,300);
        this.setsize(400,170);
        this.setresizable(false);
//        this.setdefaultcloseoperation(this.exit_on_close);
        this.setvisible(true);
        
    }

    @override
    public void actionperformed(actionevent e) {
        switch(e.getactioncommand()){
        case "save":{
            notpad.savefile();
            notpad.setsaved(true);
            notpad.setorigcontent(notpad.getcontent().gettext());
            this.setvisible(false);

        }break;
        case "nosave":{
            notpad.setorigcontent(notpad.getcontent().gettext());
            notpad.setsaved(true);
            this.setvisible(false);
        }break;
        case "cancel":{
            notpad.setsaved(false);
            this.setvisible(false);
        }break;
        }
    }

    public string geturl() {
        return url;
    }

    public void seturl(string url) {
        this.url = url;
    }

    public jlabel geturll() {
        return urll;
    }

    public void seturll(jlabel urll) {
        this.urll = urll;
    }
}
save.java

 

java实现Windows记事本

 

 

版权

作者:feiquan

出处:http://www.cnblogs.com/feiquan/

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

大家写文都不容易,请尊重劳动成果~ 这里谢谢大家啦(*/ω\*)