好的,长话短说,我正在尝试创建一种聊天/消息系统,需要一点帮助。我正在尝试在我的容器上创建一个箭头,如下图所示。图像是从 ControlsFX 和它们的 PopOver 窗口中取出的。我不能使用他们的弹出窗口小部件,因为它的行为与我使用它的目的有点不同。
我继续创建了我自己的小聊天窗口弹出窗口,它将自己定位在我定义的父对象上,但我真的希望它有一个指向该对象的箭头。箭头也总是面朝下,应该在弹出窗口的左下角。
还应该注意的是,弹出窗口不是一个窗口,它是一个简单的 VBox,填充了文本行。如果需要,我当然可以将其包装在窗格中。谁能想出正确的方法来创建这个箭头?我的 VBox 背景也作为渐变,因此箭头不能像通过 getChildren().add 与“相同颜色”一样放在底部,因为这样渐变就会关闭。它必须(以某种方式)成为容器的一部分。
==================================================== ========================== 编辑:
好吧,所以我今天大部分时间都在学习 SVG 路径,这并不太复杂,但有点乏味。我最终选择的路径是:
"M30 0 h100 a6,6 0 0,1 6,6 v50 a6,6 0 0,1 -6,6 h-88 L38 68 L34 62 h-4 a6,6 0
0,1 -6,-6 v-50 a6,6 0 0,1 6,-6 z"
现在唯一的问题是箭头尾部的高度随着窗格的大小而增长。例如,如果我在框中有很多文本,则窗格的高度会增加(当然)并且箭头也会变长。这种行为并不是完全破坏交易的行为,但这并不是我真正想要的。我希望路径中的大写 Ls 确保箭头的点无论如何都保持不变,但它不起作用。对此有什么想法吗?