下面是我的一个简单java程序代码,可以练习下。
有的功能没弄完,有兴趣的可以完成他,对学java 很有帮助。

package swing;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.event.*;

public class Frame1 extends JFrame {
    Container c = new Container();

Label la = new Label("请帮助边远山区的可怜儿童们!");

JMenuBar jmb = new JMenuBar();

JMenu file = new JMenu("File");

JMenu edit = new JMenu("Edit");

JMenu option = new JMenu("Option");

JMenu about = new JMenu("about");

JMenuItem open = new JMenuItem("Open");

JMenuItem save = new JMenuItem("Save as");

JMenuItem exit = new JMenuItem("Exit");

JMenuItem copy = new JMenuItem("Copy");

JMenuItem cut = new JMenuItem("Cut");

JMenuItem paste = new JMenuItem("Paste");

JMenuItem delete = new JMenuItem("DeleteAll");

JMenuItem italic = new JMenuItem("Italic");

JMenuItem bold = new JMenuItem("Bold");

JMenuItem version = new JMenuItem("about");

JMenuItem help = new JMenuItem("help");

JTextPane ta = new JTextPane();

JFileChooser chooser = new JFileChooser();

FileInputStream filestream = null;

myversion exitversion = new myversion();

String selected = new String();

int dot, mark;

public Frame1() {
        chooser.setSize(400, 350);
        chooser.setDialogTitle("请帮助边远山区的可怜儿童们!");
        chooser.setVisible(true);
        la.setSize(200, 20);
        la.setBackground(Color.orange);
        Font f = new Font("TimesRoman", Font.PLAIN, 16);
        c = this.getContentPane();
        c.setLayout(new BorderLayout());
        c.add(ta, "Center");
        this.setJMenuBar(jmb);
        jmb.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 0));
        jmb.add(file);
        jmb.add(edit);
        jmb.add(option);
        jmb.add(about);
        jmb.add(la);
        file.add(open);
        file.add(save);
        file.add(exit);
        edit.add(copy);
        edit.add(cut);
        edit.add(paste);
        edit.add(delete);
        option.add(italic);
        option.add(bold);
        about.add(version);
        about.add(help);
        open.addActionListener(new ListenActionForJfilechooser());
        save.addActionListener(new ListenActionForJfilechooser());
        exit.addActionListener(new exitListener());
        copy.addActionListener(new copyListener());
        cut.addActionListener(new cutListener());
        paste.addActionListener(new pasteListener());
        delete.addActionListener(new deleteListener());
        italic.addActionListener(new italicListener());
        bold.addActionListener(new boldListener());
        version.addActionListener(new showversion());
        ta.addCaretListener(new taListener());
        ta.setFont(f);
    }

class boldListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Font f = new Font("TimesRoman", Font.BOLD, 16);
            ta.setFont(f);
        }
    }

class italicListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Font f = new Font("TimesRoman", Font.ITALIC, 16);
            ta.setFont(f);
        }
    }

class deleteListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            Font f = new Font("TimesRoman", Font.PLAIN, 16);
            ta.setText(null);
            ta.setFont(f);
        }
    }

class cutListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {

String s1 = new String();
            selected = selectedString();
            s1 = ta.getText();
            int length = s1.length();
            if (dot < mark) {
                ta.setText(s1.substring(0, dot) + s1.substring(mark, length));
            } else {
                ta.setText(s1.substring(0, mark) + s1.substring(dot, length));
            }
        }
    }

class pasteListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            ta.paste();
        }
    }

class taListener implements CaretListener {
        public void caretUpdate(CaretEvent e) {
            dot = e.getDot(); // 取得光标开始位置
            mark = e.getMark();// 取得光标结束位置
        }
    }

class copyListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            selected = selectedString();
        }
    }

class exitListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }

class ListenActionForJfilechooser implements ActionListener {
        int result;

File file;

public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            if (e.getSource() == open) {
                int state = chooser.showOpenDialog(null);
                file = chooser.getSelectedFile();
                if (file != null && state == JFileChooser.APPROVE_OPTION) {
                    try {
                        filestream = new FileInputStream(file);
                        la.setText("打开的文件是:" + file.getName());
                    } catch (Exception e1) {
                        // TODO 自动生成 catch 块
                        e1.printStackTrace();
                    }
                    try {

ta.read(filestream, this);
                    } catch (Exception e1) {

e1.printStackTrace();
                    }
                }
            }
            if (e.getSource() == save) {
                result = chooser.showSaveDialog(ta);
                file = null;
                if (result == JFileChooser.APPROVE_OPTION) {
                    file = chooser.getSelectedFile();
                    la.setText("存储文件名为:" + file.getName());
                } else if (result == JFileChooser.CANCEL_OPTION) {
                    la.setText("您没有选择任何文件");
                }

FileOutputStream fileOutStream = null;

if (file != null) {
                    try {
                        fileOutStream = new FileOutputStream(file);
                    } catch (FileNotFoundException fe) {
                        la.setText("File Not Found");
                        return;
                    }

String content = ta.getText();

try {
                        fileOutStream.write(content.getBytes());
                    } catch (IOException ioe) {
                        la.setText("写入文件错误");
                    } finally {
                        try {
                            if (fileOutStream != null)
                                fileOutStream.close();
                        } catch (IOException ioe2) {
                        }
                    }
                }
            }

}
    }

class showversion implements ActionListener {

public void actionPerformed(ActionEvent e) {
            exitversion.setVisible(true);
        }
    }

