Java 当单击不同的按钮时,使画布对象绘制不同的形状?
我通常用Python编程,但几个小时前一些朋友问我是否可以帮助他们完成Java作业。所以我从几个小时前开始学习Java 无论如何,他们需要一个程序,直观地演示在高速行驶时空气动力学如何影响某些物体。不过没什么复杂的,可能只是一个球左右,所以一个简单的圆圈就足够了Java 当单击不同的按钮时,使画布对象绘制不同的形状?,java,awt,Java,Awt,我通常用Python编程,但几个小时前一些朋友问我是否可以帮助他们完成Java作业。所以我从几个小时前开始学习Java 无论如何,他们需要一个程序,直观地演示在高速行驶时空气动力学如何影响某些物体。不过没什么复杂的,可能只是一个球左右,所以一个简单的圆圈就足够了 我刚刚掌握了ActionListeners之类的技巧,但是我如何才能在单击鼠标按钮时更改画布对象中显示的对象呢?到画布,在侦听器的mouseClicked()方法中,更改画布绘制的对象的状态,并调用画布repaint()方法,以便画布根
我刚刚掌握了ActionListeners之类的技巧,但是我如何才能在单击鼠标按钮时更改画布对象中显示的对象呢?到画布,在侦听器的
mouseClicked()
方法中,更改画布绘制的对象的状态,并调用画布repaint()
方法,以便画布根据修改后的状态重新绘制自身。到画布,在侦听器的mouseClicked()
方法中,更改画布绘制的对象的状态,并调用画布repaint()
方法,以便画布重新绘制自身,基于修改的状态。我建议扩展JPanel
并使用paintComponent()
而不是Canvas
,因为这是非常过时的AWT东西。基本上,您需要做的是向您最终使用的任何调色板(Canvas
或JPanel
)添加一个MouseListener
),并在侦听器的覆盖mouseClicked()
中,绘制您喜欢的内容。每次更改后也可以调用repaint()
(您可以创建一个计时器定期为您执行此操作-请参阅问题的第一个答案)
当涉及到绘制球时,我建议使用Java2D API(请看
Ellipse2D
),而不是简单的drawOval()
(一开始可能看起来是简单的解决方法)。原因在于Ellipse2D
允许您使用一系列非常有用的方法(例如,请参见setFrame()
),它是一个维护状态的“真实对象”。使用Ellipse2D
作为形状的图形表示,可以轻松地使用composition创建具有所需行为的形状类。然而,要使用drawOval()
,而不创建一碗杂乱的程序面条,则要困难得多 我建议扩展JPanel
并使用paintComponent()
而不是Canvas
,因为这是非常过时的AWT东西。基本上,您需要做的是向您最终使用的任何调色板(Canvas
或JPanel
)添加一个MouseListener
),并在侦听器的覆盖mouseClicked()
中,绘制您喜欢的内容。每次更改后也可以调用repaint()
(您可以创建一个计时器定期为您执行此操作-请参阅问题的第一个答案)
当涉及到绘制球时,我建议使用Java2D API(请看
Ellipse2D
),而不是简单的drawOval()
(一开始可能看起来是简单的解决方法)。原因在于Ellipse2D
允许您使用一系列非常有用的方法(例如,请参见setFrame()
),它是一个维护状态的“真实对象”。使用Ellipse2D
作为形状的图形表示,可以轻松地使用composition创建具有所需行为的形状类。然而,要使用drawOval()
,而不创建一碗杂乱的程序面条,则要困难得多 “我急需你的帮助。”我建议你雇一个人,给他们支付紧急费用。投票以“过于本地化-特定时间”结束。“我迫切需要你的帮助。”我建议你雇用一个人,并支付紧急费率。投票以“过于本地化-特定的时间点”结束。各点+1,但大部分是“一碗混乱的程序面”。嗯。。面条+1分,但大多是“一碗凌乱的面条”。嗯。。面条