展开全部

import java.awt.BorderLayout;

public class WordProcessSystem extends JFrame{

32313133353236313431303231363533e58685e5aeb931333264663736private JFileChooser chooser;

private JTextArea textArea;

private File file;

private String string = "";

private Font font;

public WordProcessSystem(){

super();

setTitle("文字处理系统");

setBounds(100, 100,600, 500);

getContentPane().setLayout(new BorderLayout());

getContentPane().setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JMenuBar menuBar = new JMenuBar();

JMenu menu = new JMenu("文件");

JMenuItem menuItem = new JMenuItem("新建");

menuItem.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

String str1 = JOptionPane.showInputDialog("请输入新建文件名:");

try {

file = new File("E:\\", str1 + ".txt");

if(file.exists()){

JOptionPane.showMessageDialog(null, "文件名已存在!");

}

else{

file.createNewFile();

}

} catch (Exception e1) {

// TODO: handle exception

}

}

});

chooser = new JFileChooser();

chooser.setCurrentDirectory(new File("."));

JMenuItem menuItem1 = new JMenuItem("打开");

menuItem1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

int result = chooser.showOpenDialog(null);

if(result == JFileChooser.APPROVE_OPTION){

String str = chooser.getSelectedFile().toString();

try {

file = new File(str);

readFromFile(file);

textArea.setText(string);

} catch (Exception e1) {

// TODO: handle exception

}

}

}

});

JMenuItem menuItem2 = new JMenuItem("退出");

menuItem2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(0);

}

});

JMenuItem menuItem3 = new JMenuItem("保存");

menuItem3.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

String string = textArea.getText();

try {

writeToFile(file, string);

} catch (Exception e1) {

//TODO: handle exception

}

}

});

menuItem3.addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

if(e.getKeyChar() == KeyEvent.VK_C){

//if(e.getKeyChar() == KeyEvent.VK_S){

String string = textArea.getText();

try {

writeToFile(file, string);

} catch (Exception e1) {

//TODO: handle exception

}

//}

}

}

});

JMenuItem menuItem4 = new JMenuItem("另存为");

menuItem4.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

String s1 = JOptionPane.showInputDialog("请输入保存文件路径和文件名:");

file = new File(s1);

System.out.println(file.getPath());

try {

writeToFile(file, string);

System.out.println("aaaa");

} catch (Exception e1) {

// TODO: handle exception

}

}

});

menu.add(menuItem);

menu.add(menuItem1);

menu.add(menuItem2);

menu.add(menuItem3);

menu.add(menuItem4);

JMenu menu2 = new JMenu("格式");

final JMenu menu3 = new JMenu("字体");

String []fontString = {"宋体","楷体","隶书"};

final JMenuItem []menu3_1 = new JMenuItem[fontString.length];

for(int i = 0;i < fontString.length;i++){

String changeString = "";

menu3_1[i] = new JMenuItem(fontString[i]);

menu3_1[i].setActionCommand(changeString + i);

menu3_1[i].addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method

switch (e.getActionCommand().charAt(0)) {

case '0':

font = new Font("宋体",Font.PLAIN,20);

textArea.setFont(font);

break;

case '1':

font = new Font("楷体",Font.PLAIN,18);

textArea.setFont(font);

break;

case '2':

font = new Font("隶书",Font.BOLD,18);

textArea.setFont(font);

break;

default:

break;

}

}});

menu3.add(menu3_1[i]);

}

JMenu menu4 = new JMenu("字号");

String []fontBig = {"10","15","20","25","30","35","40"};

final JMenuItem []menu4_1 = new JMenuItem[fontBig.length];

for(int i = 0;i < fontBig.length;i++){

String changeString = "";

menu4_1[i] = new JMenuItem(fontBig[i]);

menu4_1[i].setActionCommand(changeString + i);

menu4_1[i].addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method

switch (e.getActionCommand().charAt(0)) {

case '0':

font = new Font(menu3.getText(),Font.PLAIN,10);

textArea.setFont(font);

break;

case '1':

font = new Font(menu3.getText(),Font.PLAIN,15);

textArea.setFont(font);

break;

case '2':

font = new Font(menu3.getText(),Font.PLAIN,20);

textArea.setFont(font);

break;

case '3':

font = new Font(menu3.getText(),Font.PLAIN,25);

textArea.setFont(font);

break;

case '4':

font = new Font(menu3.getText(),Font.PLAIN,30);

textArea.setFont(font);

break;

case '5':

font = new Font(menu3.getText(),Font.PLAIN,35);

textArea.setFont(font);

break;

case '6':

font = new Font(menu3.getText(),Font.PLAIN,40);

textArea.setFont(font);

break;

default:

break;

}

}});

menu4.add(menu4_1[i]);

}

menu2.add(menu3);

menu2.add(menu4);

menuBar.add(menu);

menuBar.add(menu2);

setJMenuBar(menuBar);

textArea = new JTextArea();

textArea.setVisible(true);

//textArea.setFont(new Font("宋体",Font.BOLD,20));

add(textArea);

JScrollPane scrollPane = new JScrollPane(textArea);

scrollPane.setSize(600, 410);

scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

add(scrollPane);

}

public void readFromFile(File f) throws IOException{

FileReader fReader = new FileReader(file);

BufferedReader bReader = new BufferedReader(fReader);

char []data = new char[10000];

int length = 0;

while((length = fReader.read(data)) > 0){

string += new String(data,0,length);

}

//string = new String("");

//while(true){

//String s1 = bReader.readLine();

//if(s1 == null){

//break;

//}

//string += (s1 + "\n");

bReader.close();

fReader.close();

}

public void writeToFile(File file,String string) throws IOException{

if(!file.exists()){

file.createNewFile();

}

FileWriter fWriter = new FileWriter(file);

fWriter.write(string);

fWriter.close();

}

public static void main(String[] args) {

WordProcessSystem wordProcessSystem = new WordProcessSystem();

wordProcessSystem.setVisible(true);

}

}

追问

额~很多错误~

追答

这个是在Eclipse中写的,出现很多错误的原因是许多用到的类相应的包没有导进去。

例如:import java.awt.BorderLayout;

你把包导进去就好了

本回答由提问者推荐

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java文本编辑器 运行_能编译运行java的简单文本编辑器相关推荐

  1. Java的class文件批量反编译成Java文件

    Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...

  2. Java 11 快要来了,编译 运行一个命令搞定!

    Java 11 马上要来了,原定于 9 月发布,还有不到 3 个月了,敬请期待更多新功能被加入到 11 当中,本文本讲的是 JEP 330 这个新特性. 化繁为简,一个命令编译运行源代码 看下面的代码 ...

  3. maven java版本过低_maven项目编译运行时提示jdk版本过低问题解决方法

    明明使用的是1.8jdk,但是运行项目时提示使用的是java版本是1.5,版本过低. 修改pom.xml,添加如下: maven-compiler-plugin 3.6.1 1.8 1.8 UTF-8 ...

  4. java main 运行_使用maven运行Java Main的三种方法解析

    导读热词 maven使用exec插件运行java main方法,以下是3种不同的操作方式. 一.从命令行运行 1.运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compi ...

  5. 我的世界java启动程下载_我的世界JAVA下载 运行必备官方下载地址

    我的世界这款游戏的正常运行需要Java的支持,Java 是一门编程语言和一个运行平台.不像其它的如 C++ 的语言,Java 并不是直接运行在硬件上,而是运行在一个叫作 JVM 的虚拟机里.. Min ...

  6. java webrtc ns降噪_单独编译和使用webrtc音频降噪模块(附完整源码+测试音频文件)...

    webrtc的音频处理模块分为降噪ns,回音消除aec,回声控制acem,音频增益agc,静音检测部分.另外webrtc已经封装好了一套音频处理模块APM,如果不是有特殊必要,使用者如果要用到回声消除 ...

  7. eclipse编译java项目class文件_动态编译 Java 代码以及生成 Jar 文件

    导读: 最近在看 Flink 源码的时候发现到一段实用的代码,该代码实现了 java 动态编译以及生成 jar 文件.将其进行改进后可以应用到我们的平台上,实现在平台页面上编写 java 代码语句,提 ...

  8. java的flex开发_繁忙的Flex Java开发人员指南

    java的flex开发 除非您在过去的四年左右的时间里一直从相当大的巨石下面编写代码,否则对于所有出色的孩子来说,"富Internet应用程序"或" RIA"的 ...

  9. java编写布局文件_鸿蒙OS利用JAVA编写的布局实践练习

    鸿蒙OS利用JAVA编写的布局实践练习 鸿蒙OS利用JAVA编写的布局实践练习 目录 JAVA UI框架 利用JAVA代码实现一个简单的布局 利用xml实现上述布局 JAVA UI框架 ??应用的Ab ...

最新文章

  1. 35岁不是程序员的坎儿,看不清楚这件事才是!
  2. PHP-FPM进程数的设定
  3. spring --(12)bean的生命周期
  4. c# Semaphore(信号量)
  5. Redis八种数据类型及应用场景介绍
  6. 有下界的最小费用可行流2.0(bzoj 3876: [Ahoi2014]支线剧情)
  7. iOS 深拷贝、浅拷贝、自定义对象拷贝简介
  8. laravel路由不生效,404,除了/ 都不行,关于nginx环境下laravel除了默认路由都出现404报错的处理方法...
  9. 判断进程是否正在运行
  10. java语言扫雷游戏的实验设计_java扫雷游戏计算机毕业设计中期检查表、中期报告.doc...
  11. ImageJ -介绍与安装
  12. 九宫格构图学习[1]
  13. Hello Python(十八)——PyInstaller打包发布
  14. 微软Surface Pro 4/5平板如何重装Win10系统?教程分享
  15. STC89C52 使用 LCD 1602
  16. 计算机基础——硬盘篇
  17. 电子书《程序原本》小述
  18. 无聊科技正经事周刊(第5期):五一长假与虚拟旅行
  19. 怎么用xshell等ssh连接方式连接自己的本地虚拟机
  20. 微信小程序学习记录【1】【项目结构构成、官方文档构成、基本配置】

热门文章

  1. python读取文本并且替换_lin如何读取和替换python行文件中的文本
  2. SQL 新加字段查询窗口报错
  3. QML for Android 实现二维码扫描(QZXing)
  4. Qt for Android获取手机热点开关状态
  5. Java匿名内部类总结
  6. 字符串数组 和 字符串指针 的区别
  7. VHDL的数据对象(学习笔记1)
  8. 数据结构基础概念及算法概念
  9. 鼠标右键转圈圈_鼠标右键文件夹出现转圈圈假死机情况
  10. 设计模式的理解 : 门面模式、外观模式 (Facade)