gpt4 book ai didi

Java Swing/AWT - 使用上下文菜单绘制对象

转载 作者:行者123 更新时间:2023-11-30 06:30:32 29 4
gpt4 key购买 nike

我想做一些类似于图表编辑器的东西——一个允许用户在 Canvas 上创建、查看和编辑一堆形状的应用程序。我的 GUI 基本上由三个部分组成 - 一个标准的 JMenuBar、一个位于右侧的 JPanel 用于显示有关形状的信息以及旁边的一个 JPanel 用于可视化形状。

除此之外,我还有一个定义形状的包。为了简单起见,假设只有一个 Square,包含以下信息: Canvas 上的坐标、大小、用户定义的名称和描述、颜色。项目的主类(JFrame 的扩展)包含 Squares 列表。

现在,我可以通过简单地使用 drawrect 和诸如此类的东西在 JPanel 中绘制它们来可视化这些形状,但我想创建一个交互式编辑器 - 如果用户右键单击可视化的形状,将弹出一个上下文菜单允许他移动它,改变它的属性或完全删除形状。单击 JPanel 中的空白点将允许用户(再次通过菜单)创建新形状。

有没有一种自动化的方法来执行此操作,而不是手动保持矩阵将 Canvas 的每个像素映射到特定形状并在右键单击时检查它?一个我可以说的地方,例如,在 JPanel 中绘制它并在点击时做一些事情......一个相关的问题,当我在 JPanel 中编辑形状时,如何访问主应用程序类中的 Square/Circle 列表,以便我可以真正改变它?我想这很简单,但现在我不知道该怎么做。

请给我指明正确的方向,任何提示、示例、相关教程的链接都将不胜感激......

最佳答案

正如@eugener 所建议的,实现 Shape 的类接口(interface)有一个 contains() 方法,对此很有用。 GraphPanel是说明您提到的几个功能的示例。

关于Java Swing/AWT - 使用上下文菜单绘制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367762/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com