随笔 - 303  文章 - 883  trackbacks - 0
<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

欢迎光临! 
闲聊 QQ:1074961813

随笔分类(357)

我管理的群

公共blog

  • n维空间
  • Email : java3d@126.com 群 : 12999758

参与管理的论坛

好友的blog

我的其他blog

朋友的网站

搜索

  •  

最新评论

DOS下编译可能会出问题,可以用命令 [ javac -Xlint:unchecked WebReader.java ],

如果不想出错请用eclipse进行编译。至于什么原因,下个文章解释;


对浏览器感兴趣的朋友,这是firefox各个版本的程序和源代码下载FTP地址

ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/ 



代码:

  1
  2//     WebReader.java   
  3  //   This   program   uses   a   JEditorPane   to   display   the   
  4  //   contents   of   a   file   on   a   Web   server.   
  5    
  6  //   Java   core   packages   
  7  import   java.awt.*;   
  8  import   java.awt.event.*;   
  9  import   java.net.*;   
 10  import   java.io.*;   
 11  import   java.util.*;   
 12    
 13  //   Java   extension   packages   
 14  import   javax.swing.*;   
 15  import   javax.swing.event.*;   
 16    
 17  public   class   WebReader   extends   JFrame   {   
 18  private   JTextField   enterField;   
 19  private   JEditorPane   contentsArea;   
 20  private   JButton   backButton,fwdButton;   
 21  private   JPanel   contralPanel;   
 22  private   URLList   urllist;   
 23        //   set   up   GUI   
 24        public   WebReader()   
 25        {   
 26              super(   "My   Web   Browser"   );   
 27    
 28    
 29              JMenu   fileMenu   =   new   JMenu("File");//set   up   File   menu   ane   its   menu   item   
 30              fileMenu.setMnemonic('F');   
 31    
 32              JMenuItem   exitItem   =   new   JMenuItem("Exit");   
 33              exitItem.setMnemonic('X');   
 34              exitItem.addActionListener(   
 35              new   ActionListener(){   
 36              public   void   actionPerformed(ActionEvent   event){   
 37              System.exit(0);   
 38              }
   
 39              }
   
 40              );   
 41              fileMenu.add(   exitItem   );   
 42    
 43              JMenuBar   bar   =   new   JMenuBar();   
 44              setJMenuBar(   bar   );   
 45              bar.add(   fileMenu   );   
 46    
 47              JMenu   editMenu   =   new   JMenu("Edit");   
 48              editMenu.setMnemonic('E');   
 49    
 50              JMenuItem   nextItem   =   new   JMenuItem(   "Next"   );   
 51              nextItem.setMnemonic(   'N'   );   
 52              nextItem.addActionListener(   
 53              new   ActionListener(){   
 54              public   void   actionPerformed(ActionEvent   event){   
 55              System.exit(0);   
 56              }
   
 57              }
   
 58              );   
 59              editMenu.add(   nextItem   );   
 60              bar.add(   editMenu   );   
 61    
 62              Container   container   =   getContentPane();   
 63    
 64              FlowLayout   lay=new   FlowLayout();   
 65              lay.setAlignment(   FlowLayout.LEFT   );   
 66    
 67              contralPanel   =   new   JPanel();   
 68              contralPanel.setLayout(   lay   );   
 69    
 70              urllist   =   new   URLList();   
 71    
 72              Icon   back   =   new   ImageIcon(   "back.gif"   );   
 73              backButton   =   new   JButton(   "back",back   );   
 74              backButton.addActionListener(   
 75              new   ActionListener()   
 76              {   
 77              public   void   actionPerformed(   ActionEvent   event   )   
 78                          {   
 79                          String   strback=new   String(   urllist.back()   );   
 80                          System.out.println(   strback   );   
 81                          if(   !strback.equals(   "Noop"   )   )   
 82                          getThePage(   strback   );   
 83                            
 84                          }
   
 85                  }
   
 86              );   
 87      contralPanel.add(   backButton   );   
 88    
 89              Icon   fwd   =   new   ImageIcon(   "fwd.gif"   );   
 90              fwdButton   =   new   JButton(   "fwd",fwd   );   
 91              fwdButton.addActionListener(   
 92              new   ActionListener()   
 93              {   
 94              public   void   actionPerformed(   ActionEvent   event   )   
 95                          {   
 96                          String   strfwd=new   String(   urllist.forward()   );   
 97                          System.out.println(   strfwd   );   
 98                          if(   !strfwd.equals(   "Noop"   )   )   
 99                          getThePage(   strfwd   );   
100                            
101                          }
   
102                  }
   
103              );   
104              contralPanel.add(   fwdButton   );   
105    
106              //   create   enterField   and   register   its   listener   
107              enterField   =   new   JTextField(   "Enter   file   URL   here",24   );   
108    
109              enterField.addActionListener(   
110    
111                    new   ActionListener()   {   
112    
113                          //   get   document   specified   by   user   
114                          public   void   actionPerformed(   ActionEvent   event   )   
115                          {   
116                          urllist.push(   event.getActionCommand()   );   
117                          getThePage(   event.getActionCommand()   );   
118                          }
   
119    
120                    }
     //   end   anonymous   inner   class   
121    
122              );   //   end   call   to   addActionListener   
123    
124              enterField.addMouseListener(   
125              new   MouseListener(){   
126              public   void   mouseClicked(   MouseEvent   e   )   
127              {   
128              enterField.selectAll();   
129              }
   
130    
131              public   void   mousePressed(   MouseEvent   e   )   
132              {   
133              }
   
134    
135              public   void   mouseReleased(   MouseEvent   e   )   
136              {   
137              }
   
138              public   void   mouseEntered(   MouseEvent   e   )   
139              {   
140              }
   
141                
142                
143              public   void   mouseExited(   MouseEvent   e   )   
144              {   
145              }
   
146              }
   
147              );   
148    
149              contralPanel.add(   enterField   );   
150    
151              container.add(   contralPanel,   BorderLayout.NORTH   );   
152              //   create   contentsArea   and   register   HyperlinkEvent   listener   
153              contentsArea   =   new   JEditorPane();   
154              contentsArea.setEditable(   false   );   
155    
156              contentsArea.addHyperlinkListener(   
157    
158                    new   HyperlinkListener()   {   
159    
160                          //   if   user   clicked   hyperlink,   go   to   specified   page   
161                          public   void   hyperlinkUpdate(   HyperlinkEvent   event   )   
162                          {   
163                                if   (   event.getEventType()   ==   
164                                          HyperlinkEvent.EventType.ACTIVATED   )   
165                                          {   
166                                          urllist.push(   event.getURL().toString()   );   
167                                          getThePage(   event.getURL().toString()   );   
168                                          }
   
169                          }
   
170    
171                    }
     //   end   anonymous   inner   class   
172    
173              );   //   end   call   to   addHyperlinkListener   
174    
175              container.add(     new   JScrollPane(   contentsArea   )   ,   
176                    BorderLayout.CENTER   );   
177    
178              setSize(   1000,   700   );   
179              setVisible(   true   );   
180        }
   
181    
182        //   load   document;   change   mouse   cursor   to   indicate   status   
183        private   void   getThePage(   String   location   )   
184        {   
185              //   change   mouse   cursor   to   WAIT_CURSOR   
186              setCursor(   Cursor.getPredefinedCursor(   
187                    Cursor.WAIT_CURSOR   )   );   
188    
189              if(!location.startsWith(   "http://"   ))   
190              location="http://"   +   location;   
191    
192              //   load   document   into   contentsArea   and   display   location   in   
193              //   enterField   
194              try   {   
195                    contentsArea.setPage(   location   );   
196                    enterField.setText(   location   );   
197              }
   
198    
199              //   process   problems   loading   document   
200              catch   (   IOException   ioException   )   {   
201                    JOptionPane.showMessageDialog(   this,   
202                          "Error   retrieving   specified   URL",   
203                          "Bad   URL",   JOptionPane.ERROR_MESSAGE   );   
204              }
   
205    
206              setCursor(   Cursor.getPredefinedCursor(   
207                    Cursor.DEFAULT_CURSOR   )   );   
208        }
   
209    
210        //   begin   application   execution   
211        public   static   void   main(   String   args[]   )   
212        {   
213              WebReader   application   =   new   WebReader();   
214    
215              application.setDefaultCloseOperation(   
216                    JFrame.EXIT_ON_CLOSE   );   
217    
218        }
   
219    
220  }
     //   end   class   WebReader   
