Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Создание сложных графических объектов


Автор: slavchoo2 30.4.2010, 20:02
Пишу курсовую на javaFX, суть в том что есть карта, а страны на этой карте состоят из группы гексагонов, так вот каким образом создать класс для стран что бы можно было обвести всю страну обводкой, кликать по ней и т.д. Пробовал наследоваться от CustomNode, но тогда вообще не понимаю как это дело stroke-ом обвести. Буду очень признателен за совет)

Автор: Amp 30.4.2010, 23:47
Например так:
Код

import javafx.scene.CustomNode;
import javafx.scene.Node;
import javafx.scene.shape.Polygon;
import java.lang.Math;
import javafx.scene.paint.Color;
import javafx.scene.input.MouseEvent;

public class Ololo extends CustomNode
{
    public var centerX : Number;
    public var centerY : Number;
    public var radius : Number;
    public var n = 6;

    override protected function create () : Node
    {
        Polygon
        {
            fill: Color.TRANSPARENT
            stroke: Color.BLUE

            points: bind
            for(i in [1 .. 2 * n])
            {
                if (i mod 2.0 == 0) centerX + radius * Math.cos(i * Math.PI / n)
                else centerY + radius * Math.sin(2 * (i / 2 + 1) * Math.PI / n)
            }

            onMouseClicked: function(e : MouseEvent): Void
            {
                println("clicked")
            }
        }
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)