JavaFX
Advertisement

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


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


Вопросы по языку JavaFX Script[]

Использовать JavaFX из Java[]

Вопрос: Может я еще плохо понял всех принципов, но есть вопрос. Я могу пользоваться классами Java из JavaFX, а наоборот возможно ли? К примеру чтобы в Java можно было создать сцену, и на ней уже манипулировать объектами, созданными в JavaFX.
Ответ: Посмотрите вот здесь на форуме этот вопрос уже обсуждался.

Как написать простую форму входа[]

Вопрос: Хочу написать простую форму входа, после регистрации в которой пользователь попадает на одну из страниц. Сраница соответствует выбраному имени. Как реализовать запуск нужной формы из формы входа, с её последующим закрытием?
Ответ: Вот как раз на форуме подняли похожий вопрос: Login.fx и Main.fx. Посмотрите, это то что вам нужно или нет.

Различия между компилируемым и интерпретируемым JavaFX[]

Вопрос: Какие языковые конструкции допустимы в компилируемой версии, но недопустимы в интерпретируемой?
Ответ: Компилируемая и интерпретируемая версии языка JavaFX Script синтаксически отличаются друг от друга. Так в интерпретирумой версии есть функции и операции ( function and operation), тогда как в компилирумой все это заменено на функции. Если в интерпретируемой версии инициализация атрибутов и определение методов происходило снаружи определения класса, то теперь все определяется внутри объявления класса.
Смотри также: Переход с интерпретируемой на компилируемую версию


Вопрос: Каких jar-файлов будет достаточно для работы с компилируемой версией, а каких - для работы с интерпретируемой?
Библиотеки, необходмые для интерпретируемой версии
javafxrt.jar
Filters.jar
swing-layout.jar
Библиотеки, необходмые для компилируемой версии
javafxc.jar
javafxrt.jar
Scenario.jar

Использование Bean компонентов[]

Вопрос: Можно ли использовать свой компонент (bean) в JavaFX?
Ответ: Вот пример использование JCalendar bean-а в языке JavaFX Script
Пример использования Картинка
import javafx.ui.*;
import javax.swing.*;
import com.toedter.calendar.*;

class JavaBean extends Widget{
    attribute bean: JComponent;
    protected function createComponent():JComponent{
        return bean;
    }
}

Frame{
    title: "Calendar"
    content: JavaBean{
        bean: new JCalendar()
    }
    visible: true
}
Calendar sample

Как объявить статический (static) атрибут или функцию/операцию в JavaFx классе?[]

Вопрос: Как объявить статический (static) атрибут или функцию/операцию в JavaFx классе? Типа static attribute ... Такое слово зарезервировано, но в спецификации не нашел возможность его применения.
Ответ: Объявлять статические атрибуты/функции можно только в компилируемой версии языка JavaFX Script (см установка компилятора). При этом слово static надо вставлять в начало объявления атрибута или функции.
Пример:
import java.lang.System;

class Function{
    static attribute DEBUG:Boolean = false;
    static function add(a:Number,b:Number):Number{
        return a + b;
    }
}

System.out.println("3 + 4 = {Function.add(3,4)}");

Как в обычном интерфейсе сделать "размытый" шрифт?[]

Вопрос: Как в обычном интерфейсе сделать "размытый" шрифт? Нечто вроде antialiased: true
Ответ: Вот примерный код. Он сейчас не работает из за ошибки JFXC-689
import javafx.ui.*;
import javafx.ui.canvas.*;

Frame{
    title: "Smooth Text"
    content:  Canvas{
        content: View{
            antialiasText: true
            content: Label{ text: "Hello World!" }
        }
    }    
    visible: true
}

Работа с интерфейсом во время выполнения скрипта[]

Вопрос: Существует ли в JavaFX возможность динамической работы с созданным интерфейсом пользователя? К примеру, добавление новых пунктов меню или скрытие/отображение определённых элементов контекста, во время выполнения скрипта?
Ответ: Все это можно сделать, используя подходящим образом оператор bind. Например, можно хранить элементы menu в массиве, а массив связать с основным menu. Тогда добавление/удаление элементов массива будет сказываться и на основном menu приложения:
Пример использования Картинка
import javafx.ui.*;

var menus:AbstractMenuItem[];
var num = 1;

insert MenuItem {
    text: "Insert New Menu"
    action: function(){
        insert MenuItem{ text: "Menu {num}" } into menus;
        num = num + 1;
    }
} into menus;

Frame{
    title: "Menu Example"
    menubar: MenuBar{
        menus: Menu{ text: "Main Menu" items: bind menus}
    }
    visible: true    
}
Menu Example
Скрывать/отображать определённые элементы контекста можно, связав с аттрибутом visible элемента некоторую логическую переменную
 var flag = true;
 Button{ text: "Click Me" visible: bind flag }  
Следующий пример показывает, как можно связать массив строк с элементами списка. От первого примера он отличается только тем, что в массиве будут хранится строки, а не ячейки списка:
Пример использования Картинка
import javafx.ui.*;

var animals:String[] = [ "dog", "cat" ];
var animal:String;

Frame{
    title: "Animals"
    content: BorderPanel{
        top: TextField{ text: bind animal with inverse}
        center: ListBox {
            cells: bind for(str in animals){
                ListCell{ text: str}
            }
        }        
        bottom: Button{
            text: "Add Animal"
            action: function(){ insert animal into animals; }
        }
    }
    visible: true
} 
Animals Example

Перечислимые типы[]

Вопрос: Поддерживает ли язык JavaFX Script перечислимые типы, такие как Enumarations в Java?
Ответ: На текущий момент язык JavaFX Script не поддерживает перечислимые типы. Зато в компилируемой версии можно свободно использовать enumerations, написанные на языке Java.
Например:
Day.java
 public enum Day {
   Sunday, Monday,  Tuesday, Wednesday, Thursday, Friday, Saturday    
 }
Example.fx
   import java.lang.System;

   var day = Day.Friday;
   System.out.println("Day is : {day}");

Вопросы, относящиеся к Wiki серверу[]

Задайте здесь свой вопрос[]

Wiki Skin[]

Вопрос: Как настроить Skin для Wiki
Ответ: Чтобы настроить Skin, надо сначала зарегестрироваться на Wiki сервере, потом перейти по ссылке "имя пользователя -> My Preferences", перейти на вкладку Skin и выбрать из того, что там есть.
MonoBook Skin Quartz Sapphire Skin
MonoBook Skin Quartz Sapphire Skin
Advertisement