`

最简单的文本编辑器 Swing组件

阅读更多
/*
* 文本编辑器
*/
package exersize;

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JTextEditor extends WindowAdapter implements ActionListener {

private JFrame frame ;
private JTextArea textArea ;
private String filename ;

public void createEditor(){

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

JMenuItem menunew = new JMenuItem("新建") ;
menunew.addActionListener(this) ;
menu.add(menunew) ;

JMenuItem menuopen = new JMenuItem("打开") ;
menuopen.addActionListener(this) ;
menu.add(menuopen) ;

JMenuItem menusave = new JMenuItem("保存") ;
menusave.addActionListener(this) ;
menu.add(menusave) ;

JMenuItem menusaveas = new JMenuItem("另存为...") ;
menusaveas.addActionListener(this) ;
menu.add(menusaveas) ;

menu.addSeparator() ;
JMenuItem menuexit = new JMenuItem("退出") ;
menuexit.addActionListener(this) ;
menu.add(menuexit) ;

menuBar.add(menu) ;

JMenu menuhelp = new JMenu("帮助") ;

JMenuItem menuabout = new JMenuItem("关于") ;
menuabout.addActionListener(this) ;
menuhelp.add(menuabout) ;

menuBar.add(menuhelp) ;


frame = new JFrame("JAVA 文本编辑器") ;
frame.setJMenuBar(menuBar) ;
textArea = new JTextArea() ;
frame.add("Center",textArea) ;
frame.addWindowListener(this) ;
frame.setSize(600,400) ;
    frame.setVisible(true) ;

}

public void actionPerformed(ActionEvent e){

try{

if(e.getActionCommand() == "新建"){
textArea.setText("") ;
}
else if(e.getActionCommand() == "打开"){
//选择文件
JFileChooser dlg = new JFileChooser() ;
int result = dlg.showOpenDialog(frame) ;
if(result == JFileChooser.APPROVE_OPTION){

File file = dlg.getSelectedFile() ;
filename = file.getAbsolutePath() ;

//读取文件
FileReader fr = new FileReader(filename) ;
BufferedReader br = new BufferedReader(fr) ;
String str = "" ;
while(br.ready()){
int c = br.read() ;
str += (char)c ;
}
textArea.setText(str) ;
br.close() ;
fr.close() ;
frame.setTitle("编辑器 -" + filename) ;

}
}
else if(e.getActionCommand() == "保存"){

//写入文件
File file = new File(filename) ;
FileWriter fw = new FileWriter(file,true) ;
BufferedWriter bw = new BufferedWriter(fw) ;
PrintWriter pw = new PrintWriter(bw) ;
//写入数据对象
pw.print(textArea.getText()) ;

bw.close() ;
pw.close() ;
fw.close() ;

}
else if(e.getActionCommand() == "另存为..."){
//选择文件
JFileChooser dlg = new JFileChooser() ;
int result = dlg.showOpenDialog(frame) ;
if(result == JFileChooser.APPROVE_OPTION){
File file = dlg.getSelectedFile() ;
//写入
FileWriter fw = new FileWriter(file,true) ;
BufferedWriter bw = new BufferedWriter(fw) ;
PrintWriter pw = new PrintWriter(bw) ;
pw.print(textArea.getText()) ;

bw.close() ;
pw.close() ;
fw.close() ;

}
}
else if(e.getActionCommand() == "退出"){
System.exit(0) ;
}
else if(e.getActionCommand() == "关于"){
//显示对话框
final JDialog dialog = new JDialog(frame,"关于",true) ;
dialog.setSize(267,117) ;
dialog.setLayout(new GridLayout(2,1)) ;

//窗口关闭事件
dialog.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dialog.dispose() ;
}
}) ;
//显示信息
JPanel panel = new JPanel() ;
JLabel label = new JLabel("作者:" + "laotan") ;

panel.add(label,BorderLayout.NORTH) ;
dialog.add(panel) ;
dialog.setVisible(true) ;

}

}catch(Exception ex){
ex.printStackTrace() ;
}
}

public void windowClosing(WindowEvent e){
System.exit(0) ;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
new JTextEditor().createEditor() ;
}

}
0
0
分享到:
评论

相关推荐

    【设计】java高级程序设计期末复习题.docx

    使用add方法可以在框架的内容窗格中添加组件( ) 15.FlowLayout 是最简单的布局管理器( ) 16.布局管理器GridLayout不是以网格(矩阵)的形式排列组件(X) 17.布局管理器的属性不可以动态的改变(X) 18.每一时刻...

    java自学之道

    5.12 开发自己的文本编辑器 5.13 开发自己的剪切板 5.14 文本拖动效果演示 5.15 怎样拖动图片 5.16 开发自己的数字时钟 5.17 数字动画 5.18 滑杆调试器 5.19 启动程序开发 5.20 开发自己的调色板 5.21 文件选择器 ...

    java开源包8

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包1

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包11

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包2

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包3

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包6

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包5

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包10

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包4

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包7

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包9

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...

    java开源包101

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    Java资源包01

    Spring4GWT ...JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Java核心技术 卷Ⅰ:基础知识 【中文】(第八版)

    然后,通过编译和运行三个典 型的Java程序(一个控制台应用、一个图形应用、一个applet),指导读者使用简易的JDK、可 启用Java的文本编辑器以及一个Java IDE。 第3章开始讨论Java 语言。这一章涉及的基础知识有变量...

Global site tag (gtag.js) - Google Analytics