`
lysvanilla
  • 浏览: 80458 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Java实例开发01-02 文本阅读器

阅读更多

这次采用的是SWT开发的,利用了Jigloo插件

 

知识点:

1.FileDialog

2.文件的读写

 

package chapter01.sample02;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;

import com.cloudgarden.resource.SWTResourceManager;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class FileReaderTool extends org.eclipse.swt.widgets.Composite {

    private Menu menu1;
    private Text text_file;
    private ToolItem toolItem_save;
    private ToolItem toolItem_edit;
    private ToolItem toolItem_open;
    private ToolBar toolBar1;
    private MenuItem aboutMenuItem;
    private MenuItem contentsMenuItem;
    private Menu helpMenu;
    private MenuItem helpMenuItem;
    private MenuItem exitMenuItem;
    private MenuItem closeFileMenuItem;
    private MenuItem saveFileMenuItem;
    private MenuItem newFileMenuItem;
    private MenuItem openFileMenuItem;
    private Menu fileMenu;
    private MenuItem fileMenuItem;

    {
        //Register as a resource user - SWTResourceManager will
        //handle the obtaining and disposing of resources
        SWTResourceManager.registerResourceUser(this);
    }

    public FileReaderTool(Composite parent, int style) {
        super(parent, style);
        initGUI();
    }
    
    /**
    * Initializes the GUI.
    */
    private void initGUI() {
        try {
            this.setSize(new org.eclipse.swt.graphics.Point(400,300));
            this.setBackground(SWTResourceManager.getColor(192, 192, 192));
            FormLayout thisLayout = new FormLayout();
            this.setLayout(thisLayout);
            this.setBackgroundImage(SWTResourceManager.getImage("img/jpg/8.jpg"));
            {
                text_file = new Text(this, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
                FormData text_fileLData = new FormData();
                text_fileLData.width = 378;
                text_fileLData.height = 257;
                text_fileLData.left =  new FormAttachment(0, 1000, 0);
                text_fileLData.top =  new FormAttachment(0, 1000, 43);
                text_fileLData.right =  new FormAttachment(1000, 1000, 0);
                text_fileLData.bottom =  new FormAttachment(1000, 1000, 0);
                text_file.setLayoutData(text_fileLData);
                text_file.setVisible(false);
            }
            {
                toolBar1 = new ToolBar(this, SWT.HORIZONTAL | SWT.H_SCROLL);
                FormData toolBar1LData = new FormData();
                toolBar1LData.width = 400;
                toolBar1LData.height = 43;
                toolBar1LData.left =  new FormAttachment(0, 1000, 0);
                toolBar1LData.top =  new FormAttachment(0, 1000, 0);
                toolBar1LData.right =  new FormAttachment(1000, 1000, 0);
                toolBar1.setLayoutData(toolBar1LData);
                {
                    toolItem_open = new ToolItem(toolBar1, SWT.NONE);
                    toolItem_open.setImage(SWTResourceManager.getImage("img/png/New Document.png"));
                    toolItem_open.addSelectionListener(new SelectionAdapter() {
                        public void widgetSelected(SelectionEvent evt) {
                            toolItem_openWidgetSelected(evt);
                        }
                    });
                }
                {
                    toolItem_edit = new ToolItem(toolBar1, SWT.NONE);
                    toolItem_edit.setImage(SWTResourceManager.getImage("img/png/Write Document.png"));
                    toolItem_edit.addSelectionListener(new SelectionAdapter() {
                        public void widgetSelected(SelectionEvent evt) {
                            toolItem_editWidgetSelected(evt);
                        }
                    });
                }
                {
                    toolItem_save = new ToolItem(toolBar1, SWT.NONE);
                    toolItem_save.setImage(SWTResourceManager.getImage("img/png/Web Browser.png"));
                    toolItem_save.addSelectionListener(new SelectionAdapter() {
                        public void widgetSelected(SelectionEvent evt) {
                            toolItem_saveWidgetSelected(evt);
                        }
                    });
                }
            }
            {
                menu1 = new Menu(getShell(), SWT.BAR);
                getShell().setMenuBar(menu1);
                {
                    fileMenuItem = new MenuItem(menu1, SWT.CASCADE);
                    fileMenuItem.setText("File");
                    {
                        fileMenu = new Menu(fileMenuItem);
                        {
                            openFileMenuItem = new MenuItem(fileMenu, SWT.CASCADE);
                            openFileMenuItem.setText("Open");
                        }
                        {
                            newFileMenuItem = new MenuItem(fileMenu, SWT.CASCADE);
                            newFileMenuItem.setText("New");
                        }
                        {
                            saveFileMenuItem = new MenuItem(fileMenu, SWT.CASCADE);
                            saveFileMenuItem.setText("Save");
                        }
                        {
                            closeFileMenuItem = new MenuItem(fileMenu, SWT.CASCADE);
                            closeFileMenuItem.setText("Close");
                        }
                        {
                            exitMenuItem = new MenuItem(fileMenu, SWT.CASCADE);
                            exitMenuItem.setText("Exit");
                        }
                        fileMenuItem.setMenu(fileMenu);
                    }
                }
                {
                    helpMenuItem = new MenuItem(menu1, SWT.CASCADE);
                    helpMenuItem.setText("Help");
                    {
                        helpMenu = new Menu(helpMenuItem);
                        {
                            contentsMenuItem = new MenuItem(helpMenu, SWT.CASCADE);
                            contentsMenuItem.setText("Contents");
                        }
                        {
                            aboutMenuItem = new MenuItem(helpMenu, SWT.CASCADE);
                            aboutMenuItem.setText("About");
                        }
                        helpMenuItem.setMenu(helpMenu);
                    }
                }
            }
            this.layout();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
    * Auto-generated main method to display this 
    * org.eclipse.swt.widgets.Composite inside a new Shell.
    */
    public static void main(String[] args) {
        Display display = Display.getDefault();
        Shell shell = new Shell(display,SWT.SHELL_TRIM);
        FileReaderTool inst = new FileReaderTool(shell, SWT.NULL);
        Point size = inst.getSize();
        shell.setLayout(new FillLayout());
        shell.setImage(SWTResourceManager.getImage("img/ico/Bookmark.ico"));
        shell.setText("\u6587\u672c\u9605\u8bfb\u5668");
        shell.layout();
        if(size.x == 0 && size.y == 0) {
            inst.pack();
            shell.pack();
        } else {
            Rectangle shellBounds = shell.computeTrim(0, 0, size.x, size.y);
            shell.setSize(shellBounds.width, shellBounds.height);
        }
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }
    
    private void toolItem_editWidgetSelected(SelectionEvent evt) {
        FileDialog fileDialog = new FileDialog(getShell(), SWT.OPEN);
        fileDialog.setText("Choose a file to read!");
        String[] fileFilters = new String[]{"*.txt","*.java","*.doc"};
        fileDialog.setFilterExtensions(fileFilters);
        String select = fileDialog.open();
        System.out.println(select);
        StringBuffer sBuffer = new StringBuffer();
        try {
            FileReader fileReader = new FileReader(select);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            String string = bufferedReader.readLine();
            while(string!=null){
                sBuffer.append(string+"\n");
                string = bufferedReader.readLine();
            }
            bufferedReader.close();
            fileReader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        text_file.setText(sBuffer.toString());
        text_file.setVisible(true);
    }
    
    private void toolItem_openWidgetSelected(SelectionEvent evt) {
        text_file.setVisible(true);
    }
    
    private void toolItem_saveWidgetSelected(SelectionEvent evt) {
        String text = text_file.getText();
        System.out.println(text);
        FileDialog fileDialog = new FileDialog(getShell(), SWT.SAVE);
        String[] fileFilters = new String[]{"*.txt","*.java","*.doc"};
        fileDialog.setFilterExtensions(fileFilters);
        fileDialog.setText("Save a path to save the file");
        String selected = fileDialog.open( );
        System.out.println(selected);
        try {
            FileWriter fileWriter = new FileWriter(selected);
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
            bufferedWriter.write(text);
            bufferedWriter.close();
            fileWriter.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

 

 

界面显示:

程序启动:

1

读取文件:

2

保存文件:

3

 

保存后的文件:

4

分享到:
评论

相关推荐

    基于Java的实例开发源码-HTML文档解析器 HTMLParser.zip

    这个"基于Java的实例开发源码-HTML文档解析器 HTMLParser.zip"提供了一个具体的实现,帮助开发者更好地理解和应用这项技术。以下是关于这个主题的详细解释: 1. **HTML文档解析**:HTML(HyperText Markup Language...

    java源码包---java 源码 大量 实例

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

    java做的文本阅读器

    Java编写的文本阅读器是一种基于Java编程语言实现的软件,用于查看和阅读文本文件,如Java源代码(.java)和纯文本文件(.txt)。这个项目展示了如何利用Java的IO流、Swing或JavaFX图形用户界面库来创建一个功能完备...

    Java身份证阅读器实例(华旭)

    本实例是关于如何使用Java与华旭品牌的身份证阅读器进行通信的实践案例。华旭身份证阅读器是一款常见的设备,它能快速、准确地读取身份证上的芯片数据。 身份证阅读器通常通过USB接口与计算机连接,它能够读取...

    基于Java的实例开发源码-JeeSite Java快速开发平台.zip

    5. **富文本编辑器**:提供易于使用的富文本编辑器,支持图文混排,使内容编辑更加便捷。 6. **前端UI框架**:通常会采用现代化的前端框架,如Bootstrap或Element UI,提供美观且响应式的界面,提升用户体验。 7. ...

    安卓android实例,文本阅读器

    这个实例项目,"安卓Android实例,文本阅读器",是专为新手开发者设计的,旨在提供一个基础的起点来理解和实践安卓应用开发。下面我们将深入探讨这个项目中的关键知识点。 1. **安卓应用的基本结构**:所有安卓应用...

    基于Java的实例源码-文字识别工具 Eye.zip

    【标题】"基于Java的实例源码-文字识别工具 Eye.zip" 提供的是一个使用Java编程语言实现的文字识别工具。这个工具可能包含了 OCR(Optical Character Recognition)技术,用于将图像中的文字转换为可编辑的文本格式...

    多项完全的java文本编辑器实例

    Java编程语言以其跨平台性和强大的功能在软件开发领域占据着重要的地位,特别是在开发桌面应用程序时,文本编辑器是一个常见的需求。本资源包提供了一个全面的Java文本编辑器实例,可以帮助开发者深入理解如何利用...

    txt文本阅读器 实现字体颜色改变和文本背景变换

    Java的跨平台特性使其成为开发这种跨设备文本阅读器的理想选择。 2. **Swing或JavaFX GUI库**:由于项目是一个图形用户界面(GUI)应用,因此可能使用了Swing或JavaFX来构建界面。Swing是Java的标准GUI库,而JavaFX...

    基于JAVA的文本编辑器+报告

    标题中的“基于JAVA的文本编辑器+报告”指的是一个使用Java编程语言开发的文本编辑器项目,该项目还包含了相应的课程设计报告。这个项目可能是为了帮助学生掌握Java编程基础,特别是面向对象编程概念以及GUI(图形...

    基于java的开发源码-YAML解析器 SnakeYAML.zip

    它在Java开发中扮演着重要的角色,尤其在微服务、容器化和配置管理等领域。 在深入讲解SnakeYAML之前,我们先来了解一下YAML的基本概念。YAML以简洁明了的结构存储数据,包括键值对、列表和嵌套结构。例如: ```...

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

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

    Java源码包100个设计实例.zip

    Java+XML写的RSS阅读器.rar Java+XML日程提醒系统.rar Java24点游戏逼真图形版代码.rar JavaScript万年历.rar Java二进制IO类与文件复制操作实例.rar Java从压缩包中提取文件.rar Java从网络取得文件.rar Java仓库...

    AndroidTXT-文本阅读器源码.zip

    在Android平台上,开发一个TXT文本阅读器涉及到许多关键知识点,包括Android SDK的使用、UI设计、文件操作、文本解析以及性能优化。以下是对这个项目源码的详细分析: 1. **Android SDK**:所有Android应用都基于...

    基于Java的实例源码-YAML解析器 SnakeYAML.zip

    **SnakeYAML:Java中的YAML解析器** SnakeYAML是一个用Java编写的开源库,专门用于解析和生成YAML(YAML Ain't Markup Language)格式的文档。YAML是一种简洁且直观的数据序列化语言,常用于配置文件、数据交换以及...

    基于Java的实例源码-数字图书制作工具 EpubCheck.zip

    通过使用EpubCheck,开发者和出版商可以确保他们的EPUB文件在各种阅读器和设备上能够顺利地打开和展示。 EpubCheck的源码结构通常包含以下几个关键部分: 1. **解析器**:这部分负责读取EPUB文件的ZIP结构,提取...

    java语言编写的文本编辑器

    Java语言编写的文本编辑器是一种基于Java编程语言开发的应用程序,用于处理和编辑文本文件。在Java中,我们可以利用丰富的库和API来实现这样的编辑器,使其具备多种功能,如打开、保存、复制、粘贴、查找、替换等。...

    obd-java-api-1.0-sources_obd_

    4. **源代码**:源代码是程序员可以直接阅读和修改的编程语言文本,对于开发者而言,源代码意味着透明度和可定制性,可以根据实际需求进行修改和扩展。 5. **OBD数据**:通过OBD接口,可以获取到车辆的各种实时数据...

    Java_SRC_7-9.rar_java s_java 文本编辑器_java_src_javasrc_jdk src

    虽然任何能编辑纯文本的编辑器都可以打开.java文件,但专业开发通常会使用具有语法高亮、自动完成、错误检查和调试功能的集成开发环境(IDE)。例如,Eclipse、IntelliJ IDEA和NetBeans都是流行的Java IDE,它们提供...

    fckeditor-java-2.6-src

    总之,"fckeditor-java-2.6-src"是开发Java应用时,集成富文本编辑功能的重要参考资料。通过阅读源代码和使用详解文档,开发者可以更好地理解和利用FCKeditor,提升应用的用户体验。对于初学者来说,这是一个很好的...

Global site tag (gtag.js) - Google Analytics