JavaFX 线条填充颜色
JavaFX line fill color
我正在尝试创建一条具有不同填充和描边颜色的线条,如下所示:
我试过以下方法:
Line line = new Line(0,0,100,100);
line.setFill(Color.RED);
line.setStroke(Color.BLACK);
line.setStrokeWidth(10);
但这只给了我一条黑线。
我想用一条简单的线来实现,还是我必须使用另一条线 Shape
? (我更喜欢使用一行,因为我必须经常调用 setStartX
、setStartY
、... 方法)
如果你检查这个 ,你会发现你只能使用 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)));
另请注意,由于渐变不成比例,因此您需要使用旋转来生成非水平线。
José Pereda 的回答更优雅,但我无法正确计算创建对角线,因此作为解决方法,我简单地创建了两条线,每条线都有不同的颜色:
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
, ... 线条的方法,尽管我现在的线条数量增加了一倍。
我正在尝试创建一条具有不同填充和描边颜色的线条,如下所示:
我试过以下方法:
Line line = new Line(0,0,100,100);
line.setFill(Color.RED);
line.setStroke(Color.BLACK);
line.setStrokeWidth(10);
但这只给了我一条黑线。
我想用一条简单的线来实现,还是我必须使用另一条线 Shape
? (我更喜欢使用一行,因为我必须经常调用 setStartX
、setStartY
、... 方法)
如果你检查这个 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)));
另请注意,由于渐变不成比例,因此您需要使用旋转来生成非水平线。
José Pereda 的回答更优雅,但我无法正确计算创建对角线,因此作为解决方法,我简单地创建了两条线,每条线都有不同的颜色:
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
, ... 线条的方法,尽管我现在的线条数量增加了一倍。