java swing fx_Java的Swing程序是如何调用FX代码

本文介绍了如何在Java Swing程序中调用并整合JavaFX代码,通过JFXtras库的SceneToJComponent加载JavaFX场景到Swing组件。示例代码展示了一个Swing窗口中包含旋转文本的JavaFX动画,文本内容可由Swing的JTextField动态更新。文章还提及了JavaFX代码与Swing代码的编译和运行方法,包括使用Javafxc和Javac进行编译。
摘要由CSDN通过智能技术生成

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

c428e19ea098a46c630ed46ddbb080ae.png

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代码,希望对大家有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值