Java记事本及网页源代码浏览器

  1 /*******************************************
  2 *
  3 *    文本编辑器及网页源代码浏览器
  4 *
  5 *    Author: Jintao
  6 *   E-mail:[email protected]
  7 *   Blog  :www.zhaojintao.cn
  8 *
  9 ********************************************/
 10 import java.awt.BorderLayout;
 11 import java.awt.Container;
 12 import java.awt.FileDialog;
 13 import java.awt.Frame;
 14 import java.awt.Panel;
 15 import java.awt.event.ActionEvent;
 16 import java.awt.event.ActionListener;
 17 import java.awt.event.InputEvent;
 18 import java.awt.event.KeyEvent;
 19 import java.io.BufferedReader;
 20 import java.io.DataOutputStream;
 21 import java.io.FileInputStream;
 22 import java.io.FileOutputStream;
 23 import java.io.IOException;
 24 import java.io.InputStream;
 25 import java.io.InputStreamReader;
 26 import java.io.Reader;
 27 import java.io.UnsupportedEncodingException;
 28 import java.net.MalformedURLException;
 29 import java.net.URL;
 30 import java.nio.CharBuffer;
 31 import java.sql.Savepoint;
 32
 33 import javax.swing.JButton;
 34 import javax.swing.JFrame;
 35 import javax.swing.JMenu;
 36 import javax.swing.JMenuBar;
 37 import javax.swing.JMenuItem;
 38 import javax.swing.JPanel;
 39 import javax.swing.JScrollPane;
 40 import javax.swing.JTextArea;
 41 import javax.swing.JTextField;
 42 import javax.swing.KeyStroke;
 43
 44
 45 public class Note extends JFrame{
 46     JMenuBar menub=new JMenuBar();
 47     JTextArea text=new JTextArea();
 48     JTextField urlText=new JTextField();
 49     JMenu files=new JMenu("文件");
 50     JMenu net=new JMenu("网络");
 51     //JMenu help=new JMenu("帮助");
 52     JMenuItem newfile=new JMenuItem("新建");
 53     JMenuItem open=new JMenuItem("打开");
 54     JMenuItem save=new JMenuItem("保存");
 55     JMenuItem saveas=new JMenuItem("另存为");
 56     JMenuItem about=new JMenuItem("关于记事本");
 57     JMenuItem url=new JMenuItem("转到");
 58     String name;
 59     JFrame th=this;
 60     String openedPath=null;
 61     boolean opened=false;
 62     boolean reworked=false;
 63
 64     //初始化窗体
 65     Note(String name){
 66         super(name);
 67         this.name=name;
 68         setSize(600, 400);
 69     }
 70     //初始化
 71     void init()
 72     {
 73         newfile.setMnemonic(‘N‘);
 74         open.setMnemonic(‘O‘);
 75         save.setMnemonic(‘S‘);
 76         saveas.setMnemonic(‘A‘);
 77         url.setMnemonic(‘\r‘);
 78         //添加助记符
 79
 80         newfile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
 81         open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
 82         save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
 83         saveas.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
 84         url.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,InputEvent.CTRL_MASK));
 85         //为控件添加快捷键
 86
 87
 88         files.add(newfile);
 89         files.add(open);
 90         files.add(save);
 91         files.add(saveas);
 92         //help.add(about);
 93         net.add(url);
 94         menub.add(files);
 95         menub.add(net);
 96         setJMenuBar(menub);
 97
 98         Container p=getContentPane();
 99         p.setLayout(new BorderLayout());
