Документация по JavaFX API
JavaFX Script API Javadoc по классам JavaFX
F3 Classes Описание JavaFX классов с блога Криса Оливера
Базовые классы языка JavaFX
Widgets
Label ( Метка )
Класс: Label
исходный код: Label.fx
аттрибуты:
имя
тип
описание
text
String
Текст метки
Пример использования
Картинка
import javafx.ui.*;
Frame {
title: "JavaFX Label"
width: 200
height: 50
content: Label {
text: "Hello World!"
}
visible: true
}
Button ( Кнопка )
Класс: Button
исходный код: Button.fx
аттрибуты:
имя
тип
описание
text
String
Текст кнопки
icon
Icon?
иконка
action
function()
действие, которое исполняет кнопка при нажатии
Пример использования
Картинка
import javafx.ui.*;
import java.lang.System;
Frame {
title: "JavaFX Button"
width: 200
height: 100
content: Button {
text: "Click Me"
action: operation(){
System.out.println("Button is pressed");
}
}
visible: true
}
Класс: MenuBar
исходный код: MenuBar.fx
аттрибуты:
имя
тип
описание
menus
Menu*
Класс: Menu
исходный код: Menu.fx
аттрибуты:
имя
тип
описание
text
String
текст меню
mnemonic
KeyStroke?
items
AbstractMenuItem*
элементы меню
имя
тип
описание
text
String
текст элемента меню
icon
Icon?
иконка
action
function():*
действие, производимое элементом меню при нажатии
Пример использования
Картинка
import javafx.ui.*;
import java.lang.System;
Frame {
title: "JavaFX Menu"
width: 200
height: 100
menubar: MenuBar {
menus: Menu {
text: "Menu"
items: foreach (name in ["Menu1", "Menu2", "Menu3"])
MenuItem {
text: name
action: operation() {
System.out.println("MenuItem: {name}");
}
}
}
}
visible: true
}
Таблица
TableColumn ( Колонка таблицы )
имя
тип
описание
text
String
Текст колонки
TableCell ( Ячейка таблицы )
имя
тип
описание
text
String
Текст ячейки
Bold text
Table ( Таблица )
Класс: Table
исходный код: Table.fx
аттрибуты:
имя
тип
описание
columns
TableColumn+
Колонки таблицы
cells
TableCell*
Ячейки таблицы
Пример с таблицей
Здесь приведен пример таблицы квадратов и кубов для цеых чисел
Пример использования
Картинка
import javafx.ui.*;
import java.lang.System;
var N = 4;
Frame {
title: "JavaFX Table"
width: 300
height: 150
onClose: operation(){ System.exit(0); }
content: Table {
columns: [
TableColumn {
text: "number"
},
TableColumn {
text: "square"
},
TableColumn {
text: "cube"
}]
cells: bind foreach(n in [1..N])[
TableCell {
text: "{n}"
},
TableCell {
text: bind "{n * n}"
},
TableCell {
text: bind "{n * n * n}"
},
]
}
visible: true
}
Layouts (Компоновщики)
FlowPanel ( Потоковый компоновщик )
имя
тип
описание
content
Widget*
Пример использования
Картинка
import javafx.ui.*;
Frame {
title: "JavaFX FlowPanel"
width: 400
height: 100
content: FlowPanel{
content: [
Label{ text: "Label1" },
Label{ text: "Label2" },
Label{ text: "Label3" },
]
}
visible: true
}
BorderPanel
имя
тип
описание
top
Widget?
bottom
Widget?
center
Widget?
left
Widget?
right
Widget?
Пример использования
Картинка
import javafx.ui.*;
Frame {
title: "JavaFX BorderPanel"
width: 400
height: 200
content: BorderPanel{
top : Button{ text: "Top" }
center: Button{ text: "Center" }
bottom: Button{ text: "Bottom" }
left : Button{ text: "Left" }
right : Button{ text: "Right" }
}
visible: true
}
Nodes
Circle( окружность )
Класс: Circle
исходный код: Circle.fx
аттрибуты:
имя
тип
описание
cx
Number
x координата
cy
Number
y координата
radius
Number
радиус
Пример использования
Картинка
import javafx.ui.*;
import javafx.ui.canvas.*;
Frame {
title: "JavaFX Circle"
width: 200
height: 100
content: Canvas {
content: Circle {
cx : 100
cy : 30
radius: 25
fill: yellow
stroke: green
}
}
visible: true
}
Преобразования
Rotate (Вращение)
Пример использования
Картинка
import javafx.ui.*;
import javafx.ui.canvas.*;
import java.lang.System;
Frame {
title: "JavaFX Rotate"
width: 200
height: 150
onClose: operation(){ System.exit(0); }
content: Canvas {
content: Rect{
transform: rotate(30, 100, 50 )
x : 70
y : 25
width: 60
height: 50
fill: orange
stroke: green
}
}
visible: true
}
CompositeTransform
Класс: CompositeTransform
Исходный код находится внутри файла Transform.fx
Основные аттрибуты:
transforms: Transform* - список преобразований
Пример использования
import javafx.ui.*;
import javafx.ui.canvas.*;
pointScale:Transform = function (x:Number, y:Number, pointX:Number, pointY:Number) {
return CompositeTransform {
transforms: bind [translate(pointX, pointY), scale(x,y), translate(-pointX,-pointY)]
};
};
var cx = 100;
var cy = 75;
var w = 20;
var h = 40;
Frame {
title: "CompositeTransform"
width: 200
height: 200
content: BorderPanel{
center: Canvas {
content: [ Rect{
transform: [ rotate(25,cx,cy), pointScale(3, 1, cx, cy) ]
x: cx - w
y: cy - h
width: 2 * w
height: 2 * h
fill : orange
},
Circle {
cx : cx
cy: cy
radius: 2
fill: blue
}
]
}
}
visible: true
}
Картинка
Обработка пользовательских событий в языке JavaFX
Обработки события, связанного с нажатием кнопки
Пример использования
Картинка
import javafx.ui.*;
import java.lang.System;
Frame {
title: "JavaFX Button"
width: 200
height: 100
content: Button {
text: "Click Me"
action: operation(){
System.out.println("Button is pressed");
}
}
visible: true
}
Обработки события, связанного с нажатием кнопки мыши
Пример использования
Картинка
import javafx.ui.*;
import javafx.ui.canvas.*;
import java.lang.System;
Frame {
title: "Mouse Events"
width: 200
height: 100
content: Canvas {
var x = 100
var y = 30
content: Circle {
cx : bind x
cy : bind y
radius: 25
fill: orange
stroke: green
onMousePressed: operation(e:CanvasMouseEvent){
System.out.println("Mouse pressed x={e.x} y={e.y}");
}
onMouseReleased: operation(e:CanvasMouseEvent){
System.out.println("Mouse released x={e.x} y={e.y}");
}
onMouseDragged: operation(e:CanvasMouseEvent) {
var xy = e.localDragTranslation;
x += xy.x;
y += xy.y;
}
}
}
visible: true
}