使用二维图形在Java中绘制随机点

使用二维图形在Java中绘制随机点,java,graphic,Java,Graphic,我是java图形的初学者,我一直试图在JFrame上绘制随机点,但不知道为什么在编译时框架上没有任何内容,对我来说,逻辑很好+没有错误。有人能帮我吗这里怎么了 public class parent extends JPanel { public void PaintComponent (Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g

我是java图形的初学者,我一直试图在JFrame上绘制随机点,但不知道为什么在编译时框架上没有任何内容,对我来说,逻辑很好+没有错误。有人能帮我吗这里怎么了

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的一个很好的问题