`

最简单的文本编辑器 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
分享到:
评论

相关推荐

    swing 文本编辑器

    在 Swing 文本编辑器项目中,你会在这里找到关于如何使用 RSyntaxTextArea、TextPane 或其他 Swing 组件来创建文本编辑器的代码。 7. **distfiles**: 这个目录通常用于存放构建过程产生的最终输出,如编译后的类...

    自己用JAVA编写简单的文本编辑器(推荐)

    在本文中,我们将深入探讨如何使用Java编程语言创建一个简单的文本编辑器。这个项目不仅可以帮助初学者更好地理解和应用Java基础知识,还可以提供一个实践GUI(图形用户界面)编程的机会。我们将讨论涉及的关键概念...

    简单文本编辑器源代码(java)

    从给定的文件信息来看,我们正在探讨一个使用Java语言编写的简单文本编辑器的源代码。这个项目不仅展示了基本的编程技能,还深入到了图形用户界面(GUI)设计、颜色选择器的实现以及事件处理机制。下面我们将详细...

    一个简单的文本编辑器

    标题 "一个简单的文本编辑器" 暗示我们讨论的是一个用Java编程语言开发的文本编辑应用程序。这个软件是初学者在两周的学习后为满足教师要求而制作的第一个项目。通过这个项目,我们可以深入理解Java的基础知识,特别...

    Swing组件下载(常用组件)

    20. JTextPane, JEditorPane: 支持富文本编辑和显示,如HTML或RTF格式。 21. JTree: 用于展示层次结构的数据,如文件系统或组织结构。 22. JTable: 显示和编辑表格数据,支持排序、选择和列操作。 23. JMenuBar, ...

    swingTextEditor:使用Java swing的简单文本编辑器

    "swingTextEditor"项目就是一个基于Java Swing实现的简单文本编辑器示例。在这个项目中,我们将深入探讨Java Swing如何用于创建一个基本的文本编辑器。 首先,Swing 提供了 `JFrame` 类,它是所有窗口的基础。在`...

    Swing组件教案及示例程序

    这个“Swing组件教案及示例程序”压缩包文件显然包含了关于如何使用Swing来创建丰富的桌面应用程序的教学材料和实际示例。Swing提供了一套组件,如按钮、文本框、菜单等,使得开发者能够构建出美观且功能丰富的应用...

    Java实现简单的文本编辑器

    在本文中,我们将深入探讨如何使用Java编程语言来实现一个简单的文本编辑器。这个文本编辑器将具备基本的文本操作功能,如打开、保存、复制、粘贴、撤销和重做等。首先,我们需要理解Java的基本语法和面向对象编程...

    记事本--简单文本编辑器

    《记事本——简单文本编辑器的Java GUI实现》 在信息技术领域,开发用户界面(UI)是构建软件系统的重要部分。在这个项目中,我们关注的是一个名为“记事本”的简单文本编辑器,它是利用Java语言的图形用户界面...

    Java写的文本编辑器,初学者参考

    对于这个项目,你可能会使用Swing,因为它更简单且包含丰富的组件,如JFrame(窗口)、JTextArea(文本域)和JButton(按钮)等,这些都是构建文本编辑器的基础。 3. **事件处理**:在文本编辑器中,用户的各种操作...

    JAVA 开发文本编辑器.zip

    1. **Swing或JavaFX**: Java提供了两种主要的GUI(图形用户界面)工具包,Swing和JavaFX,用于创建桌面应用程序,如文本编辑器。Swing是较早的库,而JavaFX则提供了更现代的外观和感觉,以及更好的CSS样式支持。开发...

    基于Swing的类似编辑器的界面

    首先,"可关闭的选项卡面板"是一种常见的用户界面设计,常用于代码编辑器、文本编辑器或文件管理器。在Swing中,我们可以使用JTabbedPane组件来实现这一功能。JTabbedPane允许用户在不同的选项卡之间切换,并且可以...

    java课设—文本编辑器的设计与实现.pdf

    - 虽然简单文本编辑器通常不会涉及数据库,但如果是更复杂的文本编辑器,可能会使用Java的JDBC API连接数据库来存储用户偏好或历史记录。 6. **多线程与动画制作** - 多线程技术可以用于实现异步操作,如在后台...

    利用Swing开发的JAVA常用组件代码

    以下是一些关键的Swing组件及其用途: 1. **JButton**: 这是最基本的按钮组件,可以用于执行特定的操作或触发事件。 2. **JLabel**: 用于显示文本或图像,常用于提供信息或指示状态。 3. **JTextField**: 提供单行...

    用Java设计文本编辑器MiniEditor

    1. **Swing组件**:要创建一个文本编辑器,我们需要使用JFrame作为主窗口,它是一个顶级容器,可以包含其他组件。在MiniEditor中,我们可能会看到JTextArea用于显示和编辑文本,JMenuBar用于创建菜单栏,JMenuItem则...

    历史学swing用户界面组件PPT学习教案.pptx

    Swing组件的结构层次清晰,从最基础的对象和组件类开始,延伸到特定的窗口类如JFrame和容器类如JPanel。这些组件是构建Java应用程序界面的基础。JFrame是窗口的基础,而JPanel则常被用作容器,可以容纳其他组件。...

    java swing简单记事本项目

    在这个"java swing简单记事本项目"中,我们将深入理解如何利用Swing来创建一个基本的文本编辑器,即记事本程序。这个项目非常适合初学者,因为它能够帮助学习者掌握Swing的基本用法。 1. **Swing组件基础** Swing ...

    java 文本编辑

    - `javax.swing.text`包包含了许多用于构建文本编辑器的组件,如`JTextComponent`(包括`JTextArea`, `JEditorPane`),它们支持文本编辑、格式化和显示HTML或纯文本。 - `JScrollPane`用于将文本组件放入可滚动的...

    Java桌面程序开发第5章-使用Swing常用组件.ppt

    JTextField是Swing中处理单行文本输入的组件,适合于简单的用户输入场景。与JButton不同,JTextField允许用户输入和查看文本。Swing还提供了其他类似的文本组件,比如JTextArea,用于多行文本输入,JPasswordField...

    JavaSwing界面设计(所有控件及示例)

    - `javax.swing.JComponent` 是Swing组件的核心,它是所有Swing组件的基类,继承自`Container`。 2. **顶层容器** - `JFrame` 是应用的主要窗口,通常用于创建应用程序界面。 - `JApplet` 用于创建网页中的小...

Global site tag (gtag.js) - Google Analytics