ФЭНДОМ


Главная | Описание языка | FXD | API | Примеры | Инструменты Разработки | Новости | Ресурсы | Форум


Как запустить JavaFX программу Править

Существует разные способы запуска программы, написанной на языке JavaFX


Использование скриптового файла javafx Править

Если у вас на диск установлен язык JavaFX с сайта [openjfx.dev.java.net] тогда вы можете запустить программу следующей командой:

Windows

<path-to-openjfx>\trunk\bin\javafx.bat <path-to-javafx-file>\Example.fx

Unix

<path-to-openjfx>/trunk/bin/javafx.sh  <path-to-javafx-file>/Example.fx

Более подробно смотри JavaFX первые шаги

Запуск из коммандной строки с использованием Java Править

Сначала надо добавить в переменную CLASSPATH пути к библиотекам, необходимым для JavaFX ( javafxrt.jar, Filters.jar, swing-layout.jar )

Windows:

 set JFX_LIB= <path-to-openjfx>\trunk\lib
 set CLASSPATH=%CLASSPATH%;%JFX_LIB%\javafxrt.jar;%JFX_LIB%\swing-layout.jar;%JFX_LIB%\Filters.jar

Теперь надо запускать java, передавая в качестве основного класса класс net.java.javafx.FXShell, а в качестве следующего параметра JavaFX файл:

 java net.java.javafx.FXShell Example.fx

Запуск из Java программы с использованием FXShell Править

Самый простой способ запустить JavaFX программу из программы, написанной на Java, это использование класса net.java.javafx.FXShell

Пример

public class Main {
    public static void main(String[] args) {
        try{
            net.java.javafx.FXShell.main(new String[]{"JavaFXExample"});
        } catch (Exception e){
            e.printStackTrace(); // handle the exception
        }
    }
}

Для этого в CLASSPATH надо добавить как и библитотеки, необходимые для JavaFX ( javafxrt.jar, Filters.jar, swing-layout.jar ), так и JavaFX файл, который надо запустить ( JavaFXExample.fx )


Совместное использование JavaFX и Java Править

Чтобы создавать GUI на JavaFX и использовать его в Java программе, можно использовать Java Scripting API

В данном примере рассматривается FXPanel файл который использует myFrame переменную типа main.MyFrame (класс MyFrame описан ниже) чтобы вызвать его метод. FX класс также возвращает JComponent, который мы будем использовать в Java классе.

package main;

import javafx.ui.*;
	
var panel = FlowPanel{
    content: Button {
        text: "Press Me"
        action: operation(){
            (myFrame:<<main.MyFrame>>).buttonPressed();
        }
    }
};

return panel.getComponent();


В классе MyFrame, мы с помощью классов ScriptEngineManager и ScriptEngine создаем FX класс, получаем из него JComponent и кладем JComponent на наше окошко. Теперь при нажатии на кнопку, вызывается метод, определенный в нашем Java классе.

package main;

import javax.swing.JFrame;
import javax.swing.JComponent;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

import java.io.InputStreamReader;

public class MyFrame extends JFrame {

    public MyFrame() throws Exception {
        setTitle("Example Frame");
        setSize(300, 100);

        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByExtension("fx");

        engine.put("myFrame:main.MyFrame", this);
        InputStreamReader reader = new InputStreamReader(MyFrame.class.getResourceAsStream("FXPanel.fx"));
        JComponent myPanel = (JComponent) engine.eval(reader);

        getContentPane().add(myPanel);
    }

    public void buttonPressed() {
        System.out.println("Button is pressed!");
    }

}

Чтобы запустить этот пример, нужна JDK 1.6 и надо иметь в CLASSPATH библиотеки JavaFX (javafxrt.jar, Filters.jar, swing-layout.jar). Оба файла ( FXPanel.fx и MyFrame.java ) надо положить в пакет main.

Использование интегрированных сред разработки (IDE) Править

NetBeans Править

Смотри:

Eclipse Править

Смотри:

JFXBuilder Править

Смотри:

Вопросы и ответы Править

Задайте интересующий вас вопрос по языку JavaFX Script