Swing程序中调用JavaFX代码

开发 后端
本文介绍Swing程序中调用JavaFX代码,那么应该怎样编译和运行这样的程序呢。其实,JavaFX的功能也就是一些jar文件,因此和Java的结合方式还是比较简单的。

当我们完成了MyScene类后,可以开始写Java的主程序了,这是个标准的Swing程序中调用JavaFX代码如下:

  1. package swingtest;  
  2.    
  3. /**   
  4. * JavaFXToSwingTest.java http://www.javafxblogs.com   
  5. * @author Henry Zhang   
  6. */  
  7. import java.awt.*;  
  8. import javax.swing.*;  
  9. import org.jfxtras.scene.SceneToJComponent;  
  10.    
  11. public class JavaFXToSwingTest extends JFrame {   
  12. public static JTextField tf = new JTextField("JavaFX for SWING");  
  13.    
  14. public JavaFXToSwingTest() {  
  15. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);  
  16. setTitle("JavaFX in SWING Test");  
  17.    
  18. Container container = getContentPane();  
  19. container.setLayout(new BorderLayout());   
  20. String sceneClass = "swingtest.MyScene";  
  21. JComponent myScene = SceneToJComponent.loadScene(sceneClass);  
  22. JLabel label = new JLabel(" Below is a JavaFX Animation: ");  
  23. container.add(label, BorderLayout.NORTH);  
  24. container.add(myScene, BorderLayout.CENTER);  
  25.  
  26. JPanel p = new JPanel();  
  27. p.setLayout(new FlowLayout());  
  28.    
  29. tf.setColumns(28);  
  30. p.add(tf);  
  31. p.add(new JButton("SWING Button"));  
  32.    
  33. container.add(p, BorderLayout.SOUTH);  
  34. pack();  
  35. }  
  36. public static void main(String args[]) {  
  37. java.awt.EventQueue.invokeLater(  
  38. new Runnable() {  
  39. public void run() {  
  40. new JavaFXToSwingTest().setVisible(true);  
  41. }  
  42. }  
  43. }  

对大多数Java/Swing程序员来说,上述代码应该是很容易理解的。我们通过 BorderLayout和FlowLayout在Swing的窗口(JFrame)中布置了一些图形控件。有2行代码是和加载JavaFX的Scene相关的:

  1. String sceneClass = "swingtest.MyScene";    
  2. JComponent myScene = SceneToJComponent.loadScene(sceneClass);  

其中SceneToJComponent类是从JFXtras项目中来的。它提供了loadScene()的方法,可以把JavaFX的Scene类加载到一个JComponent对象中, 从而可以被Swing程序使用。运行这个程序,你可以看到一行文本”JavaFX for SWING”在窗口中央旋转。如果你在输入框中输入新的句子,你会发现旋转的文字也发生了改变。

在Swing程序中调用JavaFX代码是可行的,那么应该怎样编译和运行这样的程序呢。其实,JavaFX的功能也就是一些jar文件,因此和Java的结合方式还是比较简单的。编译的方法主要有两种,一种就是用JavaFX 的编译器Javafxc来编译Java和JavaFX代码。第二种就是用Javafxc编译JavaFX代码,用Javac编译Java代码。以上是Swing程序调用JavaFX代码,希望对大家有所帮助。

【编辑推荐】

  1. 概述Swing大多数控件
  2. GUI程序与Swing中的线程
  3. 浅析Swing.SWT和AWT的区别
  4. AWT和Swing的区别
  5. 浅谈Swing中提供了JOptionPane
责任编辑:佚名 来源: 电子工业出版社
相关推荐

2009-07-17 17:00:20

JavaFX功能Swing

2009-06-23 14:44:29

调用JavaFX

2009-07-17 16:49:18

lookandfeelSwing

2009-07-14 15:34:22

Swing中的线程GUI程序

2014-09-25 11:08:17

ECLLispC语言

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-16 08:53:03

Swing任务Swing线程

2009-07-15 09:24:30

Swing动态刷新

2009-07-16 17:09:02

Swing应用程序

2009-07-17 14:57:41

SwingWorkerSwing程序

2009-07-17 10:42:06

Swing应用程序处理函数

2009-07-14 16:02:04

SWT和Swing

2009-07-10 17:24:07

Swing应用程序

2009-07-17 16:41:48

actionPerfoSwing

2012-04-16 13:47:37

JavaMatlab

2009-07-14 11:08:42

WebRendererSwing应用程序

2009-07-17 16:09:29

Swing桌面应用程序

2009-07-14 18:10:38

Swing应用程序框架

2009-07-10 10:19:57

JFormattedTSwing

2009-07-15 09:59:11

Metal观感Swing
点赞
收藏

51CTO技术栈公众号