刚学javaFX 有些不明白请高手指点一下。
1,javaFX程序是运行在jvm上面吗?
2,*.fx文件运行前是否会编译成.class文件,或其它文件。
3,如果我写完了一个工程,想要放到其它机子去运行要做哪些工作。
比如以前一个java工程,如果其它机子有jvm,我只要将.class和相应的.jar文件copy过去就行了。
1,javaFX程序是运行在jvm上面吗?
2,*.fx文件运行前是否会编译成.class文件,或其它文件。
3,如果我写完了一个工程,想要放到其它机子去运行要做哪些工作。
比如以前一个java工程,如果其它机子有jvm,我只要将.class和相应的.jar文件copy过去就行了。
我这样编译 // place your code here
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.Stop;
import javafx.scene.paint.Color;Stage {
title : "JavaFx Record Button"
width : 249
height : 251
visible : true scene: Scene {
fill: LinearGradient {
startX: 0.0, startY: 0.0, endX: 0.0, endY: 1.0, proportional: true
stops: [
Stop {offset: 0.0 color: Color.WHITE},
Stop {offset: 1.0 color: Color.BLACK}
]
}
content: [
//objects that appear on the scene
]
}}
然后对生产的class文件反编译import com.sun.javafx.runtime.*;
import com.sun.javafx.runtime.location.*;
import com.sun.javafx.runtime.sequence.*;
import javafx.scene.Scene;
import javafx.scene.paint.*;
import javafx.stage.Stage;public class FXRecordButton
implements Intf, FXObject
{ public static Object javafx$run$(Sequence _$UNUSED$_$ARGS$_)
{
javafx.stage.Stage.Intf jfx$5objlit = new Stage(true);
jfx$5objlit.get$title().setFromLiteral("JavaFx Record Button");
jfx$5objlit.get$width().setAsDoubleFromLiteral(249D);
jfx$5objlit.get$height().setAsDoubleFromLiteral(251D);
jfx$5objlit.get$visible().setAsBooleanFromLiteral(true);
javafx.scene.Scene.Intf jfx$6objlit = new Scene(true);
javafx.scene.paint.LinearGradient.Intf jfx$7objlit = new LinearGradient(true);
jfx$7objlit.get$javafx$scene$paint$LinearGradient$startX().setAsDoubleFromLiteral(0.0D);
jfx$7objlit.get$javafx$scene$paint$LinearGradient$startY().setAsDoubleFromLiteral(0.0D);
jfx$7objlit.get$javafx$scene$paint$LinearGradient$endX().setAsDoubleFromLiteral(0.0D);
jfx$7objlit.get$javafx$scene$paint$LinearGradient$endY().setAsDoubleFromLiteral(1.0D);
jfx$7objlit.get$javafx$scene$paint$LinearGradient$proportional().setAsBooleanFromLiteral(true);
SequenceBuilder jfx$8sb = new SequenceBuilder(TypeInfo.getTypeInfo());
javafx.scene.paint.Stop.Intf jfx$9objlit = new Stop(true);
jfx$9objlit.get$javafx$scene$paint$Stop$offset().setAsDoubleFromLiteral(0.0D);
jfx$9objlit.get$javafx$scene$paint$Stop$color().setFromLiteral(Color.$WHITE.get());
jfx$9objlit.initialize$();
jfx$8sb.add(jfx$9objlit);
javafx.scene.paint.Stop.Intf jfx$10objlit = new Stop(true);
jfx$10objlit.get$javafx$scene$paint$Stop$offset().setAsDoubleFromLiteral(1.0D);
jfx$10objlit.get$javafx$scene$paint$Stop$color().setFromLiteral(Color.$BLACK.get());
jfx$10objlit.initialize$();
jfx$8sb.add(jfx$10objlit);
jfx$7objlit.get$javafx$scene$paint$LinearGradient$stops().setAsSequenceFromLiteral(jfx$8sb.toSequence());
jfx$7objlit.initialize$();
jfx$6objlit.get$fill().setFromLiteral(jfx$7objlit);
jfx$6objlit.get$content().setAsSequenceFromLiteral(Sequences.emptySequence(javafx/scene/Node$Intf));
jfx$6objlit.initialize$();
jfx$5objlit.get$scene().setFromLiteral(jfx$6objlit);
jfx$5objlit.initialize$();
return jfx$5objlit;
} public void initialize$()
{
addTriggers$(this);
userInit$(this);
postInit$(this);
InitHelper.finish(new AbstractVariable[0]);
} public static void addTriggers$(Intf intf)
{
} public FXRecordButton()
{
this(false);
initialize$();
} public FXRecordButton(boolean dummy)
{
} public static void userInit$(Intf intf)
{
} public static void postInit$(Intf intf)
{
} public static void main(String args[])
throws Throwable
{
Entry.start(FXRecordButton, args);
}}就是上面这个东西额 总结下JAVAFX是一种简化了的GUI语言
当然 你也可以用java去写这些 当然需要继承javafx的类
javafx生成的是class文件 跟java的原理那叫一个一模一样
2,*.fx文件运行前是否会编译成.class文件,或其它文件。
3,如果我写完了一个工程,想要放到其它机子去运行要做哪些工作。
比如以前一个java工程,如果其它机子有jvm,我只要将.class和相应的.jar文件copy过去就行了。1. 这个肯定的哇
2. 这个肯定的哇
3. 这个肯定的哇