導航:首頁 > 編程語言 > java實現瀏覽器

java實現瀏覽器

發布時間:2022-05-12 09:40:31

1. java語句中怎麼實現電腦開機時自動打開瀏覽器的網站

我來梳理思路並給你講下邏輯和流程
Java想要實現電腦開機自動打開瀏覽器網站需要藉助的是開機自啟的EXE,Java自身是不可能繞開系統這一關的,Windows下的話必須要藉助注冊表一類的,實現開機自啟EXE,然後通過EXE執行打開瀏覽器訪問指定地址的網站。
思路明確後,我們需要的是一個成品的EXE
代碼上我就不過多解釋了,直接用下面的代碼
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+url);
(就是通過默認瀏覽器直接打開指定網頁)
編寫好代碼後開始減小體積,也就是刪除不使用的類以及不使用的字元集編碼
確認瘦身後依舊運行正常後,開始進行壓縮,建議是用pack200,效果賊好
然後把程序打成jar包,然後在上層目錄編寫啟動批處理
編寫完成後測試程序能否正常啟動,如果不行就檢查下是不是少類了
然後把批處理編成EXE,QBFC比較好用,如果做安裝包的話記得掛G模式,InnoSetup這里也可以耍一下
這個時候我們就獲取到了一個安裝腳本,然後我們要做的就是修改安裝腳本的代碼
在腳本中加上下面的一段
[Registry]
Root: HKLM; Subkey: "SOFTWARE/Microsoft/Windows/CurrentVersion/Run"; ValueType: string; ValueName: "程序名"; ValueData: """{app}/main.exe"" ""{app}/jre/bin"""
直接使用這個時候的安裝腳本和安裝包就可以實現了
開機自動啟動這個編寫好的EXE,然後這個EXE就自動打開默認瀏覽器並訪問指定網頁了

2. java項目,能在瀏覽器里顯示內容,通過哪一步驟實現的

讓你的訪問界面集成在線插件,可直接在瀏覽器中訪問文件,不過這樣的插件一般都是收費的。
Java是一門面向對象的編程語言,具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論。

3. 怎樣用java編寫一個WEB瀏覽器

一、HTTP協議的作用原理

WWW是以Internet作為傳輸媒介的一個應用系統,WWW網上最基本的傳輸單位是Web網頁。WWW的工作基於客戶機/伺服器計算模型,由Web 瀏覽器(客戶機)和Web伺服器(伺服器)構成,兩者之間採用超文本傳送協議(HTTP)進行通信。HTTP協議是基於TCP/IP協議之上的協議,是Web瀏覽器和Web伺服器之間的應用層協議,是通用的、無狀態的、面向對象的協議。HTTP協議的作用原理包括四個步驟:

(1) 連接:Web瀏覽器與Web伺服器建立連接,打開一個稱為socket(套接字)的虛擬文件,此文件的建立標志著連接建立成功。

(2) 請求:Web瀏覽器通過socket向Web伺服器提交請求。HTTP的請求一般是GET或POST命令(POST用於FORM參數的傳遞)。GET命令的格式為:

GET 路徑/文件名 HTTP/1.0

文件名指出所訪問的文件,HTTP/1.0指出Web瀏覽器使用的HTTP版本。

(3) 應答:Web瀏覽器提交請求後,通過HTTP協議傳送給Web伺服器。Web伺服器接到後,進行事務處理,處理結果又通過HTTP傳回給Web瀏覽器,從而在Web瀏覽器上顯示出所請求的頁面。

4. 2) 如果需要你用java編程實現一個瀏覽器軟體,你需要精通哪些技術

GUI圖形 網路編程 多線程 IO流 編碼 事件處理等

做一個簡單的瀏覽器不需要「精通」的 java swing組件默認有支持HTML解析 所以說HTML你不用管
如果你想做個沒有任何樣式和特效的瀏覽器,只要一會時間就可以完成。
難的地方主要是與CSS解析器和JS解析器的融合 CSS、JS解析的數據處理以及做出相應的顯示是最難的
只解析HTML的「瀏覽器」源碼,網上給你K來的:
package web.action;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

