Swing使用JavaFXweb组件
概述
swing中内嵌入web组件的 需要使用一些其他的jar包 ,但是如果使用javafx的组件,那么也比较的方便,性能也比较高.
代码
webview 在javafx 中是作为 scene出现的所以不需要单独设置部件类型.
下面是单独的地址处理方法
private static void gotoURL(String url) {
Platform.runLater(new Runnable() {
@Override
public void run() {
webView.getEngine().load(url);
}
});
}
- swing嵌入fx 一般的写法
这里注意 webview 最好是 静态化
Platform.runLater(new Runnable() {
@Override
public void run() {
webView = new WebView();
jFXPanel.setScene(new Scene(webView));
webView.getEngine().load("http://www.baidu.com");
}
});
- 剩下的就是布局处理 你喜欢就好 , 这里我选择的了一个splash,出场动画, 可要可不要.
public class SwingFinal {
static WebView webView = null;
private static void gotoURL(String url) {
Platform.runLater(new Runnable() {
@Override
public void run() {
webView.getEngine().load(url);
}
});
}
/**
* @param args
* the command line arguments
* @throws URISyntaxException
*/
public static void main(String[] args) throws MalformedURLException, URISyntaxException {
// TODO code application logic here
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setSize(800, 600);
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
JFXPanel jFXPanel = new JFXPanel();
frame.add(jFXPanel, "Center");
JPanel controlPanel = new JPanel();
frame.add(controlPanel, "North");
JTextField urlField = new JTextField();
JButton goButton = new JButton("GO");
///////////////////////////////////////////////////////////////////////////////////
urlField.setText("http://www.baidu.com");
controlPanel.setLayout(new BorderLayout());
urlField.setPreferredSize(new Dimension(frame.getWidth() - 100, 1));
controlPanel.add(urlField, BorderLayout.WEST);
controlPanel.add(goButton, BorderLayout.EAST);
controlPanel.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
controlPanel.setLayout(new BorderLayout());
urlField.setPreferredSize(new Dimension(frame.getWidth() - 100, 1));
controlPanel.add(urlField, BorderLayout.WEST);
controlPanel.add(goButton, BorderLayout.EAST);
}
});
frame.addWindowStateListener(new WindowStateListener() {
@Override
public void windowStateChanged(WindowEvent e) {
controlPanel.setLayout(new BorderLayout());
urlField.setPreferredSize(new Dimension(frame.getWidth() - 100, 1));
controlPanel.add(urlField, BorderLayout.WEST);
controlPanel.add(goButton, BorderLayout.EAST);
}
});
goButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
String urlString = urlField.getText();
gotoURL(urlString);
}
});
Platform.runLater(new Runnable() {
@Override
public void run() {
webView = new WebView();
jFXPanel.setScene(new Scene(webView));
webView.getEngine().load("http://www.baidu.com");
}
});
JWindow splashWindow = new JWindow();
splashWindow.setSize(1024, 768);
splashWindow.setLocationRelativeTo(null);
splashWindow.setLayout(new BorderLayout());
File file = new File(SwingFinal.class.getResource("fox.png").toURI());
ImageIcon icon = new ImageIcon(file.toURL());
JLabel label = new JLabel(icon);
splashWindow.add(label);
Thread t = new Thread() {
public void run() {
frame.setVisible(false);
splashWindow.setVisible(true);
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
Logger.getLogger(SwingFinal.class.getName()).log(Level.SEVERE, null, ex);
}
splashWindow.setVisible(false);
frame.setVisible(true);
}
};
t.setDaemon(true);
t.start();
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if (JOptionPane.showConfirmDialog(null, "????", "??�?", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
});
}
}
Swing使用JavaFXweb组件的更多相关文章
- 实验十四 第九组 张燕~杨蓉庆~杨玲 Swing图形界面组件
实验十四 Swing图形界面组件 8-11-29 理论知识 Swing和MVC设计模式 (1)设计模式(Design pattern)是设计者一种流行的 思考设计问题的方法,是一套被反复使用,多数人 ...
- Swing的GUI组件得到焦点
Swing的GUI组件如JButtin,JTextArea,JRadioButton,JComboBox等,可以使用requestFocus()方法来获得焦点.
- 实验十四 Swing图形界面组件
实验十四 Swing图形界面组件 实验时间 20178-11-29 1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 2.实验内容和 ...
- JAVA学习Swing章节按钮组件JButton的简单学习
package com.swing; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; ...
- 详解Swing中JTree组件的功能
JTree组件是另外一个复杂组件,它不像 JTable 那样难用,但是也不像 JList 那么容易.使用 JTree 时麻烦的部分是它要求的数据模型. JTree组件的功能来自树的概念,树有分支和叶子 ...
- Java Swing 树状组件JTree的使用方法(转)
树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识.展开 节点是一个非叶节点(由返回 false 的 TreeModel ...
- 第13章 Swing程序设计----标签组件与图标
在Swing中显示文本或提示信息的方法是使用标签.本节将探讨Swing标签的用法.如何创建标签,以及如何在标签上放置文本和图标. 1.标签的使用 标签可以显示一行只读文本.一个图像或带图像的文本,它并 ...
- Swing 布局时 组件大小问题
在JFrame中放置了几个JPanel ,想调整JPanel大小,一直无效. 问题在于: 因为JPanel A的四周没有添加任何组件,所以JPanel B会把JPanel A填满.这种情况想固定JPa ...
- Swing列表框组件
public class JListTest extends JFrame{ private static final long serialVersionUID=1L; publ ...
随机推荐
- ubuntu系统备份与恢复(也适用于其他linux系统)
在windows环境下面,有很多的备份恢复软件,系统也自带了备份恢复功能,比较知名的软件比如ghost等,为什么要备份系统,我之前一直都是系统出现问题就全新安装原版的windows,然后各种设置,各种 ...
- 所使用的“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”版本高于所引用的程序集“EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的版本
错误信息:所使用的"EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&qu ...
- Spark ML源码分析之二 从单机到分布式
前一节从宏观角度给大家介绍了Spark ML的设计框架(链接:http://www.cnblogs.com/jicanghai/p/8570805.html),本节我们将介绍,Spar ...
- PO BO VO DTO POJO DAO DO
PO BO DTO VO 归在一起叫是POJO,简单java对象:DAO 是进行数据库增删改查的类,DO不确定有没有. 重点说下POJO PO 持久对象,数据: BO 业务对象,封装对象.复杂对象 , ...
- 多目标跟踪(MOT)评测标准
MOT16是多目标跟踪领域非常有名的评测数据集,Ref 1详细阐述了这个数据集的组成以及评测标准(及其评测代码),Ref 2详细地解释了许多标准的由来和考虑,本部分主要介绍MOT任务中常用的评测标准. ...
- RTMP规范协议
本文参照rtmp协议英文版,进行简单的协议分析 1.什么是RTMP 关于 Adobe 的实时消息协议(Real Time Messaging Protocol,RTMP),是一种多媒体的复用和分组的应 ...
- 测试与发布(Beta版本)
评分基准: 按时交 - 有分(测试报告-10分,发布说明-10分,展示博客-10分),检查的项目包括后文的两个方面 测试报告(基本完成5分,根据完成质量加分,原则上不超过满分10分) 发布说明(基本完 ...
- beta冲刺5
昨天的问题: 登陆页面的整合重新制作 各主机版本更迭 我的社团显示功能修改调整 主页的头部替换掉 +修复帖子无法显示内容的问题 +试着将邮箱等判定用正则表达式进行实时判定. 今天的完成: 主要是线下进 ...
- 《团队-OldNote-项目总结》
我们小组做的是手机便签的app---OldNote 最开始我们想解决普通手机便签无法进行语音和照片的备忘这一问题,但是由于没有做过拍照和录音的经验怕由于技术原因无法达成目的,就没敢写在需求分析中.当完 ...
- The sum of numbers form 0 to n.(20.9.2017)
#include <stdio.h> int main() { int a,b,sum; printf("输入一个数字: "); scanf("%d" ...