ФЭНДОМ


Главная | Описание языка | 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

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики