《Java编程思想》读书笔记(10)

简介:
package com.vitamin.UI;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.*;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import com.vitamin.Console.*;

public class FileTest extends JFrame
{
    private JButton btnOpen = new JButton("Open");
    private JButton btnSave = new JButton("Save");
    private JPanel p = null;
    private JTextField tfDir = new JTextField();
    private JTextField tfFileName = new JTextField();
    private JScrollPane sp = new JScrollPane();
    private JEditorPane ep = new JEditorPane();
    private File file = null;
    
    public FileTest() 
    {
        super();
        // TODO Auto-generated constructor stub
        this.initForm();
    }
    
    public void initForm()
    {
        Container con = this.getContentPane();
        con.setLayout(new BorderLayout());
        this.tfDir.setEditable(false);
        this.tfFileName.setEditable(false);
        this.btnSave.setEnabled(false);
        
        this.btnOpen.addActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent e)
             {
                 JFileChooser fc = new JFileChooser();
                 fc.setFileFilter(new TextFileFilter() );
                int returnVal =  fc.showOpenDialog(FileTest.this);
                if(returnVal == JFileChooser.APPROVE_OPTION)
                {
                    file = fc.getSelectedFile();
                    try
                    {
                        ep.setPage(file.toURL());
                        tfFileName.setText(file.getAbsolutePath());
                        btnSave.setEnabled(true);
                    }
                    catch(IOException ex)
                    {
                         throw new RuntimeException(ex);
                    }
                    
                }
                else if(returnVal == JFileChooser.CANCEL_OPTION)
                {
                    tfFileName.setText("你已经取消了文件的选择");
                }
             }        
        });
        
        this.btnSave.addActionListener(new ActionListener(){
               public void actionPerformed(ActionEvent e)
               {
                     try {
                          FileWriter fw = new FileWriter(file);
                          ep.write(fw);
                          JOptionPane.showMessageDialog(FileTest.this,"保存成功");
                        } catch (IOException ioe) {
                          throw new RuntimeException(ioe);
                        }
               }
        });
        sp.getViewport().add(ep);
        
        p = new JPanel();
        p.add(this.btnOpen);
        p.add(this.btnSave);
        con.add(p,BorderLayout.SOUTH);        
        con.add(sp,BorderLayout.CENTER);
        p = new JPanel();
        p.setLayout(new GridLayout(2,1));
        p.add(this.tfDir);
        p.add(this.tfFileName);
        con.add(p,BorderLayout.NORTH);
        console.run(this,400,400);    
    }
      public class TextFileFilter extends
        javax.swing.filechooser.FileFilter {
        public boolean accept(File f) {
          return f.getName().endsWith(".txt")
            || f.isDirectory();
        }
        public String getDescription() {
          return "Text Files (*.txt)";
        }
      }
    /**
     * @param args
     */
    public static void main(String[] args) 
    {
        FileTest ft = new FileTest();

    }

}


做了个读写文件的小东西,功能很烂,有时间做个完整的记事本吧。



本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2006/06/08/420130.html,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
设计模式 敏捷开发 Java
全网首发!Java界的四大名著之一:Java编程思想最新中文版已开源
老版《Java编程思想》(原书名《Thinking in Java》)得益作者开放深度研讨的创作方式,受到了全世界读者的追捧,被译为了十几种语言。但遗憾的是,在经历了 4 个版本的更新后,其最后一版发布于 2007 年,之后再无更新。
|
6月前
|
存储 安全 Java
小白聊《JAVA编程思想》-一切都是对象(一)
小白聊《JAVA编程思想》-一切都是对象(一)
34 0
|
6月前
|
Java
Java编程思想(面向对象)第四版PDF分享
探索《Java编程思想》第四版,理解Java不仅是特性集合,更是解决问题的强大工具。本书深入设计层面,构建编程思维模型,助你逐步精通Java。[阅读更多](https://zhangfeidezhu.com/?p=355) ![Java编程思想](https://ucc.alicdn.com/pic/developer-ecology/nrw3f3oqlpmag_c8ff959a921545f1bbabcefd37f029cf.png)
66 1
Java编程思想(面向对象)第四版PDF分享
|
6月前
|
存储 Java 容器
小白聊《JAVA编程思想》-对象导论二
小白聊《JAVA编程思想》-对象导论二
32 0
|
6月前
|
存储 Java 数据安全/隐私保护
小白聊《JAVA编程思想》 对象导论一
小白聊《JAVA编程思想》 对象导论一
35 0
|
6月前
|
设计模式 安全 Java
Java编程思想重点开发必看
Java编程思想重点开发必看
32 0
|
6月前
|
设计模式 Java 程序员
《On Java 8》中文版,又名《Java 编程思想》中文第五版
《On Java 8》中文版,又名《Java 编程思想》中文第五版
245 0
|
Java C++
java 编程思想 多线程学习笔记
java 编程思想 多线程学习笔记
101 0
|
7月前
|
设计模式 Java 程序员
感动哭了!Java界的四大名著之一:Java编程思想最新中文版已开源
还记得这本书吗?是不是已经在你的桌上铺满厚厚的一层灰了?随着 Java 8 的出现,这门语言在许多地方发生了翻天覆地的变化。最新版已经出来了,在新的版本中,代码的运用和实现上与以往不尽相同。
|
Java 测试技术 API
读书笔记-Spring中更好的Java泛型操作API-ResolvableType
读书笔记-Spring中更好的Java泛型操作API-ResolvableType
88 0