`
lysvanilla
  • 浏览: 78776 次
  • 性别: 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源码包---java 源码 大量 实例

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

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

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

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

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

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

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

    新版Android开发教程.rar

    程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...

    java源码包4

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

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

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

    java源码包3

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

    java源码包2

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

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

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

    Java2游戏编程.pdf

    中文名: Java2游戏编程 ...附录C 使用JNI创建一个gamepad阅读器 附录D 使用.JAR文件来部署Java applet 附录E 正确运行Java 2 applet 附录F Magic游戏引擎源码清单 附录G 更多的资源 附录H 配书光盘中有些什么

    正则表达式经典实例中文版 (美)高瓦特斯

    《正则表达式经典实例》提供了100多个实例,以帮助读者使用正则表达式处理数据和文本。即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,《正则表达式经典实例》对于如何使用正则表达式来解决...

    Java2核心技术.part5

    Java2核心技术第I卷.基础知识 目录: 译者序 前言 第1章Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1简单性 1.2.2面向对象 1.2. 3分布式 1. 2.4健壮性 1. 2.5安仝...

Global site tag (gtag.js) - Google Analytics