Реализовать новые компоненты JavaFX, используя GroovyFX? - PullRequest
2 голосов
/ 03 февраля 2012

Мы используем GroovyFX в нашем проекте для создания наших пользовательских интерфейсов.

Он уже обеспечивает поддержку всех собственных компонентов пользовательского интерфейса, таких как TextArea и HTMLEditor, но мы также создаем пользовательский компонент пользовательского интерфейса (который фактически расширяет javafx.scene.web.HTMLEditor).

Как лучше всего реализовать поддержку этого нового компонента в GroovyFX? Под support я имею в виду возможность вызывать его как любой другой компонент:

public static void main(String[] args) {

    def myArea

    GroovyFX.start {
        new SceneGraphBuilder().stage(width: 1024, height: 700, visible: true) {
            scene {
                vbox {
                    myArea = htmlEditor()
                }
            }
        }
    }
}

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Вы можете захотеть взглянуть на

https://github.com/groovyfx-project/groovyfx/blob/develop/groovyfx/src/demo/groovy/CustomFieldDemo.groovy

, который добавляет новый тип узла в SceneGraphBuilder по существу в одну строку.

happy grooving '@Mittie

1 голос
/ 09 февраля 2012

Из списка пользователей GroovyFX:

Вам потребуется создать новую фабрику, чтобы SceneGraphBuilder распознал ваш узел myCustomEditor.

Но простое решение дляваша проблема заключается в следующем:

scene {vbox {myArea = node (new MyCustomEditor ())}}

Используя node (), вы можете добавить экземпляр любого объекта, являющегося узломк графу сцены.

...