100         p.add(urlText,BorderLayout.NORTH);
101         p.add(new JScrollPane(text),BorderLayout.CENTER);
102
103         Listen listen=new Listen();
104         newfile.addActionListener(listen);
105         open.addActionListener(listen);
106         save.addActionListener(listen);
107         saveas.addActionListener(listen);
108         url.addActionListener(listen);
109         urlText.addActionListener(listen);
110
111     }
112     class Listen implements ActionListener
113     {
114
115         public void actionPerformed(ActionEvent e){
116             // TODO Auto-generated method stub
117             Object source=e.getSource();
118             if (source==newfile) {
119                 text.setText("");
120                 th.setTitle(name);
121                 openedPath=null;
122                 opened=false;
123             }else if (source==url||source==urlText){
124                 System.out.println("url");
125                 String ut= "http://"+urlText.getText();
126                 try {
127                         URL url=new URL(ut);
128                         InputStream is= url.openStream();
129                         InputStreamReader isr = new InputStreamReader(is,"utf-8");
130                         BufferedReader br=new BufferedReader(isr);
131                         String data=br.readLine();
132                         text.setText("");
133                         while(data!=null)
134                         {
135                             String t=text.getText();
136                             t+="\r\n";
137                             text.setText(t+data);
138                             data=br.readLine();
139                         }
140                         text.setCaretPosition(0);
141                         //System.out.println(content);
142                 } catch (MalformedURLException e1) {
143                     // TODO Auto-generated catch block
144                     e1.printStackTrace();
145                 } catch (IOException e1) {
146                     // TODO Auto-generated catch block
147                     e1.printStackTrace();
148                 }
149             }else if (source==open) {
150                 FileDialog openFile=new FileDialog(th, "打开文件..", FileDialog.LOAD);
151                 openFile.setVisible(true);
152                 String filePath=openFile.getDirectory()+openFile.getFile();
153                 try {
154                     InputStreamReader inr =new InputStreamReader(new FileInputStream(filePath),"utf-8");
155                     FileInputStream fis=new FileInputStream(filePath);
156                     char[] content=new char[fis.available()];
157                     inr.read(content);
158                     //fis.read(content);
159                     text.setText(new String(content));
160                     text.setCaretPosition(0);
161                     if(openFile.getTitle()!=null)
162                     {
163                         th.setTitle(openFile.getFile()+name);
164                         openedPath=filePath;
165                         opened=true;
166                     }
167                     fis.close();
168                     inr.close();
169                 } catch (Exception e2) {
170                     // TODO: handle exception
171                     e2.printStackTrace();
172                 }
173
174
175             }else if (source==save || source==saveas)
176             {
177                 String savePath=openedPath;
178                 if (savePath==null||source==saveas) {
179                     FileDialog saveFile=new FileDialog(th,"保存文件...",FileDialog.SAVE);
180                     saveFile.setVisible(true);
181                     savePath=saveFile.getDirectory()+saveFile.getFile();
182                     System.out.println(saveFile.getTitle());
183                 }
184                 try {
185                     DataOutputStream dos = new DataOutputStream(new FileOutputStream(savePath));
186                     //FileOutputStream fos=new FileOutputStream(savePath);
187                     //fos.write(text.getText().getBytes());
188                     //fos.close();
189                     dos.write(text.getText().getBytes("utf-8"));
190                     dos.close();
191                 } catch (Exception e2) {
192                     // TODO: handle exception
193                     e2.printStackTrace();
194                 }
195                 if(source==save)
196                 {
197                     openedPath=savePath;
198                 }
199             }
200
201         }
202
203     }
204     /**
205      * @param args
206      */
207     public static void main(String[] args) {
208         // TODO Auto-generated method stub
209         String name="--涛哥牌记事本--V0.01--";
210         Note note=new Note(name);
211         note.init();
212         note.setVisible(true);
213     }
214
215 }
时间: 2024-08-21 09:23:24

Java记事本及网页源代码浏览器的相关文章

Java 读取网页源代码

