【发布时间】:2013-06-30 21:49:34
【问题描述】:
所以我在单击时将 Ellipse2D.Float 添加到 JPanel(和 ArrayList)。我想知道完成此操作后是否可以移动形状(例如,通过 shift-click)。目前它似乎是静态的,我无法将它拖到任何地方。
此外,有没有可能用一条线连接两个圆,使这条线永久地连接两个圆?当一个圆圈移动时,线会改变为跟随圆圈。
我只是想看看这是否可行,我已经开始编码,但不知道如何做这两件事。任何答案、链接、代码 sn-ps 表示赞赏!
【问题讨论】:
-
标准图纸就是这样——图纸。它立即栅格化(即将由形状定义的路径转换为图形对象)。因此,对象作为独立实体“不再存在”(实际上永远无法直接响应 UI 事件)。您必须独立于绘图处理对象布局/图形(和连接) - 然后根据需要绘制布局/图形(在更新所述对象之后)。当然,我敢肯定,有现有的库。
-
您可以查看引用的示例here。
-
你需要跟踪你想在一个列表中绘制的每个对象!,并且对于任何移动,只需清除(不是整个图形)容器并用新点重绘内容,关于圆圈和您可以向 src 对象添加诸如移动接口之类的行,以将关联的对象移动到,由 src move 触发(触发)
标签: java swing user-interface java-2d ellipse