关于文本框的制作

import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
    public class Wordwin extends JFrame implements DocumentListener {
        /**
         *
         */
        private static final long serialVersionUID = 1L;
        JMenuBar menubar=new JMenuBar();//创建菜单条
        JMenu file=new JMenu("文件");//创建菜单子项
        JMenu edit=new JMenu("编辑");
        JMenu geshi=new JMenu("格式");
        JTextArea wordArea=new JTextArea();//新建一个文本域
        JScrollPane imgScrollPane = new JScrollPane(wordArea);//设置文本域可滚动
        String [] str1={"新建","打开","保存","另存为","退出"};
        String [] str2={"剪切","复制","粘贴","替换"};
        String [] str3={"字体"};
        Font f1=new Font("隶书",Font.PLAIN,15);//设置字体变量f1为隶书,大小15
        Font1 z1=new Font1(); //设置字体文本域
        Change c1=new Change();//查找替换文本域
        int flag=0;//设置标签
        String source="";//空白文本框
        public static void main(String[] args) {
            JFrame wordwin=new Wordwin();//构造一个属于Windows的窗体
            wordwin.setVisible(true);//窗体可见
        }
        public Wordwin(){
            c1.set(wordArea);
            z1.set(wordArea);
            setTitle("文本编辑器");
            Toolkit kit = Toolkit.getDefaultToolkit();//工具包
            Dimension screenSize = kit.getScreenSize();//获取屏幕分辨率
            setSize(screenSize.width/2,screenSize.height/2);//大小
            setLocation(screenSize.width/4,screenSize.height/4);//位置
            add(imgScrollPane,BorderLayout.CENTER);//文本区域放置到中央
            setJMenuBar(menubar);
            file.setFont(f1);//设置字体
            edit.setFont(f1);
            geshi.setFont(f1);
            menubar.add(file);//给“文件”添加菜单子项
            menubar.add(edit);
            menubar.add(geshi);
            wordArea.getDocument().addDocumentListener(this);//为文本域添加文件监听者
            for(int i=0;i<str1.length;i++){
                JMenuItem item1= new JMenuItem(str1[i]);//将“新建”“保存”等添加进“文件”的目录中,“文件”即“item1”
                item1.addActionListener(new MyActionListener1());//监听是否点击item1
                item1.setFont(f1);//设置“新建”“保存”等字体
                file.add(item1);
            }
            for(int i=0;i<str2.length;i++){
                JMenuItem item2= new JMenuItem(str2[i]);
                item2.addActionListener(new MyActionListener1());
                item2.setFont(f1);
                edit.add(item2);
            }
            for(int i=0;i<str3.length;i++){
                JMenuItem item3= new JMenuItem(str3[i]);
                item3.addActionListener(new MyActionListener1());
                item3.setFont(f1);
                geshi.add(item3);
            }
        }
        public void changedUpdate(DocumentEvent e) {
            flag=1;
        }//修改、插入、删除操作后重新定义标签flag=1

        public void insertUpdate(DocumentEvent e) {
            flag=1;
        }
        public void removeUpdate(DocumentEvent e) {
            flag=1;
        }
        void open(){
            FileDialog  filedialog=new FileDialog(this,"打开",FileDialog.LOAD);//创建一个具有指定标题的文件对话框窗口
            filedialog.setVisible(true);
            String path=filedialog.getDirectory();//获取当前文件的路径
            String name=filedialog.getFile();//获取文件名
            if(path!=null && name!=null){
                FileInputStream file = null;//读取文件(文件输入流)
                try {
                    file = new FileInputStream(path+name);
                } catch (FileNotFoundException e) {

                }
                InputStreamReader put =new InputStreamReader(file);//读取需打开的文件的内容
                BufferedReader in=new BufferedReader(put);//缓冲字符输入流
                String temp="";
                String now = null;
                try {
                    now = (String)in.readLine();//读取内容
                } catch (IOException e) {

                    e.printStackTrace();//在命令行打印异常信息在程序中出错的位置及原因
                }
                while(now!=null){
                    temp+=now+"\r\n";
                    try {
                        now=(String)in.readLine();
                    } catch (IOException e) {

                        e.printStackTrace();
                    }
                }

                wordArea.setText(temp);
            }

        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值