【Java swing简易浏览器(其一)页面显示,超链接跳转与手动输入URL跳转】

【Java swing简易浏览器(其二)前进后退与收藏夹实现】

【java swing 简易浏览器(其三)下载器,智能搜索栏与邮件发送】

目录

  • 前言
  • Swing及其组件介绍
    • 什么是swing
    • JFrame
    • JPanel
    • JTextField
    • JButton
    • JEditorPane
    • JScrollPane
  • 思路
  • 各部分实现
    • html页面显示
    • 输入框与按钮
    • 绑定事件
      • 绑定超链接事件
      • 绑定按钮事件
      • 绑定输入框回车事件
  • 完整代码
  • 演示

前言

这学期互联网java课程的大作业下来了。。

挺难的但是害得做啊,要恰饭的嘛 我就是懒狗

老师说都是把学过的内容缝合一下,迫真作业拧螺丝期末造火箭Orz

关于服务器,之前已经实现过了:【Java用socket基于http协议搭建一个简易的http服务器】

难点就是这个浏览器了。。。不过好在java有提供相关的辅助包,swing,那么今天先来实现一个简单的浏览器的基本功能

  1. 显示html页面
  2. 超链接跳转
  3. 输入URL并且跳转到目标页面

Swing及其组件介绍

什么是swing

Swing是一个java的GUI工具包,这意味着它是java基础类的一部分(强大的java救我狗命Orz),除此之外,Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。

JFrame

JFrame – java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。----菜鸟教程

JFrame是swing的基础,也就是一个windows的窗口,可以缩放,关闭等功能。

使用以下几行代码可以快速创建一个空的JFrame窗口

import javax.swing.*;JFrame jf = new JFrame("这是JFrame窗口");
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
jf.setSize(1200, 700);
jf.show();

使用add方法可以向JFrame窗口添加一些组件。这也是我们搭建简易浏览器的基础。

JPanel

JPanel – Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,是一种轻量级容器,可以加入到JFrame窗体中。----菜鸟教程

简单的来说,JPanel就像一种【盒子】,供我们添加元组件

你可能会问为啥不直接向JFrame对象添加组件?

比如我希望JFrame中的组件纵向排列,而有一行组件需要横向排列的时候,直接向JFrame添加就不能实现。

而我们实现一个横向排列的JPanel,将所有横向排列的组件装起来,然后再在JFrame中纵向排列就可以实现。这只是其中的一个问题,而已,JPanel还有其他的用途,之后再谈。

JTextField

JTextField –一个轻量级组件,它允许编辑单行文本。----菜鸟教程

就是一个输入框,这个我们浏览器输入URL会用到。

以下代码可以简单的生成一个输入框。

import javax.swing.*;JTextField jtf = new JTextField("这是输入框");
JFrame jf = new JFrame("这是JFrame窗口");
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
jf.setSize(1200, 700);
jf.add(jtf);
jf.show();

JButton

JButton – JButton 类的实例。用于创建按钮类似实例中的 “Login”。----菜鸟教程

一个按钮组件,我们简易浏览器也会用到。

JEditorPane

最最最重要的核心组件,JEditorPane类实现了对html的解析,并且以图形化的形式渲染到窗口上。它可以直接处理html文档,通过传入一个简单的URL字符串就可以自动打开网页,相当方便了。

使用以下代码来快速生成一个显示页面的demo,目标页面是在我的个人服务器上部署的一个html测试页面:http://www.szulrl.cn/browserTest

import javax.swing.*;JEditorPane jep = new JEditorPane();
jep.setEditable(false); // 如果不设置则无法和超链接交互
jep.setContentType("text/html;charset=utf-8");       // 设置编码类型
jep.setPage("http://www.szulrl.cn/browserTest");  // 设置URLJFrame jf = new JFrame("这是JFrame窗口");
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
jf.setSize(1200, 700);
jf.add(jep);    // 为窗口添加显示html的组件JEditorPane对象
jf.show();

JScrollPane

JScrollPane类可提供轻量级组件的 scrollable 视图。JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。---- 百度百科

一句话:滑动的窗口,当页面过大的时候,可以像正常浏览器一样上下滑动,所以我们一般将 JEditorPane 放到 JScrollPane 中,以实现滑动浏览。

思路

简单了解 并不,

