JavaFX
Регистрация
Advertisement

Документация по 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   
}
ExampleLabel



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   
}
ExampleButton



Menu ( Меню )

MenuBar ( Линейка меню )
  • Класс: MenuBar
  • исходный код: MenuBar.fx
  • аттрибуты:
имя тип описание
menus Menu*


Menu ( Меню )
  • Класс: Menu
  • исходный код: Menu.fx
  • аттрибуты:
имя тип описание
text String текст меню
mnemonic KeyStroke?
items AbstractMenuItem* элементы меню


MenuItem ( Пункт меню )
  • Класс: MenuItem
  • исходный код: MenuItem.fx
  • аттрибуты:
имя тип описание
text String текст элемента меню
icon Icon? иконка
action function():* действие, производимое элементом меню при нажатии


MenuSeparator ( Разделительная линия )


Пример с Menu
Пример использования Картинка
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   
}
ExampleMenu



Таблица

TableColumn ( Колонка таблицы )
  • Класс: TableColumn
  • исходный код: TableColumn.fx
  • аттрибуты:
имя тип описание
text String Текст колонки


TableCell ( Ячейка таблицы )
  • Класс: TableCell
  • исходный код: TableCell.fx
  • аттрибуты:
имя тип описание
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
}
ExampleTable



Layouts (Компоновщики)

FlowPanel ( Потоковый компоновщик )
  • Класс: FlowPanel
  • исходный код: FlowPanel.fx
  • аттрибуты:
имя тип описание
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
}
ExampleFlowPanel


BorderPanel
  • Класс: BorderPanel
  • исходный код: BorderPanel.fx
  • аттрибуты:
имя тип описание
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
}
ExampleBorderPanel




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   
}
ExampleCircle



Преобразования

Rotate (Вращение)
  • Класс: Rotate
  • исходный код: Rotate.fx


Пример использования Картинка
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
}
FXRotate



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
}
Картинка
ExampleCompositeTransform

Обработка пользовательских событий в языке 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   
}
ExampleButton


Обработки события, связанного с нажатием кнопки мыши

Пример использования Картинка
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   
}
ExampleMouseCanvas
Advertisement