用JAVA编写一个简单的浏览器程序

用java编写一个浏览器~

给你推荐你应该用得着的包:Apache的HttpClient组件。

web网页的主要流程就是 从请求到响应,从jsp页面的参数传递到后台的 控制层(action)再调用相应的服务层(service)进行处理,其中可能会用到数据层(dao),将处理后的结果响应给页面,或是跳转

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();
}
}

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.DefaultStyledDocument;

//HTTP连接与浏览

public class HTTPBrowser extends JFrame{
JTextField jtfAddress; //输入html文件地址或网址
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/html"); //设置内容格式
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.net.URL;
import javax.swing.*;

//html浏览器

public class HTTPBrowserDemo extends JFrame{
JTextField jtfAddress; //输入html文件地址或网址
JButton jbGo; //转到文件按钮
JTextPane jtpShow; //显示文件
JLabel jlInfo; //提示信息

public HTTPBrowserDemo(){
super("html浏览器"); //调用父类构造函数
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()); //事件处理,发生按钮点击时显示页面内容
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();
}
}

地址栏如果有变化就不正常了,因为在你的代码中并没有执行更改地址栏的语句:
combol.setSelectedIndex() 或 combol.setSelectedItem();

用 JEditorPane 做一个类似浏览器显示的网页效果很难看。
有很多css,javascript无法正常解析。
如果一个网页中只含有 <div> <table> 这样的,还好些。

网页做的越漂亮(因为要做的漂亮就要用到css样式),显示出来越难看。


用java编写出来能用吗大哥。

超简单的web浏览器用java实现
答:看看这个吧,https://github.com/xingxiant/WebBrowser

java开发一个简单的web网页的具体流程是什么?
答:web网页的主要流程就是 从请求到响应,从jsp页面的参数传递到后台的 控制层(action)再调用相应的服务层(service)进行处理,其中可能会用到数据层(dao),将处理后的结果响应给页面,或是跳转

用java编写一个图片浏览器
答: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 ...

请教java高手们,帮我写一个java编写的图片浏览器,功能如下:有自动浏 ...
答://改编的,CopyOfImageViewer.java 打开一个有图片的文件夹就可浏览了。//MP3播放相关库到:http://www.javazoom.net/javalayer/sources.html 下载 //将下载到的zip文件里的 jl1.0.1.jar 复制到 JDK目录下的 jre/lib/ext/ 目录里即可.//将 源代码 main 方法里的 playMp3("d:\\bad.mp3"...

用JAVA设计简单互联网浏览器
答:}public void changed(LocationEvent e) {}});//为浏览器注册装载网页事件browser.addProgressListener(new ProgressListener() {//当装载时,设置装载的进度,并且设置停止按钮可用public void changed(ProgressEvent e) {if (!stopButton.isEnabled() && e.total != e.current) {stopButton.setEnabled...

用JAVA编写一个简单的浏览器程序
答: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...

用Java代码怎么在浏览器中显示一个网页
答:import java.lang.reflect.Method;//实现打开浏览器并跳到指定网址的类 public class BareBonesBrowserLaunch { public static void openURL(String url) { try { browse(url);} catch (Exception e) { } } private static void browse(String url) throws Exception { //获取操作系统的名字 String...

java编程中 如何实现网页浏览???
答:在html中嵌套java程序 例如:<HTML> <TITLE>HelloWorld! Applet</TITLE> <APPLET CODE="HelloWorld.class" //此处就是你想添加的java程序 WIDTH=200 HEIGHT=100> </APPLET> </HTML> 如果还是不懂的话可以在百度百科中搜索applet ,讲解的很详细 ...

用Java编写个浏览器,输入字符串以及需要查到的字符
答:回答:Scanner input = new Scanner(System.in); System.out.print("请输入一段字符:"); String s = input.next(); System.out.println("请输入要查询的字符串:"); String a = input.next(); int index = s.indexOf(a); List ls = new ArrayList(); while (index >= 0) { ls...

帮我编写一下JAVA浏览器,急!!!
答:帮你实现了后退..前进..刷新功能哈..停止我还要再想下哦..先给你这3个功能哈..刚发现我和2楼的那个兄弟的前进和后退都有问题..实现得不彻底..改了下哈..import java.awt.*;import java.awt.event.*;import java.io.IOException;import java.net.*;import java.util.ArrayList;import java....

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网