JavaFX:具有自定义边界rect和paint方法的Rectangle

时间:2014-03-22 03:37:39

标签: javafx paint

我想做什么: 在PySide中,可以覆盖paintEvent()的{​​{1}}方法来绘制自定义小部件。可以通过覆盖QWidget方法来自定义边界矩形。

如何在JavaFX中执行此操作?我的目标是创建一个自定义boundingRect()对象,它自己比它的边界矩形小。


在上下文中: 我在JavaFX中创建了MS Paint克隆。我正在使用您选择/移动像素的选择框。我希望光标在选择框的外部附近时更改为适当的调整大小光标。

但是,边界矩形与屏幕上绘制的选择框大小相同,因此光标仅在框顶部时更改,但在靠近时不会更改。我的解决方案是将边界矩形设置为大于实际选择框,因此将发生光标更改。然后,覆盖它的Rectangle等效于绘制一个较小的选择框。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我有一个类似的用例,在这里问了一个类似的问题:Drawing transform independent layout bounds in JavaFX

JavaFX API比Java2D或PySide要高得多(我从你的片段中假设,因为我实际上从未听说过它;)),它不允许你覆盖节点的绘制,也不能阻止节点继承其父变换。

这意味着您需要一个与您的内容并行的单独组,您可以在其中创建选择框并根据您的需要进行更新(内容更改等)。

示例SceneGraph:

  • 场景
    • contentGroup的
      • someShapeFromUser
    • selectionBoxGroup
      • selectionBoxOfSomeShapeFromUser