当前位置: 首页 > news >正文

产品设计培训机构哪家好贵州整站优化seo平台

产品设计培训机构哪家好,贵州整站优化seo平台,网站开发技术规范,装饰网站建设策划书转载自 在Swing和Swt中使用JavaFX 本人从08年12月份#xff0c;JavaFX发布第一个版本开始关注它的发展。 算算到现在#xff0c;也差不多是第五个年头了。期间经历了一些动荡#xff0c;但JavaFX还是坚持着发展了下来#xff0c;也经历了很多改变(这也是Java技术的特点JavaFX发布第一个版本开始关注它的发展。 算算到现在也差不多是第五个年头了。期间经历了一些动荡但JavaFX还是坚持着发展了下来也经历了很多改变(这也是Java技术的特点不会像微软对技术的抛弃和更新换代很频繁)由以前顺应富互联网技术发展的单纯的JavaFX脚本语言到现在已经变为完全用于取代Swing的技术。 虽然是为了取代Swing但任何的技术为了不造成很大的影响都必须有一个逐步换代的过程。如果单纯的从JDK中剔除Swing而增加JavaFX的话将会造成世界数不清的程序无法运行影响不可估量(就像JDK中有很多以前不合理的旧的类库就算有新的可替代的方案也不能将以前的完全删除所以JDK其实越来越臃肿)。这里我们将会介绍一下如何在Swing中使用JavaFX。 首先我们要明白不管是Swing还是JavaFXGUI的构建必须要各自的EDT(事件分发线程)中进行这也是在其他线程中操作UI会出现error的原因。 而在JavaFX中新增加了JFXPanel。这个组件是JavaFX和Swing进行混合编程的桥梁。 下面我们来看看JFXPanel的继承关系。 大家可以看到JFXPanel是继承于JComponent的。而JavaFX的UI控件都是继承于javafx.scene.control.Control。所以很明显它其实是一个Swing组件而非JavaFX的组件。 下面我们来看看JPanel的继承关系。 继承关系基本相同也就是说凡是在使用JPanel的地方我们都可以用JFXPanel来替代。JFXPanel中有一个setScene方法可以设置其中显示的JavaFX内容。 根据文档介绍setScene方法可以在Swing和JavaFX的EDT中使用。也可以说setScene才是将JavaFX和Swing结合起来的关键。 不过由于JavaFX的GUI的构建也需要在JavaFX的事件分发线程中进行。所以我们还需要用到另外一个类Platform。 Platform.runLater(new Runnable())中间执行的是JavaFX的事件分发线程。我们可以在Runnable中进行JavaFX的UI的创建。 下面我们来看一个简单的示例-----在Swing中嵌入一个JavaFX的网页浏览器。 import java.awt.BorderLayout; import java.awt.Toolkit;import javafx.application.Platform; import javafx.embed.swing.JFXPanel; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView;import javax.swing.JFrame;public class MainClass {private static final int WIDTH 800;private static final int HEIGHT 600;private static final String url http://blog.csdn.net/ml3947;private static final String urlStart http://;/*** param args*/public static void main(String[] args) {JFrame frame new JFrame(JavaFX in Swing);final JFXPanel webBrowser new JFXPanel();frame.setLayout(new BorderLayout());frame.add(webBrowser, BorderLayout.CENTER);Platform.runLater(new Runnable() {Overridepublic void run() {Group root new Group();Scene scene new Scene(root, WIDTH, HEIGHT);webBrowser.setScene(scene);Double widthDouble new Integer(WIDTH).doubleValue();Double heightDouble new Integer(HEIGHT).doubleValue();VBox box new VBox(10);HBox urlBox new HBox(10);final TextField urlTextField new TextField();urlTextField.setText(url);Button go new Button(go);urlTextField.setPrefWidth(WIDTH - 70);urlBox.getChildren().addAll(urlTextField, go);WebView view new WebView();view.setMinSize(widthDouble, heightDouble);view.setPrefSize(widthDouble, heightDouble);final WebEngine eng view.getEngine();eng.load(url);root.getChildren().add(view);box.getChildren().add(urlBox);box.getChildren().add(view);root.getChildren().add(box);go.setOnAction(new EventHandlerActionEvent() {Overridepublic void handle(ActionEvent event) {if (!urlTextField.getText().startsWith(urlStart)) {eng.load(urlStart urlTextField.getText());} else {eng.load(urlTextField.getText());}}});}});int screenWidth Toolkit.getDefaultToolkit().getScreenSize().width;int screenHeight Toolkit.getDefaultToolkit().getScreenSize().height;frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(WIDTH, HEIGHT);frame.setLocation((screenWidth - WIDTH) / 2, (screenHeight - HEIGHT) / 2);frame.setVisible(true);}} 这是一个很简单的例子。 我们创建了JFrame和JFXPanel然后在Platform.runLater中进行Scene的创建并设置到JFXPanel中。 我们创建了一个Textfield用来输入网址创建了一个JavaFX Button来跳转到网址。判断网址是不是http://开头并做简单的处理。 下面看看运行效果: 如图所示。 另外在Swt中使用的话是JFXCanvas由于实现机制的问题我们并不需要像在Swing中使用Platform类。而JFXCanvas也是org.eclipse.swt.widgets.Canvas的直接子类我们可以直接使用。 示例如下: public class JFXInSwt {private static Scene createScene() {Group group new Group();Scene scene new Scene(group);Button button new Button(JFX Button);group.getChildren().add(button);return scene;}public static void main(String[] args) {Display display new Display();Shell shell new Shell(display);shell.setLayout(new FillLayout());FXCanvas canvas new FXCanvas(shell, SWT.NONE);Scene scene createScene();canvas.setScene(scene);shell.open();while (!shell.isDisposed()) {if (!display.readAndDispatch()) display.sleep();}display.dispose();}}
http://www.zqtcl.cn/news/528053/

相关文章:

  • 天津网站制作推广wordpress 果酱
  • 写给初学网站开发们的一封信企业网站建设 ppt
  • 做装修网站多少钱做网站百度一下
  • 用asp做网站的可行性分析9免费建网站
  • 网站域名注册商查询徐州集团网站建设报价
  • 句容网站设计公司做网站充值犯法吗
  • 网站建设所用系统网站备案目的
  • 苏州做网站优化公司哪家好网站的大小
  • 四川省住房和城乡建设厅官方网站网站建设图标图片
  • 做影视网站侵权吗评论凡科网站建设怎么样
  • 建设个人网站流程建设游戏网站需要哪些设备
  • 四字母net做网站怎么样河南做网站优化
  • 怎样做网站快照网站当前位置怎么做
  • 网站模板移植现在c 做网站用什么框架
  • 国内专业的室内设计网站盐城网站开发代理商
  • 外贸网站建设 评价wordpress 函数调用
  • 广告支持模式的网站二级域名做网站域名
  • 空间 两个网站购物网站建设图标大全
  • 17.zwd一起做网站广州网站制作费用
  • 如何选择网站建设公司网站开发公司vue框架
  • 网站建设设计外包公司360个人网站建设
  • 什么网站专做店铺公司注销的网站备案
  • 不属于c2c网站的是带货视频怎么制作教程
  • 3g小说网站怎么自己用手机做网站
  • 广告行业包括网站建设吗关键词优化排名易下拉系统
  • 皖icp网站建设地方汽车网站模板购买
  • 在哪个网站做科目一考试题域名多少钱一年
  • 红孩子母婴网站开发背景建网站可行性分析
  • 北京 网站设计飞沐商城网站技术方案
  • 大连网站建设价格低怎么加入网站做微商城