221  class   URLList   
222  {   
223  private   int   now   =   0;   
224  private   Vector   vector;   
225    
226  URLList()   
227  {   
228  vector   =   new   Vector(   1   );   
229  }
   
230  public   void   push(String   url)   
231  {   
232  vector.add(url);   
233  now   =   vector.size()-1;   
234  }
   
235    
236  public   String   back()   
237  {   
238  System.out.println(   "back     "   +   now   );   
239  if(   now   ==   0   )   
240  return(   "Noop"   );   
241  else   
242  {   
243  now--;   
244  System.out.println(   "back----"   +   now   );   
245  return(   (String)vector.get(   now   ));   
246  }
   
247  }
   
248    
249  public   String   forward()   
250  {   
251  System.out.println(   "fwd"   +   now   +   vector.size()   );   
252  if(   (   vector.size()   ==   0   )   ||   (   now   ==   (   vector.size()-1   )   )   )   
253  return(   "Noop"   );   
254  else   
255  {   
256  now++;   
257  System.out.println(   "fwd+++"   +   now   );   
258  return(   (String)vector.get(   now   ));   
259  }
   
260  }
   
261  public   int   getnow()   
262  {   
263  return   now;   
264  }
   
265  }
 


地震让大伙知道:居安思危,才是生存之道。
posted on 2007-03-09 08:22 小寻 阅读(773) 评论(0)  编辑  收藏 所属分类: j2se/j2ee/j2me

只有注册用户登录后才能发表评论。


网站导航: