【发布时间】:2020-05-20 20:30:59
【问题描述】:
我试图弄清楚是否有任何方法可以根据 if/else 语句或使用 ActionListener 来绘制图像(drawRect()、drawOval() 等)。
我不想发布完整的问题,因为这是针对作业,而是针对我自己的场景:
如果我在JPanel 上有一个名为“绘制矩形”的按钮,并且我有来自用户输入的 x、y、宽度和高度,有什么方法可以将 actionListener 附加到“绘制矩形”以某种方式使用这些值绘制矩形(通过引用传递?)。
我知道我可以使用paintComponent,但我不能将它放入ActionListener,而且它似乎是按照自己的意愿做事,而不是基于特定用户的操作。
我真的没有任何代码,因为我根本不知道该怎么做。
【问题讨论】:
-
你可以让一个动作监听器更新你类中的一些状态,调用
repaint(),然后让paintComponent根据状态的更新方式绘制一些东西。 -
监听器通常会有对输入组件的引用(如果你用 lambda 定义它,这很简单),然后它会读出值并用 @ 向事件线程发送命令987654329@.
标签: java swing actionlistener draw paintcomponent