2015-02-27 3 views
1

Я пытаюсь создать строку с другой заливки и цвет обводки, что-то вроде этого:JavaFX заполнить цвет линии

enter image description here

Я попытался следующие:

Line line = new Line(0,0,100,100); 
line.setFill(Color.RED); 
line.setStroke(Color.BLACK); 
line.setStrokeWidth(10); 

но это дает мне только черную линию.

Является ли то, что я пытаюсь сделать с помощью простой линии или мне нужно использовать другой Shape? (Я бы предпочел, используя линию, потому что я часто называют setStartX, setStartY, ... методы)

ответ

4

Если вы отметите эту question, вы увидите, что вы можете использовать только setStroke. Кроме того, возможный подход к созданию такого же стиля предлагается с использованием линейного градиента.

Это будет работать (настроить остановки в удобном для более или менее черной ширины):

Line line = new Line(0,0,100,0); 
line.setStrokeWidth(10); 
line.setStroke(new LinearGradient(0d, -5d, 0d, 5d, false, 
       CycleMethod.NO_CYCLE, new Stop(0,Color.BLACK), 
             new Stop(0.199,Color.BLACK), 
             new Stop(0.2,Color.RED), 
             new Stop(0.799,Color.RED), 
             new Stop(0.8,Color.BLACK))); 

line gradient

Следует также отметить, что, поскольку градиент не пропорционально, вам нужно использовать вращение генерировать а не горизонтальные линии.

0

Ответ Хосе Перед изящнее, но я не мог получить математическое право создавать диагональные линии, так как обходной путь, я просто создал две линии, каждую из которых с различным цветом:

Line stroke = new Line(0, 0, 100, 100); 
Line fill = new Line(0, 0, 100, 100); 
stroke.setStrokeWidth(10); 
fill.setStrokeWidth(8); 
stroke.setStroke(Color.BLACK); 
fill.setStroke(Color.RED); 
pane.addAll(stroke, fill); 

Нет математика и я могу продолжать использовать методы setStartX, setStartY, ..., но теперь у меня есть двойное количество строк.

+0

Вы можете просто повернуть линию с помощью 'line.setRotate (45);' для поворота со своего центра или 'line.getTransforms(). Add (new Rotate (45,0,0));' to control опорная точка. –

Смежные вопросы