⑴ 怎樣用Java制作一個簡單瀏覽器解決方法
創(chuàng)新互聯(lián)是一家專注網站建設、網絡營銷策劃、小程序定制開發(fā)、電子商務建設、網絡推廣、移動互聯(lián)開發(fā)、研究、服務為一體的技術型公司。公司成立十年以來,已經為上1000+柴油發(fā)電機各業(yè)的企業(yè)公司提供互聯(lián)網服務?,F(xiàn)在,服務的上1000+客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.*;
importjava.io.*;
importjavax.swing.event.*;
@SuppressWarnings("serial")
,Runnable
{
JButtonbutton;
URLurl;
JTextFieldtext;
JEditorPaneeditPane;
byteb[]=newbyte[118];
Threadthread;
publicWin3()
{
text=newJTextField(20);
editPane=newJEditorPane();
editPane.setEditable(false);
button=newJButton("確定");
button.addActionListener(this);
thread=newThread(this);
JPanelp=newJPanel();
p.add(newJLabel("輸入網址:"));
p.add(text);
p.add(button);
Containercon=getContentPane();
con.add(newJScrollPane(editPane),BorderLayout.CENTER);
con.add(p,BorderLayout.NORTH);
setBounds(60,60,400,300);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
editPane.addHyperlinkListener(newHyperlinkListener()
{
publicvoidhyperlinkUpdate(HyperlinkEvente)
{
if(e.getEventType()==
HyperlinkEvent.EventType.ACTIVATED)
{
try{
editPane.setPage(e.getURL());
}
catch(IOExceptione1)
{
editPane.setText(""+e1);
}
}
}
}
);
}
publicvoidactionPerformed(ActionEvente)
{
if(!(thread.isAlive()))
thread=newThread(this);
try{
thread.start();
}
catch(Exceptionee)
{
text.setText("我正在讀取"+url);
}
}
publicvoidrun()
{
try{
intn=-1;
editPane.setText(null);
url=newURL(text.getText().trim());
editPane.setPage(url);
}
catch(MalformedURLExceptione1)
{
text.setText(""+e1);
return;
}
catch(IOExceptione1)
{
text.setText(""+e1);
return;
}
}
}
publicclassExample3
{
publicstaticvoidmain(Stringargs[])
{
newWin3();
}
}
⑵ 關于用java自己做一款瀏覽器。其具體的設計思路是什么,該怎么考慮,從哪方面入手。流程是什么。
你還是先出入門的程序練起吧。。。。
你提到的每一個部件都是一個比較沉重的課題。
⑶ 用java編寫簡易瀏覽器
地址欄如果有變化就不正常了,因為在你的代碼中并沒有執(zhí)行更改地址欄的語句內:
bol.setSelectedIndex() 或 bol.setSelectedItem();
用 JEditorPane 做一容個類似瀏覽器顯示的網頁效果很難看。
有很多css,javascript無法正常解析。
如果一個網頁中只含有 div table 這樣的,還好些。
網頁做的越漂亮(因為要做的漂亮就要用到css樣式),顯示出來越難看。
⑷ 用java編寫一個圖片瀏覽器
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class ImageGallery extends JFrame implements ActionListener {
public static final int G_WIDTH = 400, G_HEIGHT = 620;
public static final int L_WIDTH = 1200, L_HEIGHT = 520;
public static final int MAX_R = 3, MAX_C = 2;
public static final int GRID = 1, LARGE = 2;
private JFileChooser chooser;
private JMenuBar toolBar;
private JMenu menu;
private JMenuItem open;
private ArrayListString paths;
private JPanel showingPanel, buttonPanel;
private int page = 1;
private int count = 0;
private int showType = GRID;
private int pageMax;
private JButton last, next, large, grid;
public ImageGallery() {
.setTitle("Image gallery 0.1");
this.setBounds(100, 100, G_WIDTH, G_HEIGHT);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
toolBar = new JMenuBar();
chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
menu = new JMenu("File");
toolBar.add(menu);
open = new JMenuItem("open");
open.addActionListener(this);
menu.add(open);
paths = new ArrayListString();
this.setJMenuBar(toolBar);
showingPanel = new JPanel();
buttonPanel = new JPanel();
last = new JButton("last");
last.addActionListener(this);
next = new JButton("next");
next.addActionListener(this);
large = new JButton("large");
large.addActionListener(this);
grid = new JButton("grid");
grid.addActionListener(this);
buttonPanel.add(last);
buttonPanel.add(large);
buttonPanel.add(grid);
buttonPanel.add(next);
this.add(buttonPanel, BorderLayout.SOUTH);
this.add(showingPanel);
this.setVisible(true);
}
public void doOpen() {
int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
String directory = chooser.getSelectedFile().getPath();
this.getAllImage(directory);
for (String s : this.paths) {
System.out.println(s);
}
this.showingImage();
}
}
public void getAllImage(String directory) {
paths.clear();
page = 1;
count = 0;
File file = new File(directory);
if (file.isDirectory()) {
String[] list = file.list();
for (String s : list) {
String path = directory + "\\" + s;
File temp = new File(path);
if (!temp.isDirectory()) {
this.paths.add(path);
}
}
}
}
public void changePage(int page) {
if (!paths.isEmpty()) {
switch (showType) {
case GRID:
this.page += page;
if (this.page == 0) {
this.page = 1;
}
if (this.page pageMax) {
this.page = pageMax;
}
break;
case LARGE:
this.count += page;
if (count 0) {
count = 0;
}
if (count paths.size() - 1) {
count = paths.size() - 1;
}
break;
}
this.showingImage();
}
}
public void showingImage() {
this.remove(showingPanel);
showingPanel = new JPanel();
int size = paths.size();
int max = MAX_R * MAX_C;
pageMax = (size % max == 0 ? size / max : size / max + 1);
switch (showType) {
case GRID:
this.setBounds(100, 100, G_WIDTH, G_HEIGHT);
showingPanel.setLayout(new GridLayout(MAX_R, MAX_C - 1));
int i = (page - 1) * max;
int j = page * max;
for (; i j i size; i++) {
String path = paths.get(i);
showingPanel.add(new ImagePanel(path));
}
break;
case LARGE:
int left = count - 1;
int right = count + 1;
this.setBounds(100, 100, L_WIDTH, L_HEIGHT);
showingPanel.setLayout(new GridLayout(1, 2));
if (left = 0) {
showingPanel.add(new ImagePanel(paths.get(left)));
} else {
showingPanel.add(new ImagePanel(""));
}
showingPanel.add(new ImagePanel(paths.get(count)));
if (right size) {
showingPanel.add(new ImagePanel(paths.get(right)));
} else {
showingPanel.add(new ImagePanel(""));
}
break;
}
this.add(showingPanel, BorderLayout.CENTER);
showingPanel.updateUI();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new ImageGallery();
}
class ImagePanel extends JPanel {
private ImageIcon image;
ImagePanel(String path) {
image = new ImageIcon(path);
}
public ImageIcon getImageIcon() {
return this.image;
}
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
g.drawImage(image.getImage(), 0, 0, this.getWidth(), this
.getHeight(), this);
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String key = e.getActionCommand();
System.out.println(key);
if (key.equals("open")) {
doOpen();
} else if (key.endsWith("last")) {
changePage(-1);
} else if (key.endsWith("next")) {
changePage(1);
} else if (key.endsWith("large")) {
if (!paths.isEmpty()) {
count =0;
showType = LARGE;
showingImage();
}
} else if (key.endsWith("grid")) {
if (!paths.isEmpty()) {
page = 1;
showType = GRID;
showingImage();
}
}
}
}
⑸ JAVA編寫瀏覽器
可以看下這個專屬
//blog.csdn/LJLOVELZ/archive/2007/05/04/1596205.aspx
⑹ 用java編寫一個瀏覽器
import java.awt.*;
import java.awt.event.*;
import java.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.DefaultStyledDocument;
//HTTP連接與瀏覽
public class HTTPBrowser extends JFrame{
JTextField jtfAddress; //輸入文件地址或網址
JTextPane jtpShow; //顯示頁面
JTextArea jtaSource; //顯示HTML源文件
public HTTPBrowser(){
super("HTTP連接與瀏覽"); //調用父類構造函數
jtfAddress=new JTextField(30); //實例化地址輸入框
jtpShow=new JTextPane(); //實例化顯示內容框
jtaSource=new JTextArea();
JPanel p1=new JPanel(); //實例化面板
JSplitPane spane=new JSplitPane(JSplitPane.VERTICAL_SPLIT); //實例化分隔面板
p1.add(new JLabel("地址")); //增加組件到面板上
p1.add(jtfAddress);
spane.add(new JScrollPane(jtpShow),JSplitPane.TOP);
spane.add(new JScrollPane(jtaSource),JSplitPane.BOTTOM);
spane.setDividerLocation(130); //設置分隔位置
spane.setDividerSize(2); //設置分隔欄尺寸
Container container=getContentPane(); //得到容器
container.add(p1,BorderLayout.NORTH); //增加組件到容器上
container.add(spane,BorderLayout.CENTER);
jtfAddress.addActionListener(new ShowHTMLListener()); //輸入地址文本域事件處理
setSize(380,300); //設置窗口尺寸
setVisible(true); //設置窗口可視
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序
}
class ShowHTMLListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
try{
URL address=new URL(jtfAddress.getText()); //得到HTML頁面的URL地址
jtpShow.setContentType("text/"); //設置內容格式
jtpShow.setPage(address); //設置顯示頁面
BufferedReader in= new BufferedReader(new InputStreamReader(address.openStream())); //獲取輸入流
String line;
StringBuffer content = new StringBuffer(); //文件內容
while ((line = in.readLine()) != null) { //讀取文件
content.append(line+"\n");
}
jtaSource.setText(new String(content)); //設置顯示文本
in.close(); //關閉輸入流
}
catch (Exception ex){
ex.printStackTrace(); //輸出出錯信息
}
}
}
public static void main(String[] args){
new HTTPBrowser();
}
}
這還有一個
import java.awt.*;
import java.awt.event.*;
import java.URL;
import javax.swing.*;
//瀏覽器
public class HTTPBrowserDemo extends JFrame{
JTextField jtfAddress; //輸入文件地址或網址
JButton jbGo; //轉到文件按鈕
JTextPane jtpShow; //顯示文件
JLabel jlInfo; //提示信息
public HTTPBrowserDemo(){
super("瀏覽器"); //調用父類構造函數
jtfAddress=new JTextField(20); //實例化地址輸入框
jbGo=new JButton("轉到"); //實例化轉向按鈕
jtpShow=new JTextPane(); //實例化顯示內容框
jlInfo=new JLabel(); //實例化信息提示標簽
JPanel panel=new JPanel(); //實例化面板
panel.add(new JLabel("地址")); //增加組件到面板上
panel.add(jtfAddress);
panel.add(jbGo);
JScrollPane jsp=new JScrollPane(jtpShow); //實例化滾動窗體
Container container=getContentPane(); //得到容器
container.add(panel,BorderLayout.NORTH); //增加組件到容器上
container.add(jsp,BorderLayout.CENTER);
container.add(jlInfo,BorderLayout.SOUTH);
jbGo.addActionListener(new ShowHTMLListener()); //事件處理,發(fā)生按鈕點擊時顯示頁面內容
jtfAddress.addActionListener(new ShowHTMLListener());
setSize(350,280); //設置窗口尺寸
setVisible(true); //設置窗口可視
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序
}
class ShowHTMLListener implements ActionListener { //顯示頁面內容事件處理
public void actionPerformed(ActionEvent event) {
try{
jlInfo.setText("正在連接..."); //顯示提示信息
URL address=new URL(jtfAddress.getText()); //得到HTML頁面的URL地址
jtpShow.setPage(address); //設置顯示頁面
jlInfo.setText("完成");
}
catch (Exception ex){
jlInfo.setText("連接出錯");
ex.printStackTrace(); //輸出出錯信息
}
}
}
public static void main(String[] args){
new HTTPBrowserDemo();
}
}
⑺ 用Java代碼怎么在瀏覽器中顯示一個網頁
package .test;
import java.lang.reflect.Method;
//實現(xiàn)打開瀏覽器并跳到指定網址的類
public class BareBonesBrowserLaunch {
public static void openURL(String url) {
try {
browse(url);
} catch (Exception e) {
}
}
private static void browse(String url) throws Exception {
//獲取操作系統(tǒng)的名字
String osName = System.getProperty("os.name", "");
if (osName.startsWith("Mac OS")) {
//蘋果的打開方式
Class fileMgr = Class.forName(".apple.eio.FileManager");
Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] { String.class });
openURL.invoke(null, new Object[] { url });
} else if (osName.startsWith("Windows")) {
//windows的打開方式。
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
} else {
// Unix or Linux的打開方式
String[] browsers = { "firefox", "opera", "konqueror", "epiphany", "mozilla", "scape" };
String browser = null;
for (int count = 0; count browsers.length browser == null; count++)
//執(zhí)行代碼,在brower有值后跳出,
//這里是如果進程創(chuàng)建成功了,==0是表示正常結束。
if (Runtime.getRuntime().exec(new String[] { "which", browsers[count] }).waitFor() == 0)
browser = browsers[count];
if (browser == null)
throw new Exception("Could not find web browser");
else
//這個值在上面已經成功的得到了一個進程。
Runtime.getRuntime().exec(new String[] { browser, url });
}
}
}
⑻ 如何用java編寫瀏覽器
正好我前幾天做了一來個自瀏覽器實例,挺容易的其實。就用到了:
1.awtswing編界面和響應。
2.網頁顯示區(qū)域是用JEditPane來顯示的。通過在上方設置一個JTextField輸入url以后,這里獲得url,然后直接setPage到url就行了。也不是太難。
其他沒啥如果樓主要代碼的話留下郵箱。
樓主編瀏覽器大概需要以下知識:
1.javase基礎
2.協(xié)議大致傳輸過程
3.基礎的awtswing,以及窗口響應布局等
4.淺顯的多線程知識
⑼ 超簡單的web瀏覽器用java實現(xiàn)
截圖:
進入 //網頁:
訪問硬盤上的Html文件:file:盤符://文件名 (如果滿意就采納吧。。)
import java.awt.*;
import java.awt.event.*;
import java.URL;
import javax.swing.*;
public class HTTPBrowserDemo extends JFrame{
JTextField jtfAddress; //輸入文件地址或網址
JButton jbGo; //轉到文件按鈕
JTextPane jtpShow; //顯示文件
JLabel jlInfo; //提示信息
public HTTPBrowserDemo(){
super("瀏覽器"); //調用父類構造函數
jtfAddress=new JTextField(20); //實例化地址輸入框
jbGo=new JButton("轉到"); //實例化轉向按鈕
jtpShow=new JTextPane(); //實例化顯示內容框
jlInfo=new JLabel(); //實例化信息提示標簽
JPanel panel=new JPanel(); //實例化面板
panel.add(new JLabel("地址")); //增加組件到面板上
panel.add(jtfAddress);
panel.add(jbGo);
JScrollPane jsp=new JScrollPane(jtpShow); //實例化滾動窗體
Container container=getContentPane(); //得到容器
container.add(panel,BorderLayout.NORTH); //增加組件到容器上
container.add(jsp,BorderLayout.CENTER);
container.add(jlInfo,BorderLayout.SOUTH);
jbGo.addActionListener(new ShowHTMLListener()); //事件處理,發(fā)生按鈕點擊時顯示頁面內容
jtfAddress.addActionListener(new ShowHTMLListener());
setSize(350,280); //設置窗口尺寸
setVisible(true); //設置窗口可視
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序
}
class ShowHTMLListener implements ActionListener { //顯示頁面內容事件處理
public void actionPerformed(ActionEvent event) {
try{
jlInfo.setText("正在連接..."); //顯示提示信息
URL address=new URL(jtfAddress.getText()); //得到HTML頁面的URL地址
jtpShow.setPage(address); //設置顯示頁面
jlInfo.setText("完成");
}
catch (Exception ex){
jlInfo.setText("連接出錯");
ex.printStackTrace(); //輸出出錯信息
}
}
}
public static void main(String[] args){
new HTTPBrowserDemo();
}
}
⑽ 怎樣用Java制作一個簡單瀏覽器
java制作瀏覽器的話,可以考慮使用android來制作一個,簡單實現(xiàn)加載網頁資源等等。
最簡單的java代碼肯定就是這個了,如下:
public class MyFirstApp
{
public static void main(String[] args)
{
System.out.print("Hello world");
}
}
“hello world”就是應該是所有學java的新手看的第一個代碼了。如果是零基礎的新手朋友們可以來我們的java實驗班試聽,有免費的試聽課程幫助學習java必備基礎知識,有助教老師為零基礎的人提供個人學習方案,學習完成后有考評團進行專業(yè)測試,幫助測評學員是否適合繼續(xù)學習java,15天內免費幫助來報名體驗實驗班的新手快速入門java,更好的學習java!
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
public class game21 extends JFrame {
private JLabel label_2;
private int number;
private int sum;
final JLabel label = new JLabel();
final JLabel label_1 = new JLabel();
public static void main(String[] args) {
new game21();
}
public game21() {
super("21點?!");
getContentPane().setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent arg0) {
onClick();
}
});
button.setText("出牌");
button.setBounds(170, 350, 106, 28);
getContentPane().add(button);
label.setBorder(new LineBorder(Color.black, 1, false));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(new Font("", Font.BOLD, 26));
label.setText("背面");
label.setBounds(158, 81, 137, 153);
getContentPane().add(label);
label_1.setText("你已經擁有的牌:");
label_1.setBounds(109, 22, 270, 45);
getContentPane().add(label_1);
this.setBounds(200, 300, 501, 528);
this.setVisible(true);
getContentPane().add(getLabel_2());
}
public int randNumber() {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
return (int) (Math.random() * 10 + 1);
}
public void onClick() {
number = this.randNumber();
this.sum += number;
label.setText("" + number);
String strTemp = this.label_1.getText();
strTemp += "" + number + " ";
label_1.setText(strTemp);
String temp = "合計:" + sum;
label_2.setText(temp);
isWin();
}
public void isWin() {
if (sum 21) {
JOptionPane.showMessageDialog(this, "你輸了");
clear();
return;
} else if (sum == 21) {
JOptionPane.showMessageDialog(this, "你贏了");
clear();
return;
} else {
int i = JOptionPane.showOptionDialog(this, "是否繼續(xù)?", "提示",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE, null, null, null);
if (i == JOptionPane.OK_OPTION) {
onClick();
} else
return;
}
}
private void clear() {
label_2.setText("合計:");
sum = 0;
number = 0;
label_1.setText("你已經擁有的牌:");
}
/**
* @return
*/
protected JLabel getLabel_2() {
if (label_2 == null) {
label_2 = new JLabel();
label_2.setText("合計:");
label_2.setBounds(313, 35, 66, 18);
}
return label_2;
}
}
真好無聊中。。