class myversion extends Frame {

Label l1 = new Label("Author:  ChangTiger ");

Label l2 = new Label("Version 0.1");

Label l3 = new Label("2007.11.6");

Label l4 = new Label("Tel:13576947833");

myversion() {
            this.setLayout(new FlowLayout(FlowLayout.CENTER, 50, 20));

this.add(l1);
            this.add(l2);
            this.add(l3);
            this.add(l4);

this.setBounds(200, 180, 300, 200);

this.addWindowListener(new myWindowListener());

}
    }

class myWindowListener extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
            exitversion.setVisible(false);
        }
    }

String selectedString() {
        String s = new String();
        s = ta.getText();
        if (dot < mark) {
            s = s.substring(dot, mark);
        } else {
            s = s.substring(mark, dot);
        }
        return s;
    }

public static void main(String[] args) {
        Frame1 frame1 = new Frame1();
        frame1.setSize(500, 400);
        frame1.setVisible(true);
    }
}

我做的一个java简单文本编辑器代码相关推荐

  1. 如何做一个高级的文本编辑器 textarea,拥有快捷键操作

    如何做一个高级的文本编辑器 textarea,拥有快捷键操作 最近想做一个高级点的 textarea ,支持 JetBrains 系列软件的快捷键,比如: CTRL+ D 复制当前行. Tab 在前面 ...

  2. java简单文本编译器_java -简易文本编辑器

    import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; /** * Title:java ...

  3. JAVA写文本编辑器(四)

    其实写到这里,我已经差不多断气了... 常规套路,这里是前三篇的传送门,需要的同学可以看一下:JAVA写文本编辑器(三) JAVA写文本编辑器(二)JAVA写文本编辑器(一) 现在我们只差最后一部分了 ...

  4. c# html文本编辑器,C#实现简单文本编辑器

    本文实例为大家分享了C#实现简单文本编辑器的具体代码,供大家参考,具体内容如下 建立一个窗体文件,实现对文件的编辑保存和对txt文件的打开 界面设计: 程序源代码: //form1.cs using ...

  5. 用Python做一个简陋的文本编辑器

    Hello,大家好,我是Gary! 想必大家都用过Windows系统自带的"记事本"应用吧?它是一个编辑txt文件的应用. 当然,咱们可不能只局限于记事本,咱们也可以自己做一个! ...

  6. JAVA写文本编辑器(一)

    作业题,花了整整两天终于搞出来了,今天给大家整理一下思路. 这里用swing ,awt写的. 我们大概要做成一个电脑的记事本那样的一个编辑器.可以调整字体,字号,颜色.能够打开.保存文件,新建窗口,点 ...

  7. 25、Java Swing文本编辑器的实现

    最简单的文本编辑器要数 Windows 的记事本了.在学习了本章知识之后,本次案例将完成一个简单的文本编辑器程序.它可以打开文本文件,并输出文本文件的位置和内容.其中用到了菜单.工具栏以及选项卡等组件 ...

  8. Swing学习25:Java Swing文本编辑器的实现

    最简单的文本编辑器要数 Windows 的记事本了.在学习了本章知识之后,本次案例将完成一个简单的文本编辑器程序.它可以打开文本文件,并输出文本文件的位置和内容.其中用到了菜单.工具栏以及选项卡等组件 ...

  9. 基于Qt的简单文本编辑器

    1.Qt概述 Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面所需的所有功能.它是完全面向对象的,很容易扩展,并且允许真正的组件编程. 2.Qt发展史 199 ...

最新文章

  1. 风向2018 | AI 突围
  2. GoLand配置数据库、远程host以及远程调试
  3. html用占位符文本填补空白,占位符文本的选择
  4. 安卓最新系统_你的Windows电脑即将可以运行最新版安卓系统
  5. Java Platform SE 8 中文文档
  6. Linux文件权限管理 chmod 读、写、可执行
  7. AD的备份与标准还原:深入浅出Active Directory系列(四)
  8. Ubuntu 12.04下安装搜狗拼音 + 安装搜狗皮肤-转
  9. 前端请求接口post_程序员:HttpClient进行post请求的工具类,访问第三方接口HTTPS...
  10. b站学python_Python爬虫学习教程 bilibili网站视频爬取!【附源码】
  11. Android入门基础教程1
  12. java中的方法重载
  13. dorado 7 注意总结
  14. 【运维心得】只有百度能打开,其他页面打不开怎么办?
  15. 微信分享网页时自定义标题描述和图片
  16. 华纳云:美国高防服务器的防火墙介绍
  17. LaTex技巧:用PPT画图,然后导入LaTeX
  18. BERT模型--transflow转为pytorch
  19. java sftp命令_linux下如何使用sftp命令
  20. TIA博途中触摸屏仿真时画面字体变大,超出范围的处理方法

热门文章

  1. 众生谈Cookie色变,我们的隐私在“裸奔”?
  2. C语言 请给小学生随机出10道加减法的练习题,要求:10以内的加减法,并且能批改。
  3. python字典遍历的几种方法(for in 用法)
  4. 转载--近几年的论文及其代码
  5. 云课堂计算机测试答案,2020智慧职教云课堂计算机应用基础答案最新最全章节测试答案...
  6. cocos2d-x 图片纹理优化 资源加载方案
  7. mac新机配置相关环境
  8. 喵哈哈的日常选数问题
  9. Python:利用Pillow库创建字符画
  10. 电脑突然死机怎么办?正确做法在这!