按JButton后如何更改绘制项目的颜色?

时间:2016-05-06 23:15:11

标签: java swing awt

所以程序开了一辆车,我要制作三个按钮,一个用于闪光灯以初始化闪光能力,一个用于左侧,一个空间向左移动一个空间,一个用于移动汽车右边一个空格。我的问题是每次按下按钮时如何更改颜色?总而言之,我不知道如何在闪烁打开时每次按下按钮时让对象改变它的颜色。我假设我使用paint()

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果要绘制图像,则需要加载不同颜色的其他图像文件,然后再绘制该图像。您将使用当前用于绘制汽车的任何方法执行此操作。

如果您正在绘制某种形状或文字,可以在绘制形状之前在传递给g.setColor()paint()方法的图形对象上调用paintComponent()

答案 1 :(得分:0)

有很多方法可以做到这一点。但基本要求是,有一种Object可以告诉它何时应该改变颜色,然后它会采取适当的行动并相应地更新UI。

你可以......

使用简单的JPanel作为对象的表示形式,并在需要更改颜色时简单地将其称为setBackground颜色方法。

这假设您要使用LayoutManager来定位面板。虽然它确实可行,但需要对整体设计进行一些思考

你可以......

使用JPanel并覆盖它的paintComponent方法并在那里绘制颜色变化。在最简单的层面上,这是过度的,但如果你也想画一辆"汽车"或者"汽车"的图像,然后这变得更有意义,特别是如果你想根据它移动的方向旋转汽车

有关详细信息,请参阅Painting in AWT and SwingPerforming Custom Painting2D Graphics

闪烁

我认为你的意思是你希望以某种方式对对象进行动画制作并且#34;闪烁"打开和关闭。

这很容易通过使用Swing Timer来实现,它可以用来改变简单标志的状态,改变渲染组件的方式。

有关详细信息,请参阅How to use Swing Timers

要消除这一点的重要概念是创建一个对象,它将需求封装在一起,方便您使用,因此当您启用闪存时,您所做的就是调用setFlashing(boolean)方法并且该对象负责其余的