@SuppressWarnings("serial")
public class temp extends JFrame {
private JLabel jlAddress, jlInfo;

private JTextField jtfAddress;

private JEditorPane jtpShow;

private JPanel panel;

private JButton btnGO;

private JButton btnBack;

private JButton btnForward;

private JButton btnStop;

private JButton btnRefresh;

private URL address;

private List<String> urls = new ArrayList<String>();

private int nowURL = 0;

public static void main(String[] args) {
new temp();
}

temp() {
jlAddress = new JLabel("地址");
jlInfo = new JLabel();
jtpShow = new JEditorPane();
panel = new JPanel();
jtfAddress = new JTextField(20);
btnGO = new JButton("轉到");
this.btnBack = new JButton("後退");
this.btnForward = new JButton("前進");
this.btnRefresh = new JButton("刷新");
this.btnStop = new JButton("停止");
this.btnBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
if (nowURL <= 1) {
JOptionPane.showMessageDialog(temp.this, "已經到頭啦");
} else {
String str = urls.get(nowURL - 2);
address = new URL(str);
jtfAddress.setText(str);
nowURL--;
jtpShow.setPage(address);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
this.btnForward.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
if (nowURL == urls.size() || nowURL == 0) {
JOptionPane.showMessageDialog(temp.this, "已經到頭啦");
} else {
String str = urls.get(nowURL);
address = new URL(str);
nowURL++;
jtfAddress.setText(str);
jtpShow.setPage(address);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
this.btnRefresh.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
String str = jtfAddress.getText();
if (str == null || str.equals("")) {
JOptionPane.showMessageDialog(temp.this, "沒有什麼可刷的");
} else {
if (!str.startsWith("http://")) {
str = "http://" + str;
}
address = new URL(str);
jtpShow.setPage(address);
}

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
add(panel, BorderLayout.NORTH);
add(jtpShow, BorderLayout.CENTER);
add(jlInfo, BorderLayout.SOUTH);
panel.add(this.btnBack);
panel.add(this.btnForward);
panel.add(this.btnStop);
panel.add(this.btnRefresh);
panel.add(jlAddress);
panel.add(jtfAddress);
panel.add(btnGO);
setVisible(true);
setSize(350, 280);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnGO.addActionListener(new ShowHTMLListener());
jtpShow.setEditable(false);
jtpShow.addHyperlinkListener(new MyHyperlinkListener());
}

class ShowHTMLListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String str = jtfAddress.getText();
try {
if (!str.startsWith("http://")) {
str = "http://" + str;
}
urls.add(str);
nowURL++;
jlInfo.setText("連接中...");
address = new URL(str);
jtpShow.setPage(address);
jlInfo.setText("完成");
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}

class MyHyperlinkListener implements HyperlinkListener {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane pane = (JEditorPane) e.getSource();
try {// 主要是這里..在網頁里點擊鏈接也要加到歷史記錄裡面去..
URL url = e.getURL();
String str = url.toString();
urls.add(str);
jtfAddress.setText(str);
nowURL++;
pane.setPage(url);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}

5. 如何用JAVA 實現瀏覽器的保存網頁的功能

比較復雜,自我感覺做不了。
網頁文件包含著很多元素,比如說圖片、flash、css、js這些玩意兒,而這些玩意兒的全部好像是很多的,只能用枚舉一個一個來。如果你要做到把主頁網頁元素分類存入到不同文件夾的話,那要針對某一元素對象對其地址URL單獨打開流然後寫到文件去,這樣就要靠正則匹配了吧。比如說對圖片進行保存,那麼就要通過匹配對<img>標簽下的地址指向的文件進行單獨保存了。而且還要注意排除在<!--
-->注釋標簽中的內容,同時也有一些例外也要排除,反正麻煩著涅。。
正常來講這些文件就是通過瀏覽器對腳本的解析然後發出文件http請求的,原理和上面說的類似。至於java
api裡面有沒有現成的包可用么,俺就不知道啦,沒仔細每一個都看過哈~~

6. 如何用java編寫瀏覽器

正好我前幾天做了一個瀏覽器實例,挺容易的其實。就用到了:
1.awt&swing編界面和響應。
2.網頁顯示區域是用JEditPane來顯示的。通過在上方設置一個JTextField輸入url以後,這里獲得url,然後直接setPage到url就行了。也不是太難。
其他沒啥如果樓主要代碼的話留下郵箱。
樓主編瀏覽器大概需要以下知識:
1.javase基礎
2.http協議大致傳輸過程
3.基礎的awt&swing,以及窗口響應布局等
4.淺顯的多線程知識

7. Java中怎麼實現瀏覽器在線編輯Office文檔

大概可以通過3種方法實現
1、讓你的訪問界面集成word在線插件,可直接在瀏覽器中訪問word文件,不過這樣的插件一般都是收費的
2、將word先轉換為pdf文件,如果瀏覽器裝了pdf插件可直接預覽訪問的
3、如果也可將word先轉換為pdf文件,然後將pdf文件轉換為swf文件,然後項目中集成swf訪問插件,瀏覽器也可預覽了

8. java開發手機瀏覽器 只要最基本的功能

3.WebBrowser.java
package CH04.源程序;

/*
**網頁瀏覽器主程序
**WebBrowser.java
*/
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{

//建立工具欄用來顯示地址欄
JToolBar bar=new JToolBar ();

//建立網頁顯示界面
JTextField jurl = new JTextField (60);
JEditorPane jEditorPane1 = new JEditorPane ();
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 ("窗口還原");
Toolkit toolkit = Toolkit.getDefaultToolkit();

//建立菜單欄
JMenuBar jMenuBar1 = new JMenuBar();
//建立菜單組
JMenu fileMenu = new JMenu ("文件(F)");
//建立菜單項
JMenuItem saveAsItem = new JMenuItem ("另存為(A)...");
JMenuItem exitItem=new JMenuItem ("退出(I)");

JMenu editMenu=new JMenu ("編輯(E)");
JMenuItem backItem=new JMenuItem ("後退");
JMenuItem forwardItem=new JMenuItem ("前進");

JMenu viewMenu=new JMenu ("視圖(V)");
JMenuItem fullscreenItem=new JMenuItem ("全屏(U)");
JMenuItem sourceItem=new JMenuItem ("查看源碼(C)");
JMenuItem reloadItem=new JMenuItem ("刷新(R)");

//建立工具欄
JToolBar toolBar = new JToolBar();
//建立工具欄中的按鈕組件
JButton picSave = new JButton("另存為");
JButton picBack = new JButton("後退");
JButton picForward = new JButton("前進");
JButton picView = new JButton("查看源代碼");
JButton picExit = new JButton("退出");

JLabel label=new JLabel ("地址");
JButton button=new JButton ("轉向");

Box adress=Box.createHorizontalBox ();

//ArrayList對象,用來存放歷史地址
private ArrayList history=new ArrayList();
//整型變數,表示歷史地址的訪問順序
private int historyIndex;

/**
**構造函數
**初始化圖形用戶界面
*/
public WebBrowser(){

setTitle ("網頁瀏覽器");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//為jEditorPane1添加事件偵聽
jEditorPane1.addHyperlinkListener (this);

//為組件fileMenu設置熱鍵『F』
fileMenu.setMnemonic('F');

saveAsItem.setMnemonic ('S');
//為「另存為」組件設置快捷鍵為ctrl+s
saveAsItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK));

exitItem.setMnemonic('Q');
exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK));

//將菜單項saveAsItem加入到菜單組fileMenu中
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.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);

//在工具欄中添加按鈕組件
toolBar.add(picSave);
toolBar.addSeparator();
toolBar.add(picBack);
toolBar.add(picForward);
toolBar.addSeparator();
toolBar.add(picView);
toolBar.addSeparator();
toolBar.add(picExit);

contentPane.add (bar,BorderLayout.CENTER);
contentPane.add(toolBar,BorderLayout.NORTH);

viewMenu.add (fullscreenItem);
viewMenu.add (sourceItem);
viewMenu.addSeparator ();
viewMenu.add (reloadItem);

jMenuBar1.add (fileMenu);
jMenuBar1.add (editMenu);
jMenuBar1.add (viewMenu);

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);
jurl.addActionListener(this);
}

