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

本文介绍了使用Java Swing构建简易浏览器的初步步骤,包括展示HTML页面、超链接跳转和手动输入URL跳转。文章详细讲解了Swing组件如JFrame、JPanel、JTextField、JButton、JEditorPane和JScrollPane的使用,并展示了如何通过绑定事件实现页面操作。
摘要由CSDN通过智能技术生成

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

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

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

前言

这学期互联网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");	// 设置URL
		
JFrame jf = new JFrame("这是JFrame窗口");
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
jf.setSize(1200, 700);
jf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值