怎么将swing组件转成javafx节点

 我来答
育知同创教育
2017-06-16 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
标准的Swing程序中调用JavaFX代码如下:

package swingtest;

/**
* JavaFXToSwingTest.java http://www.javafxblogs.com
* @author Henry Zhang
*/
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代码,希望对大家有所帮助。
tc...8@163.com
2017-06-16 · 超过204用户采纳过TA的回答
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:306万
展开全部
看一些javafx做的开源项目,还有官方的例子程序,界面基本就会写出来了(跟swing没太大差距),对于一些新的东西,不要排斥,多看看fx的api文档~大概就这么多,一起学习吧~用一个好的ide,对于javafx 的CSS提示好的话,css这一块能学的很快
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式