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

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

?? webbrowser.java

?? 一個簡單些簡單的瀏覽器 GUI界面 有Bug但是可運行
?? JAVA
字號:
//package com.javaweb.util;

import java.awt.*;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileFilter;


/**
 * @author Administrator
 * 
 */
public class WebBrowser extends JFrame implements HyperlinkListener,
		PropertyChangeListener {

	/**
	 * 
	 */
	// 添加swing組件
	JEditorPane textPane;

	JLabel messageLine;

	JTextField urlField;

	JFileChooser fileChooser;

	JButton backButton;

	JButton forwardButton;

	//
	java.util.List history = new ArrayList();

	int currentHistoryPage = -1;

	public static final int MAX_HISTORY = 50;

	static int numBrowserWindows = 0;

	static boolean exitWhenLastWindowClosed = false;

	String home = "http://www.baidu.com";

	// gouzaohanshu
	public WebBrowser() {
		super("WebBrowser");

		textPane = new JEditorPane();
		textPane.setEditable(false);
		textPane.addPropertyChangeListener(this);
		textPane.addHyperlinkListener(this);
		this.getContentPane().add(new JScrollPane(textPane),
				BorderLayout.CENTER);
		messageLine = new JLabel("  ");
		this.getContentPane().add(messageLine, BorderLayout.SOUTH);
		this.initMenu();
		this.initToolbar();
		WebBrowser.numBrowserWindows++;
		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				// close();
			}

		});

	}

	private void initToolbar() {
		// TODO Auto-generated method stub
		backButton = new JButton("后退");
		backButton.setEnabled(false);
		backButton.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				back();

			}

		});
		forwardButton = new JButton("前進");
		forwardButton.setEnabled(false);
		forwardButton.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				forward();

			}

			private void forward() {
				// TODO Auto-generated method stub
				if (currentHistoryPage < history.size() - 1) {
					visit((URL) history.get(++currentHistoryPage));

				}
				backButton.setEnabled((currentHistoryPage > 0));
				forwardButton
						.setEnabled((currentHistoryPage < history.size() - 1));

			}

		});
		JButton refreshButton = new JButton("刷新");

		refreshButton.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				reload();

			}

			private void reload() {
				// TODO Auto-generated method stub

				// TODO Auto-generated method
				textPane.setDocument(new javax.swing.text.html.HTMLDocument());
				visit((URL) history.get(currentHistoryPage));

			}

		});
		JButton homeButton = new JButton("主頁");

		homeButton.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				home();

			}

			public void home() {
				// TODO Auto-generated method stub
				displayPage(getHome());

			}

		});
		urlField = new JTextField();
		urlField.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				displayPage(urlField.getText());

			}

		});

		JToolBar toolbar = new JToolBar();
		toolbar.setEnabled(false);
		toolbar.add(backButton);
		toolbar.add(forwardButton);
		toolbar.add(refreshButton);
		toolbar.add(homeButton);
		toolbar.add(new JLabel("              地址:"));
		toolbar.add(urlField);
		this.getContentPane().add(toolbar, BorderLayout.NORTH);

	}

	protected String getHome() {
		// TODO Auto-generated method stub
		return home;
	}

	protected void back() {
		// TODO Auto-generated method stub
		if (currentHistoryPage > 0) {
			visit((URL) history.get(--currentHistoryPage));
		}
		backButton.setEnabled((currentHistoryPage > 0));
		forwardButton.setEnabled((currentHistoryPage < history.size() - 1));

	}

	public static void setExitWhenLastWindowClosed(boolean b) {
		exitWhenLastWindowClosed = b;
	}

	public void setHome() {
		this.home = home;
	}

	public String getHone() {
		return home;
	}

	private boolean visit(URL url) {
		try {
			String herf = url.toString();
			startAnimation("加載" + herf + "...");
			textPane.setPage(url);
			this.setTitle(herf);
			urlField.setText(herf);
			return true;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			stopAnimation();
			messageLine.setText("不能打開頁面" + e.getMessage());
			return false;
		}

	}

	public void displayPage(URL url) {
		if (visit(url)) {
			history.add(url);
			int numentries = history.size();
			if (numentries > MAX_HISTORY + 10) {
				history = history.subList(numentries - MAX_HISTORY, numentries);
				numentries = MAX_HISTORY;
			}
			currentHistoryPage = numentries - 1;
			if (currentHistoryPage > 0) {
				backButton.setEnabled(true);
			}

		}
	}

	public void displayPage(String href) {
		try {
			if (!href.startsWith("http://")) {
				href = "http://" + href;

			}
			displayPage(new URL(href));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			messageLine.setText("錯誤網址:" + href);
		}

	}

	public void openLocalPage() {
		if (fileChooser == null) {
			fileChooser = new JFileChooser();
			FileFilter filter = new FileFilter() {
				public boolean accept(File f) {
					String fn = f.getName();
					if (fn.endsWith(".html") || fn.endsWith(".htm")) {
						return true;
					} else {
						return false;

					}

				}

				public String getDescription() {
					return "HTML Files";
				}

			};
			fileChooser.addChoosableFileFilter((FileFilter) filter);
		}
		int result = fileChooser.showOpenDialog(this);
		if (result == JFileChooser.APPROVE_OPTION) {
			File selectedFile = fileChooser.getSelectedFile();
			try {
				displayPage(selectedFile.toURL());
			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	private void stopAnimation() {
		// TODO Auto-generated method stub

	}

	String animationMessage;

	int animationFrame = 0;

	private void startAnimation(String msg) {
		// TODO Auto-generated method stub
		animationMessage = msg;
		animationFrame = 0;

	}

	private void initMenu() {
		// TODO Auto-generated method stub
		JMenu fileMenu = new JMenu("文件");
		fileMenu.setMnemonic('F');
		JMenuItem newMenuitem = new JMenuItem("新建");
		newMenuitem.setMnemonic('N');
		newMenuitem.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				newBrowser();

			}

			private void newBrowser() {
				// TODO Auto-generated method stub
				WebBrowser b = new WebBrowser();
				/* b.setSize(this.getWidth(),this.getHeight()); */
				b.setSize(800, 600);
				b.setVisible(true);

			}

		});
		JMenuItem openMenuitem = new JMenuItem("打開");
		openMenuitem.setMnemonic('O');
		openMenuitem.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				// openLocalPage();
			}

		});
		JMenuItem closeMenuitem = new JMenuItem("關閉窗口");
		closeMenuitem.setMnemonic('C');
		closeMenuitem.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				close();
			}

			public void close() {
				// TODO Auto-generated method stub
				// this.setVisible(false);
				// this.disPose();

			}

		});
		JMenuItem exitMenuitem = new JMenuItem("退出");
		exitMenuitem.setMnemonic('E');
		exitMenuitem.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				exit();
			}

		});
		fileMenu.add(newMenuitem);
		fileMenu.add(openMenuitem);
		fileMenu.add(closeMenuitem);
		fileMenu.add(exitMenuitem);

		JMenu helpMenu = new JMenu("幫助");
		JMenuItem aboutMenuitem = new JMenuItem("關于");
		helpMenu.setMnemonic('H');
		aboutMenuitem.setMnemonic('A');
		helpMenu.add(aboutMenuitem);

		JMenuBar menuBar = new JMenuBar();
		menuBar.add(fileMenu);
		menuBar.add(helpMenu);
		this.setJMenuBar(menuBar);

	}

	public void hyperlinkUpdate(HyperlinkEvent e) {

		HyperlinkEvent.EventType type = e.getEventType();
		if (type == HyperlinkEvent.EventType.ACTIVATED) {
			displayPage(e.getURL());
		} else if (type == HyperlinkEvent.EventType.ENTERED) {
			messageLine.setText(e.getURL().toString());
		} else if (type == HyperlinkEvent.EventType.EXITED) {
			messageLine.setText("");
		}

		// TODO Auto-generated method stub

	}

	public void exit() {
		// TODO Auto-generated method stub
		if(JOptionPane.showConfirmDialog(this, "您確定要退出瀏覽器?", "退出",
				JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
				System.exit(0);
//				JOptionPane.YES_OPTION)
			
	}

	public void propertyChange(PropertyChangeEvent arg0) {
		// TODO Auto-generated method stub

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) throws IOException {
	

		WebBrowser.setExitWhenLastWindowClosed(true);
		// 添加了窗口的位置、大小。
		WebBrowser browser = new WebBrowser();
		browser.setSize(800, 600);
		browser.setLocation(100, 100);
		browser.setVisible(true);
		browser.displayPage(browser.getHome());

	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久蜜臀国产一区二区| 日韩区在线观看| 青青草国产精品97视觉盛宴| 99精品视频在线播放观看| 国产欧美一区二区精品性| 国内精品伊人久久久久av影院| 欧美丰满一区二区免费视频| 午夜欧美大尺度福利影院在线看 | 国产一区日韩二区欧美三区| 欧美成人一级视频| 毛片av一区二区| 久久久久久久久99精品| 成人免费视频播放| 亚洲天堂2014| 成人国产精品免费观看视频| 国产日韩在线不卡| 91丨porny丨蝌蚪视频| 一区二区三区四区在线播放 | 免费观看一级欧美片| 久久青草国产手机看片福利盒子| 国产成人免费视频网站高清观看视频| 久久久噜噜噜久久中文字幕色伊伊| 国产成人精品影视| 中文字幕亚洲在| 日韩精品一区在线观看| 不卡视频在线看| 美女在线视频一区| 亚洲另类色综合网站| 精品久久久久久亚洲综合网| 成人动漫一区二区| 久久不见久久见免费视频1| 国产精品成人网| 亚洲sss视频在线视频| 色婷婷综合久久久中文字幕| 久久国产剧场电影| 亚洲国产视频一区| 一区在线观看免费| 国产精品色一区二区三区| 日韩免费观看高清完整版在线观看| 色悠悠久久综合| av资源网一区| 成人动漫一区二区| 成人网在线播放| 国产精品一区三区| 久久国产尿小便嘘嘘| 日韩av成人高清| 香蕉成人啪国产精品视频综合网 | 日韩视频在线观看一区二区| 欧美精三区欧美精三区| 欧美日韩1区2区| 91麻豆精品国产91久久久 | 午夜久久福利影院| 午夜精品福利视频网站| 亚洲gay无套男同| 蜜臀av一区二区| 极品美女销魂一区二区三区免费 | 成人综合在线视频| av在线不卡电影| 在线观看日韩国产| 日韩一区国产二区欧美三区| 日韩欧美成人一区二区| 欧美国产丝袜视频| 亚洲午夜私人影院| 国产在线不卡一区| 色婷婷精品久久二区二区蜜臂av | 成人免费视频app| 日本黄色一区二区| 日韩欧美高清一区| 亚洲女同一区二区| 美女尤物国产一区| 91在线小视频| 26uuu久久综合| 亚洲伊人色欲综合网| 国产精品538一区二区在线| 色天天综合色天天久久| 精品电影一区二区| 亚洲第一综合色| 91在线观看一区二区| 欧美一区二区三区日韩视频| 国产欧美日韩在线| 美女性感视频久久| 欧美又粗又大又爽| 国产精品午夜久久| 国产一区二区三区国产| 91精品国产欧美一区二区成人| 国产精品国产精品国产专区不蜜| 免费不卡在线观看| 欧美日韩你懂得| 亚洲欧美日韩国产另类专区| 夫妻av一区二区| 久久久久综合网| 国产一区二区三区免费看 | 亚洲成人精品一区| 91黄色免费观看| 亚洲一区在线观看网站| 99re热这里只有精品视频| 国产精品视频免费| 丁香激情综合国产| 最新欧美精品一区二区三区| av欧美精品.com| 亚洲激情六月丁香| 91国产免费观看| 视频一区二区三区在线| 日韩午夜激情视频| 丁香啪啪综合成人亚洲小说 | 久久久久久久电影| 懂色av一区二区在线播放| 1024精品合集| 欧美一级免费大片| 成人综合婷婷国产精品久久免费| 亚洲欧洲国产日韩| 欧美日韩免费观看一区二区三区 | 91在线免费播放| 五月天激情综合| 国产三级精品在线| 欧美日韩国产一区二区三区地区| 免费成人美女在线观看.| 国产欧美日韩综合| 欧美日韩1区2区| 99久久99久久综合| 久久99国产精品尤物| 亚洲人成7777| 国产三级一区二区| 91麻豆精品久久久久蜜臀| 国产一区二区不卡| 日韩制服丝袜av| 亚洲精品久久久久久国产精华液| 久久精品视频一区| 日韩午夜av电影| 欧美午夜电影网| 99精品国产视频| 成人免费黄色大片| 国产原创一区二区| 老司机午夜精品99久久| 亚洲超碰97人人做人人爱| 亚洲乱码中文字幕| 综合在线观看色| 国产精品美女久久久久久| 久久久美女毛片| 欧美成人一区二区三区| 欧美一卡二卡在线观看| 在线电影欧美成精品| 欧美日本一区二区在线观看| 在线免费观看不卡av| 色综合天天综合网国产成人综合天 | 91亚洲精品久久久蜜桃网站| 成人污视频在线观看| av电影天堂一区二区在线| 丁香激情综合五月| 99免费精品在线| 欧美视频日韩视频| 日韩欧美综合一区| 欧美精品一区二区三区很污很色的 | 九色综合狠狠综合久久| 国产精品一区二区三区乱码| 丁香六月久久综合狠狠色| 国产一区二区三区最好精华液| 日韩一区二区三区四区| 97se亚洲国产综合自在线| 欧洲精品一区二区| 日韩欧美精品在线视频| 国产三级精品视频| 亚洲gay无套男同| 看电视剧不卡顿的网站| 波多野结衣欧美| 欧美日韩精品一区二区三区蜜桃| 日韩午夜精品视频| 国产精品久久久久天堂| 日产精品久久久久久久性色| 狠狠网亚洲精品| 欧美日本在线观看| 亚洲国产成人在线| 日本最新不卡在线| 成人av影视在线观看| 欧美va亚洲va| 日韩 欧美一区二区三区| 91丨九色丨蝌蚪富婆spa| 久久一二三国产| 蜜臀99久久精品久久久久久软件| 色狠狠色狠狠综合| 国产精品毛片久久久久久 | 国产精品入口麻豆九色| 蜜臀va亚洲va欧美va天堂 | 日日嗨av一区二区三区四区| 国产精品综合二区| 日韩一区二区高清| 亚洲高清免费一级二级三级| 色猫猫国产区一区二在线视频| 中文av一区二区| 成人污污视频在线观看| 国产精品美女久久久久久久久 | 91麻豆精品国产| 丝袜亚洲另类欧美| 欧美日韩极品在线观看一区| 亚洲一二三区在线观看| 欧美日韩视频在线一区二区| 亚洲成人7777| 欧美一区二区三区色| 国产真实乱对白精彩久久| 久久久国产午夜精品|