Java 绘制100条随机线-增加尺寸和速度?
此代码将快速生成非常小的随机红线。我只需要产生100行,使他们更大,并有一个计时器为5秒。我真搞不懂它的尺寸到底在哪里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
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行-提示:你不能使用循环