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


绑定按钮事件
在上文的代码中添加如下代码即可 。
值得注意的是 , 因为要获取文本框的内容 , 需要用final修饰对象
final JTextField jtf = new JTextField(40);
// 绑定访问按钮点击事件 从JTextField输入框获取URL并且访问goBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {try {jep.setPage(jtf.getText());} catch (IOException e1) {jep.setText("Error! Could not load page");}}});
绑定输入框回车事件
在上文的代码中添加如下代码即可 。
这里直接调用按钮的事件 , 即按回车访问和按按钮访问是一个意思 。因为要用到按钮对象 , 同样要用final修饰
final JButton goBtn = new JButton("点我访问网页");
// 绑定输入框回车按键事件jtf.addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent event) {if(event.getKeyChar()==KeyEvent.VK_ENTER) {goBtn.doClick(); // 按下回车等于点击按钮}}});
完整代码
import java.awt.*;import java.awt.event.*;import java.net.*;import java.io.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.text.html.*;public class test {public static void main(String[] args) throws Exception {// html显示组件final 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);// 输入框 输入URLfinal JTextField jtf = new JTextField(40);jtf.setText("http://www.szulrl.cn/browserTest");// 按钮final JButton goBtn = new JButton("点我访问网页");// 上方菜单盒子JPanel menuBox = new JPanel();menuBox.add(jtf);menuBox.add(goBtn);// 添加超链接点击事件回调函数 并将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");}}}});// 绑定访问按钮点击事件 从JTextField输入框获取URL并且访问goBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {try {jep.setPage(jtf.getText());} catch (IOException e1) {jep.setText("Error! Could not load page");}}});// 绑定输入框回车按键事件jtf.addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent event) {if(event.getKeyChar()==KeyEvent.VK_ENTER) {goBtn.doClick(); // 按下回车等于点击按钮}}});JFrame jf = new JFrame("369危险浏览器");jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);jf.setSize(1200, 700);jf.add(menuBox, BorderLayout.NORTH);// 必须设置方位为North才能在上方显示jf.add(scrollpane, BorderLayout.CENTER); // 设置访问为centerjf.show();}}
演示