swing 浏览器
来源:互联网 发布:网络信贷理财平台 编辑:程序博客网 时间:2024/05/22 09:51
import javafx.application.Platform;import javafx.beans.value.ChangeListener;import javafx.beans.value.ObservableValue;import javafx.embed.swing.JFXPanel;import javafx.event.EventHandler;import javafx.scene.Scene;import javafx.scene.web.WebEngine;import javafx.scene.web.WebEvent;import javafx.scene.web.WebView; import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.net.MalformedURLException;import java.net.URL; import static javafx.concurrent.Worker.State.FAILED; public class SimpleSwingBrowser extends JFrame { private final JFXPanel jfxPanel = new JFXPanel(); private WebEngine engine; private final JPanel panel = new JPanel(new BorderLayout()); private final JLabel lblStatus = new JLabel(); private final JButton btnGo = new JButton("Go"); private final JTextField txtURL = new JTextField(); private final JProgressBar progressBar = new JProgressBar(); public SimpleSwingBrowser() { super(); initComponents(); } private void initComponents() { createScene(); ActionListener al = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { loadURL(txtURL.getText()); } }; btnGo.addActionListener(al); txtURL.addActionListener(al); progressBar.setPreferredSize(new Dimension(150, 18)); progressBar.setStringPainted(true); JPanel topBar = new JPanel(new BorderLayout(5, 0)); topBar.setBorder(BorderFactory.createEmptyBorder(3, 5, 3, 5)); topBar.add(txtURL, BorderLayout.CENTER); topBar.add(btnGo, BorderLayout.EAST); JPanel statusBar = new JPanel(new BorderLayout(5, 0)); statusBar.setBorder(BorderFactory.createEmptyBorder(3, 5, 3, 5)); statusBar.add(lblStatus, BorderLayout.CENTER); statusBar.add(progressBar, BorderLayout.EAST); panel.add(topBar, BorderLayout.NORTH); panel.add(jfxPanel, BorderLayout.CENTER); panel.add(statusBar, BorderLayout.SOUTH); getContentPane().add(panel); setPreferredSize(new Dimension(1024, 600)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); } private void createScene() { Platform.runLater(new Runnable() { @Override public void run() { WebView view = new WebView(); engine = view.getEngine(); engine.titleProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, final String newValue) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { SimpleSwingBrowser.this.setTitle(newValue); } }); } }); engine.setOnStatusChanged(new EventHandler<WebEvent<String>>() { @Override public void handle(final WebEvent<String> event) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { lblStatus.setText(event.getData()); } }); } }); engine.locationProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> ov, String oldValue, final String newValue) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { txtURL.setText(newValue); } }); } }); engine.getLoadWorker().workDoneProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldValue, final Number newValue) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { progressBar.setValue(newValue.intValue()); } }); } }); engine.getLoadWorker() .exceptionProperty() .addListener(new ChangeListener<Throwable>() { public void changed(ObservableValue<? extends Throwable> o, Throwable old, final Throwable value) { if (engine.getLoadWorker().getState() == FAILED) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JOptionPane.showMessageDialog( panel, (value != null) ? engine.getLocation() + "\n" + value.getMessage() : engine.getLocation() + "\nUnexpected error.", "Loading error...", JOptionPane.ERROR_MESSAGE); } }); } } }); jfxPanel.setScene(new Scene(view)); } }); } public void loadURL(final String url) { Platform.runLater(new Runnable() { @Override public void run() { String tmp = toURL(url); if (tmp == null) { tmp = toURL("http://" + url); } engine.load(tmp); } }); } private static String toURL(String str) { try { return new URL(str).toExternalForm(); } catch (MalformedURLException exception) { return null; } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { SimpleSwingBrowser browser = new SimpleSwingBrowser(); browser.setVisible(true); browser.loadURL("http://baidu.com"); } }); }}
javafx.jar ,当然jdk的目录下就有.例如:C:\Program Files (x86)\Java\jdk1.7.0_75\jre\lib\jfxrt.jar
或者 下载地址: http://download.csdn.net/detail/lhf214111967/8741741
1 0
- swing 浏览器
- Swing调用浏览器
- Swing界面嵌套浏览器
- Java Swing嵌入浏览器
- java swing 打开浏览器
- java----swing嵌入浏览器
- Java-Swing嵌入浏览器
- java swing内嵌浏览器
- Swing 简单的WEB浏览器
- java swing内嵌浏览器
- 转:Java-Swing嵌入浏览器
- Java Swing点击按钮启动浏览器示例
- java swing实现简单的图片浏览器
- swing和java里嵌入浏览器
- swing和java里嵌入浏览器
- java swing内嵌浏览器,隐藏滚动条
- [Java]Swing基础编程【4】JFileChooser 和 吉他谱浏览器设想
- java swing开发最简单的浏览器源代码下载
- NetEQ 算法
- LightOJ 1348 Aladdin and the Return Journey (树链剖分)
- JavaScript--window.frames在ie与其他浏览器的不用获取。
- ADO的SQL语句中的“*”和“?”
- C++知识点,路径创建,const_cast
- swing 浏览器
- Noip2006 2^k进制数题解
- Catalan数
- MySql声明变量和赋值
- Android数据存储与访问
- label字不同颜色(拔刺首页为例)
- android 多语言(在APP里面内切换语言)
- 再见-百度空间
- #define和预处理指令的使用。