package com.sphere.service; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class QueryService { /** * 发起http get请

Java 网络爬虫获取网页源代码原理及实现

Java 网络爬虫获取网页源代码原理及实现 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件. 2.那么程序获取网页的原理到底是怎么回事呢?看下面的图:客服端首先向服务器端发出Http请求,之后服务器端返回相应的结果或者请求超时客户端自己报错. 服务器端发出的Http请求,实际上说是对服务器的文件的请求

Java 推荐读物与源代码阅读

1. Java语言基础     谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它.该书的作者Bruce Eckel在网络上被称为天才的投机者,作者的<Thinking in C++>在1995年曾获SoftwareDevelopment Jolt Award最佳书籍大奖,<Thinking in Java>被评为1999年Jav

php输出网页源代码莫名奇妙的多了一堆方框,导致ajax验证失败.

今天在用一个ajax验证用户名的功能,返回值报错,抓包看了下,多出来一堆点,源代码里显示方框和6个空行 这堆东西导致ajax判断返回值会错误,度娘了一下午(皇天不负游戏人啊),原来是一个坑爹的BOM头文件. 解决方法就是 输出前用ob_clean()函数,清除; 切记不要用记事本打开utf8编码的php文件.容易出现这种问题 下面是度娘的解释. BOM -- Byte Order Mark,中文名译作"字节顺序标记".在这里找到一段关于 BOM 的说明: 在UCS 编码中有一个叫做 &

android应用开发_网络部分2——采用HttpURLConnection获取获取网页源代码

本文是android应用开发_网络部分1——采用HttpURLConnection获取网络图片的延续练习. 接下来,我们再来一个查看网页源代码的工程来加深了解. 布局上还是一个竖直排列的线性布局,一个edittext用于输入html路径,一个button,用于点击获取,一个textview用于显示. main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:and

java兑现html网页的gzip解压

java实现html网页的gzip解压 在对网页抓包中发现,返回的很多网页是经过压缩的,比如访问谷歌首页,返回的头文件中包含Content-Encoding gzip 使用gzip可以省下很多网页流量,在网速一定的情况下,可以提高访问效率,我们用java访问时如何可以得到gzip的返回,并且我们如何解析返回的gzip呢? 我们以访问http://www.baidu.com/为例我们用URL的openStream方法直接访问时并不返回gzip压缩数据,这是因为时候返回gzip需要判断浏览器是否支持

Java抓取网页数据(原网页+Javascript返回数据)

转载请注明出处! 原文链接:http://blog.csdn.net/zgyulongfei/article/details/7909006 有时候因为种种原因,我们须要採集某个站点的数据,但因为不同站点对数据的显示方式略有不同! 本文就用Java给大家演示怎样抓取站点的数据:(1)抓取原网页数据:(2)抓取网页Javascript返回的数据. 一.抓取原网页. 这个样例我们准备从http://ip.chinaz.com上抓取ip查询的结果: 第一步:打开这个网页,然后输入IP:111.142.

分享JAVA用户权限管理框架源代码JAVA权限管理java源代码框架代码,学习有帮助

JAVA用户权限管理框架源代码JAVA权限管理java源代码框架代码,用户功能权限控制到菜单以及菜单的操作按钮 MyEclipse+JDK1.6+apache-tomcat-6.0.14+SQL2005/2008/2012 是一套非常成熟的框架程序,可直接用于大型系统.基础框架快速开发,及程序员学习. .兼容 IE6,7,8,9 /Firefox /Google Chrome 这些浏览器都测试过 支持3级菜单导航. 框架包括用户管理.菜单管理.角色管理.权限管理.日志管理等功能. 内容包括源代码

如何让网页在浏览器标题栏显示自己制作的图标ico

第一步,制作一个尺寸16x16大小的PNG图片,可以用photoshop等图片处理工具来设计,然后保存到本地电脑上,通过ico在线制作或使用IconWorkshop工具制作ICO图标,ico图标命名为:favicon.ico 第二步,把favicon.ico文件上传到网站的根目录上,并在网页源代码<head></head>之间加上:<link rel="shortcut icon" href="favicon.ico" > 第三步