/**
**實現監聽器介面的actionPerformed函數
*/
public void actionPerformed(ActionEvent e) {
String url = "";
//點擊轉向按鈕
if (e.getSource() == button){
//獲得地址欄的內容
url=jurl.getText ();
//url不為「」,並且以「http://」開頭
if(url.length ()>0&&url.startsWith ("http://")){
try {
//JEditorPane組件顯示url的內容鏈接
jEditorPane1.setPage (url);
//將url的內容添加到ArrayList對象history中
history.add(url);
//historyIndex的數值設為history對象的長度-1
historyIndex=history.size()-1;
//重新布局
jEditorPane1.setEditable(false); //add by editor :)
jEditorPane1.revalidate ();
}
catch(Exception ex) {
//如果鏈接顯示失敗,則彈出選擇對話框「無法打開該搜索頁」
JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
}
//url不為「」,並且不以「http://」開頭
else if(url.length ()>0&&!url.startsWith ("http://")) {
//在url前面添加「http://」
url="http://"+url;
try {
jEditorPane1.setPage (url );
history.add(url);
historyIndex=history.size()-1;
jEditorPane1.setEditable(false); //add by editor :)
jEditorPane1.revalidate ();
}
catch(Exception ex) {
JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
}
//沒有輸入url,即url為空
else if(url.length ()==0){
JOptionPane.showMessageDialog (WebBrowser.this,"請輸入鏈接地址","網頁瀏覽器",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); //add by editor :)
jEditorPane1.revalidate ();
jurl.setMaximumSize (jurl.getPreferredSize ());
}
catch(Exception ex) {
JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網頁瀏覽器",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); //add by editor :)
jEditorPane1.revalidate ();
}
catch(Exception ex) {
JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
}
else if(url.length ()==0){
JOptionPane.showMessageDialog (WebBrowser.this,"請輸入鏈接地址","網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
}
//另存為...
else if (e.getSource() == picSave||e.getSource() == saveAsItem){
url = jurl.getText ().toString ().trim();
if(url.length ()>0&&!url.startsWith ("http://")) {
url="http://"+url;
}
if(!url.equals ("")) {
//保存文件
saveFile(url);
}
else {
JOptionPane.showMessageDialog (WebBrowser.this,"請輸入鏈接地址","網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
}
//退出
else if (e.getSource() == exitItem ||e.getSource() == picExit){
System.exit(0);
}
//後退
else if (e.getSource() == backItem ||e.getSource() == picBack){
historyIndex--;
if(historyIndex < 0)
historyIndex = 0;
url = jurl.getText();
try{
//獲得history對象中本地址之前訪問的地址
url = (String)history.get(historyIndex);
jEditorPane1.setPage(url);
jurl.setText(url.toString());
jEditorPane1.setEditable(false); //add by editor :)
jEditorPane1.revalidate ();
}
catch(Exception ex){
}
}
//前進
else if (e.getSource() == forwardItem ||e.getSource() == picForward){
historyIndex++;
if(historyIndex >= history.size())
historyIndex = history.size()-1;
url = jurl.getText();
try{
//獲得history對象中本地址之後訪問的地址
url = (String)history.get(historyIndex);
jEditorPane1.setPage(url);
jurl.setText(url.toString());
jEditorPane1.setEditable(false); //add by editor :)
jEditorPane1.revalidate ();
}
catch(Exception ex){
}
}
//全屏
else if (e.getSource() == fullscreenItem){
boolean add_button2=true;
//獲得屏幕大小
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();

Container content = window.getContentPane();
content.add (bar,"North");
content.add (scrollPane,"Center");

//button2為點擊「全屏」後的還原按鈕
if(add_button2==true) {
bar.add (button2);
}
//為button2添加事件
button2.addActionListener (new ActionListener () {
public void actionPerformed (ActionEvent evt) {
WebBrowser.this.setEnabled (true);
window.remove (bar);
window.remove (toolBar);
window.remove (scrollPane);
window.setVisible (false);

scrollPane.setPreferredSize (new Dimension (100,500));
getContentPane ().add (scrollPane,BorderLayout.SOUTH);
getContentPane ().add (bar,BorderLayout.CENTER);
getContentPane ().add (toolBar,BorderLayout.NORTH);
bar.remove (button2);
pack();
}
});
window.setSize (size);
window.setVisible (true);
}
//查看源文件
else if (e.getSource() == sourceItem ||e.getSource() == picView){
url = jurl.getText ().toString ().trim ();
if(url.length ()>0&&!url.startsWith ("http://")) {
url="http://"+url;
}
if( !url.equals ("")) {
//根據url,獲得源代碼
getHtmlSource (url);
//生成顯示源代碼的框架對象
ViewSourceFrame vsframe = new ViewSourceFrame (htmlSource);
vsframe.setBounds (0,0,800,500);
vsframe.setVisible(true);
}
else {
JOptionPane.showMessageDialog (WebBrowser.this,"請輸入鏈接地址","網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
}
//刷新
else if (e.getSource() == reloadItem){
url=jurl.getText ();
if(url.length ()>0&&url.startsWith ("http://")) {
try {
jEditorPane1.setPage (url);
jEditorPane1.setEditable(false); //add by editor :)
jEditorPane1.revalidate ();
}
catch(Exception ex) {
}
}
else if(url.length ()>0&&!url.startsWith ("http://")) {
url="http://"+url;
try {
jEditorPane1.setPage (url );
jEditorPane1.setEditable(false); //add by editor :)
jEditorPane1.revalidate ();
}
catch(Exception ex) {
}
}
}
}

/*
**保存文件
*/
void saveFile (final String url) {
final String linesep = System.getProperty ("line.separator");
chooser1.setCurrentDirectory (new File ("."));
chooser1.setDialogType (JFileChooser.SAVE_DIALOG);
chooser1.setDialogTitle ("另存為...");
if(chooser1.showSaveDialog (this) != JFileChooser.APPROVE_OPTION)
return;
this.repaint ();
Thread thread = new Thread () {
public void run () {
try {
java.net.URL source = new URL (url);
InputStream in = new BufferedInputStream (source.openStream ());
BufferedReader br=new BufferedReader (new InputStreamReader (in));
File fileName = chooser1.getSelectedFile ();
FileWriter out = new FileWriter (fileName);
BufferedWriter bw = new BufferedWriter (out);
String line;
while((line = br.readLine ()) != null) {
bw.write (line);
bw.newLine ();
}
bw.flush ();
bw.close ();
out.close ();
String dMessage = url + " 已經被保存至"+ linesep +fileName.getAbsolutePath ();
String dTitle = "另存為";
int dType = JOptionPane.INFORMATION_MESSAGE;
JOptionPane.showMessageDialog ((Component) null,dMessage,dTitle,dType);
}
catch(java.net.MalformedURLException muex) {
JOptionPane.showMessageDialog ((Component)null,muex.toString (),"網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
catch(Exception ex) {
JOptionPane.showMessageDialog ((Component) null,ex.toString (),"網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
}
};
thread.start ();
}

/*
**獲得源代碼
*/
void getHtmlSource (String url) {
String linesep,htmlLine;
linesep = System.getProperty ("line.separator");
htmlSource ="";
try {
java.net.URL source = new URL (url);
InputStream in = new BufferedInputStream (source.openStream ());
BufferedReader br = new BufferedReader ( new InputStreamReader (in));
while((htmlLine = br.readLine ())!=null) {
htmlSource = htmlSource +htmlLine+linesep;
}
}
catch(java.net.MalformedURLException muex) {
JOptionPane.showMessageDialog (WebBrowser.this,muex.toString (),"網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
catch(Exception e) {
JOptionPane.showMessageDialog (WebBrowser.this,e.toString (),"網頁瀏覽器",JOptionPane.ERROR_MESSAGE);
}
}

/**
**實現監聽器介面的hyperlinkUpdate函數
*/
public void hyperlinkUpdate (HyperlinkEvent e) {
/* if(e.getEventType () == HyperlinkEvent.EventType.ACTIVATED) {
String url = jurl.getText();
if(url.length ()>0&&url.startsWith ("http://")) {
try {
jEditorPane1.setPage (url);
jEditorPane1.revalidate ();
}
catch(Exception ex) {
}
}
else if(url.length ()>0&&!url.startsWith ("http://")) {
url="http://"+url;
try {
jEditorPane1.setPage (url );
jEditorPane1.revalidate ();
}
catch(Exception ex) {
}
}
}
*/
// Revised by editor :) Now with new code to help hyperlink
try {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
jEditorPane1.setPage(e.getURL());
} catch (Exception ex) {
ex.printStackTrace(System.err);
}
}

/*生成一個IE對象*/
public static void main (String [] args){
try{
UIManager.setLookAndFeel(
UIManager.()
);
}
catch(Exception e){
}

WebBrowser webBrowser = new WebBrowser ();
webBrowser.pack();
webBrowser.setVisible(true);
}
}

9. 如何實現在java程序中實現打開 某個指定瀏覽器

packagecom.test;

importjava.lang.reflect.Method;

//實現打開瀏覽器並跳到指定網址的類
{
publicstaticvoidopenURL(Stringurl){
try{
browse(url);
}catch(Exceptione){
}
}

privatestaticvoidbrowse(Stringurl)throwsException{
//獲取操作系統的名字
StringosName=System.getProperty("os.name","");
if(osName.startsWith("MacOS")){
//蘋果的打開方式
ClassfileMgr=Class.forName("com.apple.eio.FileManager");
MethodopenURL=fileMgr.getDeclaredMethod("openURL",newClass[]{String.class});
openURL.invoke(null,newObject[]{url});
}elseif(osName.startsWith("Windows")){
//windows的打開方式。
Runtime.getRuntime().exec("rundll32url.dll,FileProtocolHandler"+url);
}else{
//UnixorLinux的打開方式
String[]browsers={"firefox","opera","konqueror","epiphany","mozilla","netscape"};
Stringbrowser=null;
for(intcount=0;count<browsers.length&&browser==null;count++)
//執行代碼,在brower有值後跳出,
//這里是如果進程創建成功了,==0是表示正常結束。
if(Runtime.getRuntime().exec(newString[]{"which",browsers[count]}).waitFor()==0)
browser=browsers[count];
if(browser==null)
thrownewException("Couldnotfindwebbrowser");
else
//這個值在上面已經成功的得到了一個進程。
Runtime.getRuntime().exec(newString[]{browser,url});
}
}
}

//主方法測試類
publicstaticvoidmain(String[]args){
//這里填寫你的網址
Stringurl="xxx";
BareBonesBrowserLaunch.openURL(url);
}

10. 用JAVA編寫一個簡單的瀏覽器程序

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.event.*;
@SuppressWarnings("serial")
class Win3 extends JFrame implements ActionListener,Runnable
{
JButton button;
URL url;
JTextField text;
JEditorPane editPane;
byte b[]=new byte[118];
Thread thread;
public Win3()
{
text=new JTextField(20);
editPane=new JEditorPane();
editPane.setEditable(false);
button=new JButton("確定");
button.addActionListener(this);
thread=new Thread(this);
JPanel p=new JPanel();
p.add(new JLabel("輸入網址:"));
p.add(text);
p.add(button);
Container con=getContentPane();
con.add(new JScrollPane(editPane),BorderLayout.CENTER);
con.add(p,BorderLayout.NORTH);
setBounds(60,60,400,300);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
editPane.addHyperlinkListener(new HyperlinkListener()
{
public void hyperlinkUpdate(HyperlinkEvent e)
{
if(e.getEventType()==
HyperlinkEvent.EventType.ACTIVATED)
{
try{
editPane.setPage(e.getURL());
}
catch(IOException e1)
{
editPane.setText(""+e1);
}
}
}
}
);
}
public void actionPerformed(ActionEvent e)
{
if(!(thread.isAlive()))
thread=new Thread(this);
try{
thread.start();
}
catch(Exception ee)
{
text.setText("我正在讀取"+url);
}
}
public void run()
{
try {
int n=-1;
editPane.setText(null);
url=new URL(text.getText().trim());
editPane.setPage(url);
}
catch(MalformedURLException e1)
{
text.setText(""+e1);
return;
}
catch(IOException e1)
{
text.setText(""+e1);
return;
}
}
}
public class Example3
{
public static void main(String args[])
{
new Win3();
}
}

閱讀全文

與java實現瀏覽器相關的資料

熱點內容
手機號碼如何加密 瀏覽:424
沈陽程序員培訓學校 瀏覽:538
一般伺服器如何配置 瀏覽:895
圖片怎樣加密發郵件 瀏覽:619
萬虹電腦文件夾密碼忘記了怎麼辦 瀏覽:631
rc108單片機 瀏覽:867
戰雷如何改變伺服器 瀏覽:674
mactelnet命令 瀏覽:51
壓縮袋壓縮了拿出來 瀏覽:401
安卓手機相機怎麼設置許可權 瀏覽:121
美女程序員轉行做主播 瀏覽:671
辦理解壓房產 瀏覽:575
道路工程概論pdf 瀏覽:388
超棒數學速演算法大全 瀏覽:937
小米易語言登錄源碼 瀏覽:31
磚牆內加密鋼筋 瀏覽:992
鄉關何處pdf 瀏覽:84
小豬領贊小程序源碼 瀏覽:336
python曲線如何原路返回 瀏覽:431
pdf快速看圖破解版 瀏覽:294