用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编写出来能用吗大哥。


怎么编写一个简单Java应用程序,输出自己的姓名和学号?
下面是一个java 小程序实现的\\x0d\\x0aimport java.awt.*;\/\/引入包\\x0d\\x0aimport java.applet.Applet;\/\/引入包\\x0d\\x0apublic class Output extends Applet\/\/定义类\\x0d\\x0a{\\x0d\\x0a \/\/定义变量\\x0d\\x0a private String name;\\x0d\\x0a private int num;\\x0d\\x0a \/\/...

编写一个简单Java类Student类。 2. 编写一个简单Java类Student类?_百度...
public class Student { \/\/ 1)包含两个属性sno(学号)和age(年龄),属性全部封装。private String sno;private int age;\/\/ ① 提供一个两参构造方法对属性赋值,另外提供一个无参构造方法。public Student(String sno, int age) { this.sno = sno;this.age = age;} public Student() { }...

用java编写一个简单的加减乘除运算,例如输入为4+ 3输出为4+ 3=7...
package image;import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;public class JS{public static void main ( String[] args ) throws FileNotFoundException{...

用JAVA编写一个简单的计算器,要求如下:
package Computer;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Stack;import javax.swing.JApplet;import javax.swing.JButton...

一个简单的JAVA程序编写
{ public static void main(String[] args){ String sName[]= new String[]{"c","b","a","d","e"};\/\/输出上面的三行 for(int i = 2; i >= 0; i--){ for(int j = 0; j < i ; j++){ System.out.print(" ");} for(int n = 0; n < 5 - 2 * i; n++){ S...

用JAVA编个简单的记事本程序
import java.io.*;import java.util.Calendar;import java.util.Date;import javax.swing.*;class Editor extends Frame implements ActionListener,ItemListener{ \/\/ Date date=new Date(); int n1;String str="";int k=0;String st1,st2; JTextArea ta=new JTextArea(50,50); Dialog dialog,dialog1; ...

编写java application程序实现一个简易计算器
5.编写javaapplication程序实现一个简易计算器,包括两个输入文本框、一个结果输出框和四个运算符(加、减、乘、除)按钮,以及清空辅助按钮。要求能正确响应窗口关闭事件。... 5. 编写java application程序实现一个简易计算器,包括两个输入文本框、一个结果输出框和四个运算符(加、减、乘、除)按钮,以及清空辅助按...

用java编写一个简单例子,题目如下
System.out.println("两人一样大");} public String getName() { return name;} public void setName(String name) { this.name = name;} public String getId() { return id;} public void setId(String id) { this.id = id;} public String getClazz() { return clazz;} public void...

编写JAVA程序实现一个简单的日历(高分求高手)(追加分)
编写JAVA程序实现一个简单的日历(高分求高手)(追加分) 主要功能包括显示当月的日历表,当日特殊显示。一定要用JAVA语言写。谢谢了eryaruoshui@126.com... 主要功能包括显示当月的日历表 ,当日特殊显示。 一定要用JAVA语言写。谢谢了eryaruoshui@126.com 展开  我来答 ...

JAVA制作一个简单的计算器。能实现两个数的加、减、乘、除四则运算...
import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.applet.*;public class Demo03 extends JApplet implements ActionListener {boolean i = true;private JButton num0 = new JButton("0");private JButton num1 = new JButton("1");private ...

莱城区14796102240: 怎样用Java制作一个简单浏览器 -
康希保儿: java制作浏览器的话,可以考虑使用android来制作一个,简单实现加载网页资源等等.

莱城区14796102240: 怎样用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 ...

莱城区14796102240: 如何用java做简易浏览器 跪求源码
康希保儿: 一个很简单的 你把下面第一段 保存在记事本里,改名为 time.html 第一段 &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3....

莱城区14796102240: 用java做一个简易浏览器 -
康希保儿: 地址栏如果有变化就不正常了,因为在你的代码中并没有执行更改地址栏的语句:combol.setselectedindex() 或 combol.setselecteditem(); 用 jeditorpane 做一个类似浏览器显示的网页效果很难看.有很多css,javascript无法正常解析.如果一个网页中只含有 这样的,还好些.网页做的越漂亮(因为要做的漂亮就要用到css样式),显示出来越难看.

莱城区14796102240: 用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 ...

莱城区14796102240: java 编写一个字符浏览器 -
康希保儿: import java.util.scanner; //引入scanner类该类封装了接收用户输入参数的一些操作 写方法体 public static void main(string[] arg) { scanner input=new scanner(system.in); //定义一个从系统缓存读取数据的对偶 string str=scanner.next(); //从缓存中读出数据 system.out.println(str); }

莱城区14796102240: 用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....

莱城区14796102240: 如何用java编写浏览器 -
康希保儿: 正好我前几天做了一个浏览器实例,挺容易的其实.就用到了: 1.awt&swing编界面和响应. 2.网页显示区域是用JEditPane来显示的.通过在上方设置一个JTextField输入url以后,这里获得url,然后直接setPage到url就行了.也不是太难. 其他没啥如果楼主要代码的话留下邮箱. 楼主编浏览器大概需要以下知识: 1.javase基础 2.http协议大致传输过程 3.基础的awt&swing,以及窗口响应布局等 4.浅显的多线程知识

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

莱城区14796102240: 如何用JAVA创建一个窗口来显示网页 -
康希保儿: 类似浏览器? 可以用java里面的jeidtorpanel来显示,但是他只支持html3.2及以前版本,支持一小部分css,不支持js.所以可以用它做简单的html浏览器. 如果要做类似浏览器的效果,用JDIC这个jar包,可以调用电脑上的ie内核实现,很简单

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网