Java swing简易浏览器(其一)页面显示,超链接跳转与手动输入URL跳转相关推荐

  1. Java swing简易浏览器(其二)前进后退与收藏夹实现

    [Java swing简易浏览器(其一)页面显示,超链接跳转与手动输入URL跳转] [Java swing简易浏览器(其二)前进后退与收藏夹实现] [java swing 简易浏览器(其三)下载器,智 ...

  2. 基于JxBrowser的浏览器控件封装实现Java Swing的浏览器集成

    基于JxBrowser的浏览器控件封装实现Java Swing的浏览器集成 背景 实现目标 实现代码 运行效果 完整的代码及依赖jar文件下载 背景 进期客户提出在一个Java Swing项目要集成另 ...

  3. 案例:文件下载需求:1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载||中文文件问题

    文件下载需求:     1. 页面显示超链接     2. 点击超链接后弹出下载提示框     3. 完成图片文件下载 * 分析:     1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示 ...

  4. jsp页面显示超链接的时候关于路径得问题——jsp无法实现页面跳转问题 总结

    今天在做一个网页项目的时候还真的遇到一个问题,可能是由于自己还是新手吧,没有什么经验,或者说是自己得只是还没与学到家还是一只菜鸟,不多说废话,看项目. 要做的是一个用户登陆界面,并在上面实现页之间得跳 ...

  5. Java swing 简易文本编辑器

    1.介绍几个相关的网址 精通Java Swing程序设计 BeautyEye社区 2.主要功能 tab页能够关闭(快捷键:ctrl+w,鼠标点击x) JMuneItem和Button快键键的几种绑定 ...

  6. JAVA项目:后台管理页面——显示数据库中所有信息+删除和编辑(MySQL)

    此DEMO包含以下功能 后台管理界面(删除+修改+显示数据库里所有数据) 修改编辑界面(表格检验+修改数据库里的值) 后台管理界面 (头像为默认头像,视频暂未上传) backstageUI.jsp & ...

  7. 浏览器打开php显示空白,pc微信浏览器打开页面显示空白,其他浏览器正常

    (Tree) 101. Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetri ...

  8. java空白页,[求教]JSP页面显示为空白页,请高手赐教!

    周工作安排打印 function resetWinSize(){ this.resizeTo(window.screen.availWidth,window.screen.availHeight - ...

  9. 怎么实现html图片跳转页面显示内容,0036 如何编写网页迁移跳转功能

    上节课讲解了关于图片的相关知识,这节课来讲解关于如何使用超级链接实现网页之间的跳转功能. 上节课的课后练习 准备做2个新的网页,设计好里面的文字内容和图片. 学哥要来做2个新的网页,一个网页是显示关于 ...

最新文章

  1. MySQL隐式转化整理
  2. python多功能文本编辑器_多功能文本编辑器(EditPad Pro)
  3. 计算器显示代码java_java编写的计算器源代码
  4. 你离黑客的距离,就差这20个神器了
  5. Comet:基于 HTTP 长连接的“服务器推”技术解析
  6. TFS与Eclipse、Microsoft Visual Studio等客户端以webservice进行交换。
  7. linux 装windows软件,常用软件的安装(windows/linux)
  8. 记录一次bug解决过程:数据迁移
  9. Dawn 阿里开源前端开发构建工具
  10. 京东登录界面html css,css制作京东登录页面 css样式,京东店面装修怎么写CSS样式?...
  11. 使用Canvas绘制简单工程符号(续)
  12. C++趣味编程——身高预测。
  13. echarts柱状图多组数据配置
  14. 【教程】C++-赋值语句
  15. npm 如何更新项目最新依赖包
  16. iOS是否是电话号码判断Demo
  17. ES6 - lterator
  18. HTML CSS 学生期末网页设计作业「动漫小站」
  19. 直播带货系统,带货直播系统中发布商品的逻辑处理流程
  20. 最常见的英文写作问题

热门文章

  1. 从0开始做有趣的音乐创作
  2. 【Excel】下拉框填充失效无法快速填充怎么办
  3. 网络存储服务ip-san搭建
  4. 乒乓RAM基本原理和操作介绍
  5. 你将不会为写保证书,委托书而烦恼-----------格式示例
  6. vs2010配置opencv3.0
  7. Python自动上京东抢手机
  8. 上海亚商投顾: 市场调整分化 两市成交额再创阶段新低
  9. java web项目登录短信验证码_如何在Web项目完成短信验证码
  10. laya龙骨动画的几种使用方法