亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? webbrowser.java

?? 網絡瀏覽器,能實現基本的瀏覽功能,可以作為初學者
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/**
 * @(#)WebBrowser.java
 *
 *
 * @author 
 * @version 1.00 2007/4/28
 */
 import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.event.MouseListener;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileView;
import java.io.*;
import java.net.*;
import java.util.*;

public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{
        
    /**
     * Creates a new instance of <code>WebBrowser</code>.
     */
    //.......
    


    
    //......... 
     
   //建立主件
   
   JToolBar bar =new JToolBar();//工具欄
   
   
   JTextField jurl=new JTextField(60);//地址欄
   JTextField jurlSource=new JTextField(60);//地址欄
   JEditorPane2 jEditorPane1=new JEditorPane2();//網頁框
   JScrollPane scrollPane=new JScrollPane(jEditorPane1);//滾動條
   JFileChooser chooser=new JFileChooser();
   JFileChooser chooser1=new JFileChooser();//選擇文件
   String htmlSource;
   JWindow window=new JWindow(WebBrowser.this);//使用指定的所有者框架創建窗口
   
   JButton button2=new JButton("go back");
   Toolkit toolkit=Toolkit.getDefaultToolkit();//獲取默認工具包
   
   JMenuBar jMenuBar1=new JMenuBar();//建立菜單欄
   
   JMenu fileMenu=new JMenu("File(F)");//建立菜單組
   JMenuItem saveAsItem=new JMenuItem("save As(S)");
   JMenuItem exitItem=new JMenuItem("exit(E)");
   
   JMenu bookMarkMenu=new JMenu("bookMark(B)");//建立菜單組
   JMenuItem saveBookMarkItem=new JMenuItem("save bookmark(K)");
   
   JMenu editMenu=new JMenu("Edit(E)");//建立菜單組
   JMenuItem backItem=new JMenuItem("Back(Z)");
   JMenuItem forwardItem=new JMenuItem("Forward(P)");
   
   JMenu viewMenu=new JMenu("View(V)");//建立菜單組
   JMenuItem fullscreenItem=new JMenuItem("fullscreen(U)");
   JMenuItem sourceItem=new JMenuItem("source(C)");
   JMenuItem reloadItem=new JMenuItem("reload(R)");
   
   JToolBar toolBar=new JToolBar();
   JButton picSave=new JButton("save as");
   JButton picBack=new JButton("back");
   JButton picForward=new JButton("forward");
   JButton picView=new JButton("source");
   JButton picExit=new JButton("exit");
   //建立工具欄
   
   
   JLabel label=new JLabel("Adress");
   JButton button=new JButton("GO");
   
   JLabel labelSource=new JLabel("View Source");
   JButton buttonSource=new JButton("View");
   
   Box adress=Box.createHorizontalBox();  //創建一個從左到右顯示其組件
   Box adressSource=Box.createHorizontalBox();
   private ArrayList history=new ArrayList();
   private int historyIndex;
   
   
   
   
   
    public WebBrowser() {
    	
    	
    	setTitle("network by liujia");
    	setResizable(false);//設置此 frame 是否可由用戶調整大小
    	
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    	jEditorPane1.addHyperlinkListener(this);//事件監聽
    	
    	
    	bookMarkMenu.setMnemonic('B');
    	saveBookMarkItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K,InputEvent.CTRL_MASK));
    	fileMenu.setMnemonic('F');
    	saveAsItem.setMnemonic('S');
   	    saveAsItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
    	exitItem.setMnemonic('P');
    	exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
    	//設置熱鍵
    	
    	fileMenu.add(saveAsItem);
    	fileMenu.addSeparator();
    	fileMenu.add(exitItem);
    	
    	backItem.setMnemonic('B');
    	backItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
    	forwardItem.setMnemonic('D');
    	forwardItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
    	editMenu.setMnemonic('E');
    	editMenu.add(backItem);
    	editMenu.addSeparator();
    	editMenu.add(forwardItem);
    	
    	viewMenu.setMnemonic('V');
    	fullscreenItem.setMnemonic('U');
    	fullscreenItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
    	sourceItem.setMnemonic('C');
    	sourceItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
    	reloadItem.setMnemonic('R');
    	reloadItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
    	
    	Container contentPane=getContentPane();
    	scrollPane.setPreferredSize(new Dimension(100,500));
    	contentPane.add(scrollPane,BorderLayout.SOUTH);
    	
    	adressSource.add(labelSource);
    	adressSource.add(jurlSource);
    	adressSource.add(buttonSource);
    	
    	
    	toolBar.add(picSave);
    	toolBar.addSeparator();
    	toolBar.add(picBack);
    	toolBar.addSeparator();
    	toolBar.add(picForward);
    	toolBar.addSeparator();
    	toolBar.add(picView);
    	toolBar.addSeparator();
    	toolBar.add(picExit);
    	toolBar.addSeparator();
    	toolBar.add(picExit);
    	toolBar.addSeparator();
    	
    	toolBar.add(adressSource);
    	
    	contentPane.add(bar,BorderLayout.CENTER);
    	contentPane.add(toolBar,BorderLayout.NORTH);
    	
    	viewMenu.add(fullscreenItem);
    	viewMenu.addSeparator();
    	viewMenu.add(sourceItem);
    	viewMenu.addSeparator();
    	viewMenu.add(reloadItem);
    	
    	bookMarkMenu.add(saveBookMarkItem);
    	
    	
    	jMenuBar1.add(fileMenu);
    	jMenuBar1.add(editMenu);
    	jMenuBar1.add(viewMenu);
    	jMenuBar1.add(bookMarkMenu);
    	
    	setJMenuBar(jMenuBar1);
    	
    	adress.add(label);
    	adress.add(jurl);
    	adress.add(button);
    	bar.add(adress);
    	
    	
    	saveAsItem.addActionListener(this);
    	picSave.addActionListener(this);
    	exitItem.addActionListener(this);
    	picExit.addActionListener(this);
    	backItem.addActionListener(this);
    	picBack.addActionListener(this);
    	forwardItem.addActionListener(this);
    	picForward.addActionListener(this);
    	fullscreenItem.addActionListener(this);
    
    	sourceItem.addActionListener(this);
    	picView.addActionListener(this);
    	reloadItem.addActionListener(this);
    	button.addActionListener(this);
    	buttonSource.addActionListener(this);
    	jurl.addActionListener(this);
    	jurlSource.addActionListener(this);	
    	saveBookMarkItem.addActionListener(this);
    	
  	
    	
    	
    }
   //.................. 
    
    //.....
    
    	public void actionPerformed(ActionEvent e)
    	{
    	
    	String url="";
    	if(e.getSource()==button){	//按down.................................................
    		url=jurl.getText();
    		if(url.length()>0&&url.startsWith("http://")){
    			try{
    				jEditorPane1.setPage(url);
    				history.add(url);
    				historyIndex=history.size()-1;// 返回此列表中的元素數
    				jEditorPane1.setEditable(false);
    				jEditorPane1.revalidate();
    				}
    				catch(Exception ex){
    					JOptionPane.showMessageDialog(WebBrowser.this,"don't open the search page","network",JOptionPane.ERROR_MESSAGE);
    					}
    			}
    			else if(url.length()>0&&!url.startsWith("http://")){
    				url="http://"+url;
    				try{
    					jEditorPane1.setPage(url);
    			    	history.add(url);
    			    	historyIndex=history.size()-1;// 返回此列表中的元素數
    			    	jEditorPane1.setEditable(false);
    			    	jEditorPane1.revalidate();
    					}
    				 	catch(Exception ex){
    					JOptionPane.showMessageDialog(WebBrowser.this,"don't open the search page","network by liujia",JOptionPane.ERROR_MESSAGE);
    					}	
    				}
    		     else if(url.length()==0){
    		     	  JOptionPane.showMessageDialog(WebBrowser.this,"don't open the search page","network by liujia",JOptionPane.ERROR_MESSAGE);
    					
    		     	}
    		}
    		//............按回車
    		else if(e.getSource()==jurl){
    			   url=jurl.getText();
    			   
    			   if(url.length()>0&&url.startsWith("http://")){
    			try{
    				jEditorPane1.setPage(url);
    				history.add(url);
    				historyIndex=history.size()-1;// 返回此列表中的元素數
    				jEditorPane1.setEditable(false);
    				jEditorPane1.revalidate();
    				jurl.setMaximumSize(jurl.getPreferredSize());
    				}
    				catch(Exception ex){
    					JOptionPane.showMessageDialog(WebBrowser.this,"don't open the search page","network by liujia",JOptionPane.ERROR_MESSAGE);
    					}
    		    	}
    		    	
    		   	else if(url.length()>0&&!url.startsWith("http://")){
    				url="http://"+url;
    				try{
    					jEditorPane1.setPage(url);
    			    	history.add(url);
    			    	historyIndex=history.size()-1;// 返回此列表中的元素數
    			    	jEditorPane1.setEditable(false);
    			    	jEditorPane1.revalidate();
    					}
    				 	catch(Exception ex){
    					JOptionPane.showMessageDialog(WebBrowser.this,"don't open the search page","network by liujia",JOptionPane.ERROR_MESSAGE);
    					}	
    				}
    			    else if(url.length()==0){
    		     	  JOptionPane.showMessageDialog(WebBrowser.this,"don't open the search page","network by liujia",JOptionPane.ERROR_MESSAGE);
    					
    		     	}
    			
    			
    			}
    			
    			//..................................另存為
    			
    	  else if(e.getSource()==picSave||e.getSource()==saveAsItem){
    	  	   url=jurl.getText().trim();//去掉字符串頭和尾的空格
    	  	   if(url.length()>0&&!url.startsWith("http://")){
    	  	   	 url="http://"+url;
    	  	   
    	  	   	}
    	  	   	if(!url.equals("")){
    	  	   		 saveFile(url);
    	  	   		}
    	  	   		else{
    	  	   			 JOptionPane.showMessageDialog(WebBrowser.this,"please input url's adress","network by lijia",JOptionPane.ERROR_MESSAGE);
    		 	
    	  	   			}
    	  	}	
    			
    	//exit...
    	else if(e.getSource()==exitItem||e.getSource()==picExit){
    		System.exit(0);
    		}
    		
    	//back.
    	else if(e.getSource()==backItem||e.getSource()==picBack){
    		
    		 historyIndex--;
    		 if(historyIndex<0)
    		 	historyIndex=0;
    		 	url=jurl.getText();
    		 	try{
    		 		url=(String)history.get(historyIndex);
    		 		jEditorPane1.setPage(url);
    		 		jurl.setText(url.toString());
    		 		jEditorPane1.setEditable(false);
    		 		jEditorPane1.revalidate();
    		 		/**
    		 		 *public void revalidate()支持推遲的自動布局。 
調用 invalidate 并將此組件的 validateRoot 添加到需要驗證的組件列表中。調度完當前所有未完成的事件后進行驗證。換句話說,調用此方法后,將驗證瀏覽此組件的包含層次結構時找到的第一個 validateRoot(如果有)。默認情況下,JRootPane、JScrollPane 和 JTextField 從 isValidateRoot 返回 true。 

當屬性值更改,從而影響此組件的大小、位置或內部布局時,就對此組件自動調用此方法。這種自動更新不同于 AWT,因為通常來說,程序不再需要調用 validate 來獲得要更新的 GUI 的內容。

    		 		 *
    		 		 **/
    		 		}
    		 catch(Exception ex){
    		 	
    		 	}
    		}
    		
    		//forworad.....	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩在线a电影| 国产精品美女久久久久aⅴ国产馆| 亚洲丝袜另类动漫二区| 岛国一区二区在线观看| 国产精品情趣视频| 99精品欧美一区二区蜜桃免费| 欧美国产精品中文字幕| 91在线视频免费观看| 亚洲精品成人a在线观看| 欧美午夜一区二区三区免费大片| 亚洲影院在线观看| 欧美一区二区福利在线| 极品少妇一区二区三区精品视频 | 丝袜a∨在线一区二区三区不卡| 色欧美片视频在线观看在线视频| 亚洲综合色噜噜狠狠| 欧美男人的天堂一二区| 麻豆91小视频| 国产精品久久久久久亚洲伦| 日本高清不卡一区| 日韩av电影天堂| 亚洲精品一区二区三区福利 | 99久精品国产| 一区二区三区成人| 日韩一区二区三区三四区视频在线观看| 久久机这里只有精品| 亚洲欧洲精品一区二区三区| 精品视频全国免费看| 九九久久精品视频| 亚洲欧美日韩成人高清在线一区| 欧美日韩大陆在线| 国产成人福利片| 一区二区三区四区不卡视频| 日韩精品一区二区三区视频在线观看| 成人综合在线观看| 亚洲精品欧美综合四区| 国精品**一区二区三区在线蜜桃| bt欧美亚洲午夜电影天堂| 7878成人国产在线观看| 国产校园另类小说区| 国产精品自产自拍| 欧美日韩免费高清一区色橹橹 | 欧美性视频一区二区三区| 日韩理论片中文av| 色婷婷亚洲精品| 秋霞成人午夜伦在线观看| 日韩午夜小视频| 一区二区三区在线免费播放| 国产成人精品亚洲午夜麻豆| 日韩三级伦理片妻子的秘密按摩| 亚洲成人一二三| 91网站在线播放| 亚洲欧美影音先锋| 国产成人欧美日韩在线电影| 国产日产欧美一区| 美女高潮久久久| 日韩一区二区视频在线观看| 日韩精品一区二| 亚洲成人自拍一区| 99re8在线精品视频免费播放| 久久综合久久鬼色中文字| 热久久久久久久| 日韩欧美一级二级| 综合亚洲深深色噜噜狠狠网站| 一本一道波多野结衣一区二区| 亚洲欧美另类久久久精品2019| av一区二区三区四区| 日日欢夜夜爽一区| 中文字幕在线视频一区| 在线亚洲高清视频| 国产精品资源在线| 日韩电影在线观看一区| 久久久精品黄色| 欧美综合亚洲图片综合区| 亚洲午夜免费视频| 成人激情免费视频| 亚洲国产精品黑人久久久 | 亚洲成a人v欧美综合天堂下载| 国产成人一级电影| 久久福利资源站| 捆绑紧缚一区二区三区视频| 亚洲超碰97人人做人人爱| 亚洲乱码国产乱码精品精的特点 | 成人综合在线观看| www.欧美日韩| 91免费国产视频网站| 97精品超碰一区二区三区| 99国产精品久久久久| 91丨九色丨国产丨porny| 91欧美一区二区| 色av成人天堂桃色av| 在线成人av影院| 日韩精品一区二区三区在线 | 秋霞国产午夜精品免费视频| 蜜臀av一区二区| 日韩国产精品久久久久久亚洲| 亚洲精品一二三| 亚洲天堂免费看| 亚洲国产欧美日韩另类综合| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲天堂久久久久久久| 综合亚洲深深色噜噜狠狠网站| 欧美日韩欧美一区二区| 欧美videofree性高清杂交| 日韩欧美一区二区三区在线| 欧美一级黄色片| 日韩免费成人网| 久久久精品免费免费| 国产亚洲一区二区三区四区| 国产精品―色哟哟| 亚洲天堂2014| 亚洲图片一区二区| 五月综合激情婷婷六月色窝| 三级欧美在线一区| 免费成人结看片| 国模套图日韩精品一区二区| 国产成人精品亚洲午夜麻豆| 99国产精品久久久久| 欧美午夜寂寞影院| 日韩欧美一二三四区| 亚洲国产岛国毛片在线| 性做久久久久久免费观看| 久久国产三级精品| 成人一级片在线观看| 91理论电影在线观看| 欧美日韩亚洲综合在线 | 91蝌蚪porny| 欧美精品乱码久久久久久| 日韩欧美成人午夜| 欧美精品tushy高清| 中文字幕精品三区| 亚洲美女视频一区| 美脚の诱脚舐め脚责91| 国产福利91精品一区| 欧美日韩一区高清| 久久精品视频免费观看| 亚洲免费在线观看视频| 另类的小说在线视频另类成人小视频在线| 日韩激情一二三区| 91视频国产资源| xf在线a精品一区二区视频网站| 中文乱码免费一区二区| 午夜电影一区二区| caoporen国产精品视频| 在线不卡中文字幕| 一区二区国产视频| 国产成人高清视频| 91精品国产欧美一区二区| 亚洲欧洲在线观看av| 久久丁香综合五月国产三级网站| 欧美挠脚心视频网站| 中文字幕人成不卡一区| 久久99最新地址| 色爱区综合激月婷婷| 国产女同性恋一区二区| 蜜桃av一区二区三区| 欧美视频第二页| 国产精品美日韩| 国产在线精品国自产拍免费| 99久久精品国产导航| 日韩美女久久久| 国产91精品一区二区| 3d动漫精品啪啪| 亚洲综合免费观看高清完整版在线| 免费观看在线综合色| 7777女厕盗摄久久久| 一区二区三区在线视频免费 | 欧美视频三区在线播放| 欧美成人精品二区三区99精品| 视频一区在线播放| 色噜噜久久综合| 亚洲国产精品成人综合色在线婷婷 | 日韩三级视频中文字幕| 亚洲午夜av在线| 一本久久综合亚洲鲁鲁五月天| 国产女同性恋一区二区| 国产在线精品不卡| 久久久蜜桃精品| 国产一区 二区 三区一级| 精品久久久久久久久久久久久久久| 三级在线观看一区二区| 欧美日韩高清一区| 三级成人在线视频| 日韩精品一区二区在线观看| 麻豆久久久久久| 欧美一级日韩一级| 老司机精品视频导航| 欧美美女一区二区在线观看| 麻豆视频一区二区| 久久这里只精品最新地址| 国模大尺度一区二区三区| 久久久国产精华| 97精品久久久久中文字幕 | 精品国产亚洲一区二区三区在线观看| 蜜臀av一区二区| 久久久综合视频| 成人国产精品免费| 亚洲日本va在线观看| 欧美三级在线看| 亚洲欧美激情视频在线观看一区二区三区 |