Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有一种方法可以继续在JPanel上添加图形而不必重做当前图形(即使用repaint()方法)?_Java_Swing_User Interface_Paintcomponent_Graphics2d - Fatal编程技术网

Java 有没有一种方法可以继续在JPanel上添加图形而不必重做当前图形(即使用repaint()方法)?

Java 有没有一种方法可以继续在JPanel上添加图形而不必重做当前图形(即使用repaint()方法)?,java,swing,user-interface,paintcomponent,graphics2d,Java,Swing,User Interface,Paintcomponent,Graphics2d,我目前已经重写了paintComponent(),当程序开始运行时,在我的JPanel上画三个点。每次用户按下一个按钮,我想再加一个点。我知道我可以保留一个对象列表作为一个字段,让paintComponent()迭代并绘制每个对象,但我计划进行1000次迭代(这是一个混乱的游戏),每次重新绘制时迭代一个大列表可能会耗费大量时间。我想避免这种情况。有什么建议吗?使用BuffereImage-就我个人而言,我建议在您尝试进行更多优化之前,先看看1000个点的渲染效果如何-这可能会让您感到惊讶,请查看

我目前已经重写了paintComponent(),当程序开始运行时,在我的JPanel上画三个点。每次用户按下一个按钮,我想再加一个点。我知道我可以保留一个对象列表作为一个字段,让paintComponent()迭代并绘制每个对象,但我计划进行1000次迭代(这是一个混乱的游戏),每次重新绘制时迭代一个大列表可能会耗费大量时间。我想避免这种情况。有什么建议吗?

使用
BuffereImage
-就我个人而言,我建议在您尝试进行更多优化之前,先看看1000个点的渲染效果如何-这可能会让您感到惊讶,请查看1)迭代对象列表和2)绘制BuffereImage的工作示例。它包含了每种方法的一些赞成/反对意见。因此,请确定哪种方法与您的需求最相关。使用
BuffereImage
-就我个人而言,我建议您在尝试进行更多优化之前,先看看渲染1000个点的效果如何-这可能会让您感到惊讶,请查看1)迭代对象列表和2)绘制BuffereImage的工作示例。它包含了每种方法的一些赞成/反对意见。因此,决定哪种方法与您的需求最相关。