我有一个有五个按钮的应用程序:
i)方形ii)矩形iii)圆圈iv)三角形v)透明
单击前四个按钮中的任何一个将在绘图画布上绘制一个形状(这是一个JPanel)。
现在绘制的形状存储在名为 Shapes 的ArrayList中。现在,我想让用户点击任何形状并将其拖动到屏幕上。
这就是我的项目按类别组织的方式:
i)广场 ii)矩形 iii)圈子 iv)三角形 v)绘制画布(用于绘制形状的JPanel) vi)应用程序(用户界面)
这是我到目前为止所做的:
第一种方法检查鼠标光标是否在绘制的形状内。第二种方法绘制正方形。
上述鼠标事件处理程序应该在画布上拖动形状。但是,形状没有被拖动。我该如何解决这个问题?
注意
当单击四个按钮中的任何一个按钮时,形状会被正确添加到arraylist中。什么是行不通的拖延。
答案 0 :(得分:0)
您可以查看我几年前为此类任务编写的定制器框架:使用鼠标移动和调整组件大小并允许进一步自定义。 “Snap-to-grid”特色包括在内!
它还支持使用JXIconCustomizer和ShapeIcon移动形状。
也许你觉得它很有用。 (它是开源的!)
我开始写一个教程(仍在建设中!):
http://softsmithy.sourceforge.net/lib/docs/tutorial/swing/customizer/index.html
有关添加组件的信息,请参阅:
http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/CustomizerBar.html
要自定义属性,请使用:
将其注册到JCustomizerPane的SelectionManager,并设置JCustomizer对象的CustomizableProperties属性。
另请参阅JCustomizer的子类。
E.g。有
图像定制器&形状:
http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JXIconCustomizer.html
带内联编辑的标签自定义程序:
http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLabelCustomizer.html
线路定制器:
http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLine2DCustomizer.html
还有许多类为菜单和工具栏操作提供支持。 (包含对某些“Java外观和感觉图形存储库”操作的支持。)
查看* .swing和* .swing.action包。
只要问你是否找不到它们。
主页:
下载:
http://sourceforge.net/projects/softsmithy/files/softsmithy/
的Maven:
<dependency>
<groupid>org.softsmithy.lib</groupid>
<artifactid>softsmithy-lib-core</artifactid>
<version>0.2</version>
</dependency>
API: