JavaFX 2.0 Developer Preview SDK for Mac OS X
2012年8月現在はJavaFX 2.2がJDK 7に内蔵されています。
このためjfxrt.jarはクラスパス設定したほうが良いです。
例
setenv CLASSPATH ${CLASSPATH}:/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/jre/lib/jfxrt.jar
fxmlフォルダの中に.javaソースファイルと.fxmlファイルが入っている状態です。
fxmlフォルダの一つ上のディレクトリにおいて
javac fxml/TestFXML.java
実行は
java fxml/TestFXML
Java SE Downloads
<?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import fxml.MyGroup?> <MyGroup fx:controller="fxml.MyGroup" id="Profile" xmlns:fx="http://javafx.com/fxml"> <children> <Button text="Click Me!" onAction="#handleButtonAction" /> <Label fx:id="label" translateX="20" translateY="25" text=""/> <Label fx:id="label2" translateX="20" translateY="45" text=""/> <TextField fx:id="tf3" translateX="20" translateY="65" text=""/> <TextField fx:id="tf4" translateX="20" translateY="85" text=""/> <TextField fx:id="tf5" translateX="20" translateY="105" text=""/> <TextField fx:id="tf6" translateX="20" translateY="125" text=""/> <TextField fx:id="tf7" translateX="20" translateY="145" text=""/> <TextField fx:id="tf8" translateX="20" translateY="165" text=""/> <TextField fx:id="tf9" translateX="20" translateY="185" text=""/> <TextField fx:id="tf10" translateX="20" translateY="205" text=""/> <TextField fx:id="tf11" translateX="20" translateY="225" text=""/> <TextField fx:id="tf12" translateX="20" translateY="245" text=""/> <TextField fx:id="tf" translateX="20" translateY="265" text=""/> </children> </MyGroup >
MyGroup.java
package fxml; import java.net.URL; import javafx.event.ActionEvent; import javafx.fxml.Initializable; import javafx.fxml.FXML; import java.util.ResourceBundle; import javafx.scene.Group; import javafx.scene.control.Label; import javafx.scene.control.TextField; public class MyGroup extends Group implements Initializable{ @FXML private Label label; @FXML private Label label2; @FXML private TextField tf3; @FXML private TextField tf4; @FXML private TextField tf5; @FXML private TextField tf6; @FXML private TextField tf7; @FXML private TextField tf8; @FXML private TextField tf9; @FXML private TextField tf10; @FXML private TextField tf11; @FXML private TextField tf12; @FXML private TextField tf; @FXML private void handleButtonAction(ActionEvent event) { System.out.println("You clicked me!"); label.setText("頑張れ日本 !!!"); label2.setText("負けるな日本 !!!"); tf3.setText("java.vendor = " + System.getProperty("java.vendor") ); tf4.setText("java.vendor.url = " + System.getProperty("java.vendor.url") ); tf5.setText("java.home = " + System.getProperty("java.home") ); tf6.setText("java.awt.graphicsenv = " + System.getProperty("java.awt.graphicsenv") ); tf7.setText("java.class.version = " + System.getProperty("java.class.version") ); tf8.setText("sun.boot.class.path = " + System.getProperty("sun.boot.class.path") ); tf9.setText("java.version = " + System.getProperty("java.version") ); tf10.setText("java.runtime.version = " + System.getProperty("java.runtime.version") ); tf11.setText("os.name = " + System.getProperty( "os.name") ); tf12.setText("os.arch = " + System.getProperty( "os.arch" )); tf.setText("os.version = " + System.getProperty("os.version" ) ); } @Override public void initialize(URL location, ResourceBundle resources) { label.setPrefWidth(150.0); label2.setPrefWidth(150.0); tf3.setPrefColumnCount(50); tf4.setPrefColumnCount(50); tf5.setPrefColumnCount(50); tf6.setPrefColumnCount(50); tf7.setPrefColumnCount(50); tf8.setPrefColumnCount(50); tf9.setPrefColumnCount(50); tf10.setPrefColumnCount(50); tf11.setPrefColumnCount(50); tf12.setPrefColumnCount(50); tf.setPrefColumnCount(50); } }
TestFXML.java
package fxml; import java.io.IOException; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.stage.Stage; public class TestFXML extends Application { public static void main(String[] args) { Application.launch(TestFXML.class, args); } @Override public void start(Stage primaryStage) { MyGroup myGroup = null; try{ myGroup = (MyGroup) FXMLLoader.load(TestFXML.class.getResource("Screen1.fxml")); }catch (IOException ioe){ ioe.printStackTrace(); } primaryStage.setTitle("Test FXML"); primaryStage.setWidth(600); primaryStage.setHeight(360); Scene scene = new Scene(myGroup); primaryStage.setScene(scene); primaryStage.show(); } }