Recent changes Random page
GAMING
Technology
 
Gaming
Entertainment
Science Fiction
Biggest wikis
Hobbies
Music
See more...

JavaFX Questions and Answers

Материал из JavaFX

Перейти к: навигация, поиск
 

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


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


Содержание

[править] Вопросы по языку JavaFX Script

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

Вопрос: Добавьте свой вопрос к остальным
Ответ:

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

Вопрос: Хочу написать простую форму входа, после регистрации в которой пользователь попадает на одну из страниц. Сраница соответствует выбраному имени. Как реализовать запуск нужной формы из формы входа, с её последующим закрытием?
Ответ: Вот как раз на форуме подняли похожий вопрос: 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.png

[править] Как объявить статический (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 серверу

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

Вопрос: Добавьте свой вопрос к остальным
Ответ:

[править] Не могу добавить картинку

Вопрос: При нажатии на кнопку 'Insert Image' ничего не происходит.
Ответ: Эта временная ошибка связана с переходом всего wiki сервера на новую версию 1.12. Над этой проблемой сейчас работают, результат работы можно найти на странице MediaWiki 1.12 upgrade.
Чтобы обойти проблему, можно загрузить картинку используя Upload file меню и затем вставить картинку в текст используя следующий формат:
[[Изображение:File.png|text]]

[править] Форматирование текста

Вопрос: Как на wiki задавать список, таблицу и т. д.
Ответ: Все это можно найти на странице Wikitext Examples

[править] Wiki Skin

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