下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

Java的Swing程序是如何调用FX代码

作者:课课家教育     来源: http://www.kokojia.com点击数:1509发布时间: 2016-03-09 17:47:30

标签: Java开发Java编程Java设计

大神带你学编程,欢迎选课

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

Java的Swing程序中如何调用FX代码 _Java开发_Java编程_课课家

package swingtest;
import java.awt.*;
import javax.swing.*;
import org.jfxtras.scene.SceNEToJComponent;
public class JavaFXToSwingTest extends JFrame {
  public static JTextField tf = new JTextField("JavaFX for SWING");
    public JavaFXToSwingTest() {
      setDefaultCloseOperation(javax.swing.windowConstants.EXIT_ON_CLOSE);
      setTitle("JavaFX in SWING Test");
      Container container = getContentPane();
      container.sETLayout(new BorderLayout());
      String sceneClass = "swingtest.MyScene";
      JComponent myScene = SceneToJComponent.loadScene(sceneClass);
      JLabel label = new JLabel(" Below is a JavaFX Animation: ");
      container.add(label, BorderLayout.NORTH);
      container.add(myScene, BorderLayout.CENTER);
      JPanel p = new JPanel();
      p.setLayout(new FlowLayout());
      tf.setColumns(28);
      p.add(tf);
      p.add(new JButton("SWING Button"));
      container.add(p, BorderLayout.SOUTH);
      pack();
    }
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
      new JavaFXToSwingTest().setVisible(true);
      java.awt.EventQueue.invokeLater( new Runnable() { 
        public void run() { 
        new JavaFXToSwingTest().setVisible(true);  
        }
      }
    }
  }
}

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

String sceneClass = "swingtest.MyScene";
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代码,希望对大家有所帮助。

赞(27)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程