Java swing简易浏览器(其一)页面显示,超链接跳转与手动输入URL跳转
【Java swing简易浏览器(其一)页面显示,超链接跳转与手动输入URL跳转】
【Java swing简易浏览器(其二)前进后退与收藏夹实现】
【java swing 简易浏览器(其三)下载器,智能搜索栏与邮件发送】
目录
- 前言
- Swing及其组件介绍
- 什么是swing
- JFrame
- JPanel
- JTextField
- JButton
- JEditorPane
- JScrollPane
- 思路
- 各部分实现
- html页面显示
- 输入框与按钮
- 绑定事件
- 绑定超链接事件
- 绑定按钮事件
- 绑定输入框回车事件
- 完整代码
- 演示
前言
这学期互联网java课程的大作业下来了。。
挺难的但是害得做啊,要恰饭的嘛 我就是懒狗
老师说都是把学过的内容缝合一下,迫真作业拧螺丝期末造火箭Orz
关于服务器,之前已经实现过了:【Java用socket基于http协议搭建一个简易的http服务器】
难点就是这个浏览器了。。。不过好在java有提供相关的辅助包,swing,那么今天先来实现一个简单的浏览器的基本功能
- 显示html页面
- 超链接跳转
- 输入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跳转相关推荐
- Java swing简易浏览器(其二)前进后退与收藏夹实现
[Java swing简易浏览器(其一)页面显示,超链接跳转与手动输入URL跳转] [Java swing简易浏览器(其二)前进后退与收藏夹实现] [java swing 简易浏览器(其三)下载器,智 ...
- 基于JxBrowser的浏览器控件封装实现Java Swing的浏览器集成
基于JxBrowser的浏览器控件封装实现Java Swing的浏览器集成 背景 实现目标 实现代码 运行效果 完整的代码及依赖jar文件下载 背景 进期客户提出在一个Java Swing项目要集成另 ...
- 案例:文件下载需求:1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载||中文文件问题
文件下载需求: 1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载 * 分析: 1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示 ...
- jsp页面显示超链接的时候关于路径得问题——jsp无法实现页面跳转问题 总结
今天在做一个网页项目的时候还真的遇到一个问题,可能是由于自己还是新手吧,没有什么经验,或者说是自己得只是还没与学到家还是一只菜鸟,不多说废话,看项目. 要做的是一个用户登陆界面,并在上面实现页之间得跳 ...
- Java swing 简易文本编辑器
1.介绍几个相关的网址 精通Java Swing程序设计 BeautyEye社区 2.主要功能 tab页能够关闭(快捷键:ctrl+w,鼠标点击x) JMuneItem和Button快键键的几种绑定 ...
- JAVA项目:后台管理页面——显示数据库中所有信息+删除和编辑(MySQL)
此DEMO包含以下功能 后台管理界面(删除+修改+显示数据库里所有数据) 修改编辑界面(表格检验+修改数据库里的值) 后台管理界面 (头像为默认头像,视频暂未上传) backstageUI.jsp & ...
- 浏览器打开php显示空白,pc微信浏览器打开页面显示空白,其他浏览器正常
(Tree) 101. Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetri ...
- java空白页,[求教]JSP页面显示为空白页,请高手赐教!
周工作安排打印 function resetWinSize(){ this.resizeTo(window.screen.availWidth,window.screen.availHeight - ...
- 怎么实现html图片跳转页面显示内容,0036 如何编写网页迁移跳转功能
上节课讲解了关于图片的相关知识,这节课来讲解关于如何使用超级链接实现网页之间的跳转功能. 上节课的课后练习 准备做2个新的网页,设计好里面的文字内容和图片. 学哥要来做2个新的网页,一个网页是显示关于 ...
最新文章
- MySQL隐式转化整理
- python多功能文本编辑器_多功能文本编辑器(EditPad Pro)
- 计算器显示代码java_java编写的计算器源代码
- 你离黑客的距离,就差这20个神器了
- Comet:基于 HTTP 长连接的“服务器推”技术解析
- TFS与Eclipse、Microsoft Visual Studio等客户端以webservice进行交换。
- linux 装windows软件,常用软件的安装(windows/linux)
- 记录一次bug解决过程:数据迁移
- Dawn 阿里开源前端开发构建工具
- 京东登录界面html css,css制作京东登录页面 css样式,京东店面装修怎么写CSS样式?...
- 使用Canvas绘制简单工程符号(续)
- C++趣味编程——身高预测。
- echarts柱状图多组数据配置
- 【教程】C++-赋值语句
- npm 如何更新项目最新依赖包
- iOS是否是电话号码判断Demo
- ES6 - lterator
- HTML CSS 学生期末网页设计作业「动漫小站」
- 直播带货系统,带货直播系统中发布商品的逻辑处理流程
- 最常见的英文写作问题