【问题标题】:How to add another circle in java coding如何在java编码中添加另一个圆圈
【发布时间】:2013-06-15 15:31:04
【问题描述】:

所以今天我正在制作一个程序,因为我还是一个初学者,我还在学习,但我想知道如何添加另一个圆圈,例如我有两个单元,红色和蓝色,我已经添加了随机选择 x 和 y 位置的随机化,但是当我点击开始时,它只显示一个红色的圆圈,蓝色的圆圈甚至不存在,我知道我没有做一些编码,但这是我的程序,拜托帮助谢谢:)

所以 yh :) 提前谢谢。

【问题讨论】:

  • 您需要添加一些Collectionslike List/ArrayList,您可以在其中保留您的 Circle 的每个实例,以便以后绘制。 example 为您提供帮助。下面的答案中提到的要点无疑需要得到重视,因为它们确实说明了你在方法中做错了什么:-)
  • 如需尽快获得更好的帮助,请发帖SSCCE。 (一个没有十几个文本字段,java.applet.Applet & 的导入显然不必要地使用了 Swing 和 AWT(例如 TextField)组件的组合。在这种情况下,您将使用 JTextField
  • 而且Swing默认是双缓冲的,所以你不用担心双缓冲。

标签: java swing coding-style awt paint


【解决方案1】:

这里有几件事要改变:

  • 删除所有 AWT 组件(Canvas、Panel 等...)并将它们替换为等效的 Swing 组件(JPanelJTextField...)。这将避免呈现问题并带来双缓冲(无需执行任何代码)。
  • 永远不要使用c.getGraphics()
  • 覆盖paintComponent(Graphics g) 并使用那里提供的Graphics g 参数(另请参阅此link for some example
  • 要执行“动画”,请使用javax.swing.Timer。 UI 的所有更新都必须在 EDT(事件调度线程)上完成。另请阅读concurrency in Swing
  • 使用JOptionPane.showMessageDialog(或任何其他对话框)时,请提供有效的parent 组件,而不是null。这将允许正确的窗口父级(避免对话框被其他框架隐藏)。

【讨论】:

    猜你喜欢
    • 2020-03-02
    • 1970-01-01
    • 2013-11-22
    • 2016-02-21
    • 1970-01-01
    • 2011-03-10
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多