使用二维图形在Java中绘制随机点
我是java图形的初学者,我一直试图在JFrame上绘制随机点,但不知道为什么在编译时框架上没有任何内容,对我来说,逻辑很好+没有错误。有人能帮我吗这里怎么了使用二维图形在Java中绘制随机点,java,graphic,Java,Graphic,我是java图形的初学者,我一直试图在JFrame上绘制随机点,但不知道为什么在编译时框架上没有任何内容,对我来说,逻辑很好+没有错误。有人能帮我吗这里怎么了 public class parent extends JPanel { public void PaintComponent (Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g
public class parent extends JPanel {
public void PaintComponent (Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.blue);
Dimension size = getSize();
Insets insets= getInsets();
int w = size.width - insets.left - insets.right;
int h = size.height - insets.top - insets.bottom;
Random r = new Random();
for (int i=0; i<1000; i++) {
int x = Math.abs(r.nextInt()) % w;
int y = Math.abs(r.nextInt()) % h;
g2d.drawLine(x, y, x, y);
}
}
public static void main(String[] args)
{
JFrame frame = new JFrame("Points");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new parent());
frame.setSize(250, 200);
frame.setVisible(true);
}
}
公共类父级扩展了JPanel{
公共组件(图形g)
{
超级组件(g);
Graphics2D g2d=(Graphics2D)g;
g2d.setColor(Color.blue);
维度大小=getSize();
Insets Insets=getInsets();
int w=size.width-insets.left-insets.right;
int h=尺寸.高度-插图.顶部-插图.底部;
随机r=新随机();
对于(inti=0;i那么它是PaintComponent
还是应该是PaintComponent
?我想我知道Java开发人员会选择哪一个
请注意,这是注释中的@Override
会在Eclipse中捕获的一个完美错误。从您的代码中,您正在使用绘图线从(x,y)绘制到(x,y)。这将是一个单像素。并且您已将颜色设置为蓝色。因此,无论颜色如何,它都不会非常可见
但除此之外,循环根据随机数R计算X和Y值,但R永远不会被重新计算为新的随机数(在循环之前设置一次,并且永远不会重置)。因此,这将反复1000次地重新绘制同一点
如果你把随机数计算放在循环中,让它在你的随机点周围画一个半径为,哦,5-10像素的圆,它会更明显。然后你就可以实现你的目标了。谢谢你的rpely,但我在每次迭代中都会使用%width或%height i得到新的随机not更为独特,在它进行下一次迭代之前,上一次迭代被绘制出来,这是PaintComponent的一个很好的问题