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 ...
随机推荐
- oracle、instantclient以及plsql安装包
链接:http://pan.baidu.com/s/1skZidWT 密码:l1hq
- TLA+和并发系统正确性验证
TLA+介绍 TLA+(WIKI,官网)是一门领域特定语言,主要用于数理逻辑计算和并发系统的正确性验证.TLA+中的TLA代表的是"行为时序逻辑(Temporal Logic of Acti ...
- linux(ubuntu)环境下安装及配置JDK
安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...
- linux --> 动态库和静态库
库的分类 根据链接时期的不同,库分为静态库和动态库之分. 静态库:在链接阶段被链接的,生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 动态库:在程序执行的时候被链接的,即使程 ...
- 关闭系统邮件提醒:you hava a new mail(转)
有时候,在输入某些触及到系统安全或者内核方面的命令都会提醒你: You have new mail in /var/spool/mail/root 只需要在root 用户下,不设置邮件检测即可! #e ...
- java并发包——阻塞队列BlockingQueue及源码分析
一.摘要 BlockingQueue通常用于一个线程在生产对象,而另外一个线程在消费这些对象的场景,例如在线程池中,当运行的线程数目大于核心的线程数目时候,经常就会把新来的线程对象放到Blocking ...
- W班-项目选题报告成绩
作业链接 https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/907 作业要求 1份团队选题报告(word电 ...
- C语言博客作业--函数嵌套调用
一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现 ...
- 20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计
20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 ...
- Java课程设计报告——购物车
1.码云GIT提交 Git地址 2基本框架 3.基本界面 1.主界面: 2.购物车界面: 3.添加商品界面: 4.删除商品界面: 5.修改商品界面: 6.商城界面: 7.购物车显示界面: 4.代码解释 ...