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

📄 showtext.java

📁 一个java记事本程序 包括新建
💻 JAVA
字号:
/* * ShowText.java * * Created on 2005年11月21日, 下午12:23 */package examples.mynote;/** * * @author  leafyoung */import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.*;import javax.swing.text.*;import java.awt.datatransfer.*;import java.io.*;import java.lang.*;import java.util.*;import java.awt.geom.*;public class ShowText extends JFrame implements ActionListener //ShowText类继承了JFrame类和ActionListener接口{    /////////////////////////////////////////////////////////////////////////        boolean bsaved = false;  //判断文件是否保存    Color color=new Color(6);    JColorChooser jColor=new JColorChooser();//颜色对话框    DefaultStyledDocument doc= new DefaultStyledDocument() ;        Toolkit kit=Toolkit.getDefaultToolkit();      private FileDialog openFileDialog=new FileDialog(this,"Open File",FileDialog.LOAD);//定义各种保存对话框       private FileDialog saveFileDialog=new FileDialog(this,"Save File ",FileDialog.SAVE);    private FileDialog saveAsFileDialog=new FileDialog(this,"Save File As",FileDialog.SAVE);        Clipboard clipBoard=kit.getSystemClipboard(); //定义剪贴板    String fileName;        ///////////////////////////////////////////////////////////////////////////////    JTextPane textPane=new JTextPane(doc); //JTextPane文本        JMenuBar menuBar=new  JMenuBar();    //定义 一个JMenuBar        JMenu fileMenu =new JMenu("文件");    //定义菜单    JMenuItem newItem=new JMenuItem("新建"); //定义不同的菜单项,new,open,save,saveas exit    JMenuItem openItem=new JMenuItem("打开");    JMenuItem saveItem=new JMenuItem("保存");    JMenuItem saveAsItem=new JMenuItem("另寸为");    JMenuItem exitItem=new JMenuItem("退出");        JMenu editMenu=new JMenu("编辑");    JMenuItem selectItem=new JMenuItem("全选");    JMenuItem copyItem=new JMenuItem("复制");    JMenuItem pasteItem=new JMenuItem("粘贴");    JMenuItem cutItem=new JMenuItem("剪切");        JMenu settingMenu=new JMenu("设置");    JMenuItem charcolorMenuItem=new JMenuItem("字体颜色");    JMenuItem fontMenuItem=new JMenuItem("字体类型");    JMenuItem sizeMenuItem=new JMenuItem("字体大小");    JMenuItem backgroundcolorMenuItem=new JMenuItem("背景颜色");        JMenu formatMenu=new JMenu("格式");    JMenuItem linespaceMenuItem=new JMenuItem("设置行间距");    JMenuItem paragraphspaceMenuItem=new JMenuItem("设置段落间距");        JMenu helpMenu=new JMenu("帮助");    JMenuItem helpMenuItem=new JMenuItem("关于...");    ////////////////////////////////////////////////////////////////////////    String search=textPane.getText();     //取得当前文本所有字符        public ShowText() {                Toolkit kit=Toolkit.getDefaultToolkit();  //设置JFrame的大小        Dimension screenSize=kit.getScreenSize();        int screenWidth=screenSize.width;        int screenHeight=screenSize.height;        setSize(screenWidth/2,screenHeight/2);        setLocation(screenWidth/4,screenHeight/4);        setTitle("Mynotebook");        setFont(new Font("TimesRoman",Font.PLAIN,28)) ;                                menuBar.add(fileMenu); //菜单栏上加各个菜单        menuBar.add(editMenu);        menuBar.add(settingMenu);        menuBar.add(formatMenu);        menuBar.add(helpMenu);                fileMenu.add(newItem);  //在菜单上加上菜单项        fileMenu.add(openItem);        fileMenu.add(saveItem);        fileMenu.add(saveAsItem);        fileMenu.add(exitItem);                editMenu.add(selectItem);        editMenu.add(cutItem);        editMenu.add(copyItem);        editMenu.add(pasteItem);                settingMenu.add(charcolorMenuItem);        settingMenu.add(fontMenuItem);        settingMenu.add(sizeMenuItem);        settingMenu.add(backgroundcolorMenuItem);                formatMenu.add(linespaceMenuItem);        formatMenu.add(paragraphspaceMenuItem);                helpMenu.add(helpMenuItem);                setJMenuBar(menuBar);//设置菜单栏        this.add(textPane);        addWindowListener(new WindowAdapter(){            public void windowClosing(WindowEvent e){                if(bsaved)                    System.exit(0);            }        }        );                Font font = new Font("宋体", Font.PLAIN, 12);        Enumeration keys = UIManager.getLookAndFeelDefaults().keys();        while (keys.hasMoreElements()) {            Object key = keys.nextElement();            if (UIManager.get(key) instanceof Font) {                UIManager.put(key, font);            }        }                newItem.addActionListener(this);//注册各个监听器        openItem.addActionListener(this);        saveItem.addActionListener(this);        saveAsItem.addActionListener(this);        exitItem.addActionListener(this);        selectItem.addActionListener(this);        copyItem.addActionListener(this);        cutItem.addActionListener(this);        pasteItem.addActionListener(this);                charcolorMenuItem.addActionListener(this);        backgroundcolorMenuItem.addActionListener(this);        fontMenuItem.addActionListener(this);        sizeMenuItem.addActionListener(this);                linespaceMenuItem.addActionListener(this);        paragraphspaceMenuItem.addActionListener(this);                helpMenuItem.addActionListener(this);    }        public void actionPerformed(ActionEvent e) {        Object eventSource=e.getSource();        /////////////////////////////////////////////////////        if(eventSource==newItem) //新建菜单        {            if(bsaved)   //如果保存则在原来的文件名下进行新的修改            {                textPane.setText(" ");  //内容置空                setTitle("new file");   //置新的名字                            }            else if(!bsaved)         //没有保存            {                int i=JOptionPane.showConfirmDialog(this,"文件没有保存,是否保存文件","Jishiben",JOptionPane.YES_NO_CANCEL_OPTION);//提示保存对话框                switch(i) {                    case JOptionPane.YES_OPTION: {                        saveAsFileDialog.setVisible(true);                        fileName=saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();                        if(fileName!=null)                            writeFile(fileName);                    }                    case JOptionPane.NO_OPTION: {                        textPane.setText(" ");                        setTitle("new file");                    }                    case JOptionPane.CANCEL_OPTION: {                        textPane.setText(" ");                        setTitle("new file");                    }                }            }        }        ////////////////////////////////////////////////////////////                else if(eventSource==openItem)   //打开操作        {            openFileDialog.setVisible(true);            fileName=openFileDialog.getDirectory()+openFileDialog.getFile(); //取得当前文件名            if(fileName!=null)                readFile(fileName);                    //读入操作        }        /////////////////////////////////////////////////////////////////                else if(eventSource==saveItem)                               //保存操作        {            if (fileName==null)                                 //判断文件名是否为空            {                fileSaveTo();                               //调用fileSaveTo();                fileName=saveFileDialog.getDirectory()+saveFileDialog.getFile();//取得保存的文件路径和文件                if(fileName!=null)                    writeFile(fileName);                    //写文件            }            if(fileName!=null)                writeFile(fileName);        }        ////////////////////////////////////////////////////////////                else if(eventSource==saveAsItem)              //另存为操作        {            saveAsFileDialog.setVisible(true);            fileName=saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();            if(fileName!=null)                writeFile(fileName);        }        ////////////////////////////////////////////////////////////////////                else if(eventSource==selectItem)          //全选操作        {            textPane.selectAll();        }        /////////////////////////////////////////////////////////////////////                else if(eventSource==copyItem)             //复制操作        {            String text=textPane.getSelectedText();            StringSelection selection=new StringSelection(text);            clipBoard.setContents(selection,null);     //剪贴版        }        ///////////////////////////////////////////////////////////////////                else if(eventSource==cutItem)           //剪贴操作        {            textPane.cut();                    }        ////////////////////////////////////////////////////////////////////                else if(eventSource==pasteItem)         //粘帖操作        {                        Transferable contents=clipBoard.getContents(this);            if(contents==null)                return;            String text;            text=" ";            try{                text=(String)contents.getTransferData(DataFlavor.stringFlavor);//从剪贴板上取出            }            catch(Exception exception) {            }            textPane.replaceSelection(text);        }                //////////////////////////////////////////////////////////////////////                else if(eventSource==charcolorMenuItem)//颜色选择对话框        {            color = JColorChooser.showDialog(            this,"",color);                        MutableAttributeSet normal;            normal = new SimpleAttributeSet();               //关键字颜色和字体设置            StyleConstants.setForeground(normal, color);                        textPane.setCharacterAttributes(normal,false);        }        //////////////////////////////////////////////////////////                else if(eventSource==fontMenuItem)//设置字体        {            font charfontwindow=new font(textPane);            charfontwindow.setVisible(true);        }        ////////////////////////////////////////////////////////////////////        else if(eventSource==sizeMenuItem)//设置字体大小        {            size charsizewindow=new size(textPane);            charsizewindow.setVisible(true);        }        ///////////////////////////////////////////////////////                else if(eventSource==backgroundcolorMenuItem)//背景颜色选择对话框        {            color = JColorChooser.showDialog(            this,"",color);            textPane.setBackground(color);        }        ///////////////////////////////////////////////////////////////////////                else if(eventSource==linespaceMenuItem) {//设置行间距            linespace linespacewindow=new linespace(textPane);            linespacewindow.setVisible(true);                    }        ////////////////////////////////////////////////////////////////////////////////                else if(eventSource==paragraphspaceMenuItem){//设置段间距            paragraphspace paragraphspacewindow=new paragraphspace(textPane);            paragraphspacewindow.setVisible(true);        }                ///////////////////////////////////////////////////////////////////////////                else if(eventSource==helpMenuItem)         //help操作        {            JOptionPane.showMessageDialog(null, "该记事本是第一版本,期待升级", "关于", JOptionPane.INFORMATION_MESSAGE);        }        else if(eventSource==exitItem)  //退出操作        {            if(bsaved)                System.exit(0);            else if (!bsaved) {                int i=JOptionPane.showConfirmDialog(this,"是否保存文件","Jishiben",JOptionPane.YES_NO_CANCEL_OPTION);                switch(i) {                    case JOptionPane.YES_OPTION: {                        saveAsFileDialog.setVisible(true);                        fileName=saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();                        if(fileName!=null)                            writeFile(fileName);                    }                    case JOptionPane.NO_OPTION:                        System.exit(0);                    case JOptionPane.CANCEL_OPTION:                        System.exit(0);                    default:                        System.exit(0);                                        }            }        }        //////////////////////// //////////////////////////////    }    /**     * 调用文件保存对话框,改变文件是否保存属性     */    public void fileSaveTo() {                saveFileDialog.setVisible(true);        bsaved=true;    }    //////////////////////////////////// ///////////////////    /**     *  读入文件,利用字符流     */    public void readFile(String fileName) {        try{            File file=new File(fileName);            FileReader readIn=new FileReader(file);            int size=(int)file.length();            int charsRead=0;            char[] content=new  char[size];            while(readIn.ready())                charsRead+=readIn.read(content,charsRead,size-charsRead);            readIn.close();            textPane.setText(new String(content,0,charsRead));        }        catch(IOException e) {            System.out.println("Error opening file");        }    }    /////////////////////////////////////// ///////////////////////    /**     * 写入文件操作,利用FileWriter函数的write方法,写入文件     */    public void writeFile(String fileName) {        try{            File file=new File(fileName);            FileWriter writeOut=new FileWriter(file);            writeOut.write(textPane.getText());            writeOut.close();        }        catch(IOException e) {            System.out.println("Error writing file");        }    }    /////////////////////////////////////////////////////// ///////////////    }

⌨️ 快捷键说明

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