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


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();
【其一Java swing简易浏览器页面显示,超链接跳转与手动输入URL跳转】类可提供轻量级组件的视图 。管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口 。---- 百度百科
一句话:滑动的窗口 , 当页面过大的时候 , 可以像正常浏览器一样上下滑动 , 所以我们一般将放到中 , 以实现滑动浏览 。
思路
简单了解 并不 , 在网上查各种用法查半天才弄出来的 了swing的一些组件之后 , 我们可以尝试搭建一个简易的浏览器了 。下面给出组件的嵌套框架图 。
先上效果图
各部分实现 html页面显示
和上面演示的基本无异 , 区别就是要将添加到组件中
JEditorPane jep = new JEditorPane();jep.setEditable(false);// 设置主页jep.setContentType("text/html;charset=utf-8");try {jep.setPage("http://www.szulrl.cn/browserTest");} catch (IOException e) {jep.setText("Error! Could not load page");}// 带滑动条的组件 用于存放显示html的jep组件JScrollPane scrollpane = new JScrollPane(jep);JFrame jf = new JFrame("这是JFrame窗口");jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);jf.setSize(1200, 700);jf.add(scrollpane);jf.show();
注意此时是可滑动的

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

文章插图
输入框与按钮
值得注意的是要在向 调用 add 方法添加组件时 , 加上布局方式及方位的修饰(见下面代码) , 否则无法正常显示 。
// html显示组件JEditorPane jep = new JEditorPane();jep.setEditable(false);// 设置主页jep.setContentType("text/html;charset=utf-8");try {jep.setPage("http://www.szulrl.cn/browserTest");} catch (IOException e) {jep.setText("Error! Could not load page");}// 带滑动条的组件 用于存放显示html的jep组件JScrollPane scrollpane = new JScrollPane(jep);// 输入框 输入URLJTextField jtf = new JTextField(40);jtf.setText("http://www.szulrl.cn/browserTest");// 按钮JButton goBtn = new JButton("点我访问网页");// 上方菜单盒子JPanel menuBox = new JPanel();menuBox.add(jtf);menuBox.add(goBtn);// 主窗口JFrameJFrame jf = new JFrame("这是JFrame窗口");jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);jf.setSize(1200, 700);jf.add(menuBox, BorderLayout.NORTH);// 必须设置方位为North才能在上方显示jf.add(scrollpane, BorderLayout.CENTER); // 设置访问为centerjf.show();
现在我们有基本的形状了 , 但是你会发现 , 不管点击超链接还是按回车还是点按钮 , 都无法跳转 , 所以我们需要绑定事件 。这在接下来会讲
绑定事件
注意需要一些event对象的 , 详情见【完整代码】部分的
绑定超链接事件
在刚刚的代码上 , 加上如下代码即可 , 值得注意的是 , 需要将对象改为用final修饰
final JEditorPane jep = new JEditorPane();
// 添加超链接点击事件回调函数 并将JEditorPane的页面改为超链接的页面jep.addHyperlinkListener(new HyperlinkListener() {public void hyperlinkUpdate(HyperlinkEvent event) {if(event.getEventType()==HyperlinkEvent.EventType.ACTIVATED) {try {jep.setPage(event.getURL());} catch (IOException e) {jep.setText("Error! Could not load page");}}}});