Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 绘制100条随机线-增加尺寸和速度?_Java_Swing_Graphics - Fatal编程技术网

Java 绘制100条随机线-增加尺寸和速度?

Java 绘制100条随机线-增加尺寸和速度?,java,swing,graphics,Java,Swing,Graphics,此代码将快速生成非常小的随机红线。我只需要产生100行,使他们更大,并有一个计时器为5秒。我真搞不懂它的尺寸到底在哪里 import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.u

此代码将快速生成非常小的随机红线。我只需要产生100行,使他们更大,并有一个计时器为5秒。我真搞不懂它的尺寸到底在哪里

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class LinesRandom extends JPanel {

   public void paintComponent(Graphics g) {

      super.paintComponent(g);
      g.setColor(Color.red);

     for (int i = 1; i <= 100000; i++) {
        Dimension size = getSize();
        int w = size.width;
        int h = size.height;
        Random r = new Random();
        int x = (r.nextInt()) % w;
        int y = (r.nextInt()) % h;
        g.drawLine(x, y, x, y);
       repaint();
       }
     }

   public static void main(String[] args) {
      LinesRandom points = new LinesRandom();
      JFrame frame = new JFrame("Points");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.add(points);
      frame.setSize(500, 500);
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
  }
}
导入java.awt.Color;
导入java.awt.Dimension;
导入java.awt.Graphics;
导入java.awt.Graphics2D;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.Random;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入javax.swing.Timer;
公共类LinesRandom扩展了JPanel{
公共组件(图形g){
超级组件(g);
g、 setColor(Color.red);
对于(int i=1;i
我真搞不懂它的尺寸到底在哪里

线条大小由其笔划定义-有关详细信息,请参见

我只需要产生100行…并有一个计时器为5秒

最好的解决方案是使用Swing
计时器,设置更新之间所需的延迟。
计时器充当伪循环,因此您需要跟踪调用它的
ActionListener
的次数,并在达到100时停止它

然后将随机
放入某种
列表
中,当调用
paintComponent
时,绘制这些点之间的线

有关更多详细信息,请参阅

我真搞不懂它的尺寸到底在哪里

线条大小由其笔划定义-有关详细信息,请参见

我只需要产生100行…并有一个计时器为5秒

最好的解决方案是使用Swing
计时器,设置更新之间所需的延迟。
计时器充当伪循环,因此您需要跟踪调用它的
ActionListener
的次数,并在达到100时停止它

然后将随机
放入某种
列表
中,当调用
paintComponent
时,绘制这些点之间的线


有关更多详细信息,请参见

线条的大小由其笔划定义,请查找BasicStroke。不要在pain方法中调用repaint,这会给您带来无尽的麻烦。相反,制作Swing计时器并允许其运行,直到有100行为止-提示:您不能使用循环线条的大小由其笔划定义,请查找BasicStroke。不要在你的pain方法中调用repaint,这会给你带来无尽的麻烦。相反,制作Swing计时器并让它运行直到你有100行-提示:你不能使用循环