Wypełnienie ramki kwadratami

1

Cześć, mam problem z kodem. Coś mi nie działa.
Ma on wypełniaż ramke kwadratami 10x10 o różnych kolorach
Mógłby ktoś zerknąć?
Dzięki

import java.awt.*;

public class Rysowanie extends Frame {
    public static int w;
    public static int h;
    boolean p;
    int x,y,z;
    public int m = 0;
    public int n = 0 ;
    int a;
    public Rysowanie(int width, int height, boolean b){
        w = width;
        h = height;
        p = b;
        this.setSize(w,h);
        this.setVisible(p);
        }

    public void paint(Graphics g){
        w = getWidth();
        h = getHeight();    

        do{
            m = 0;
            n = 0;
            do{         
            g.setColor(losowanie());
            g.fillRect(m,n, 10, 10);
            m+=10;
            }while (m<=w);
            n+=10;
            }while (n<=h);

        /*m=0;
        n=0;
        while (n<h) {
          while (m<w) {
            g.setColor(losowanie());
            g.fillRect(m,n,10,10);
            m=m+10;}
            n=n+10;}*/

        /*if(w>=h)
            a=w;
        else
            if(h>=w)
                a=h;
        do{
            g.setColor(losowanie());
            g.fillRect(w/2 - a/2 , h/2 - a/2, a, a);
            a-=40;
        }while(a>=10);*/

    }
    public Color losowanie(){
        x = (int)(Math.random()*255);
        y = (int)(Math.random()*255);
        z = (int)(Math.random()*255);
        return new Color(x,y,z);
        }

    public static void main(String[] args){
    Rysowanie k = new Rysowanie(500,500,true);

    }
}
0

Zrobilem ten program od nowa, tak na szybko. Jakby cos nie dzialalo, albo inaczej mialyby byc rysowane te kwadraty, to napisz.


Klasa Kwadraty.java

import javax.swing.JFrame;

public class Kwadraty
{
public static void main(String[] args)
{
RamkaKwadratow ramka = new RamkaKwadratow();
ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ramka.show();
}
}


Klasa RamkaKwadratow.java

import java.awt.Container;
import javax.swing.JFrame;

class RamkaKwadratow extends JFrame
{
public RamkaKwadratow()
{
setTitle("Kwadraty");
setSize(SZEROKOSC, WYSOKOSC);
setLocation(300, 300);
setResizable(false);

    // dolaczenie panelu do ramki
    PanelKwadratow panel = new PanelKwadratow();
    Container powZawartosci = getContentPane();
    powZawartosci.add(panel);
}

public static final int SZEROKOSC = 400;
public static final int WYSOKOSC = 400;

}


Klasa PanelKwadratow.java

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;

import javax.swing.JPanel;

class PanelKwadratow extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;

    for(int i=0; i<10; i++)
    {
        Point2D p = losujKwadrat();
        Rectangle2D pros = new Rectangle2D.Double(p.getX(), p.getY(), 10, 10);
        g2.draw(pros);
        g2.setPaint(losujKolor());
        g2.fill(pros);
    }
}

public static Color losujKolor()
{
    int x = (int)(Math.random()*255);
    int y = (int)(Math.random()*255);
    int z = (int)(Math.random()*255);

    return new Color(x,y,z);
}

public static Point2D losujKwadrat()
{
    int x = (int)(Math.random()*350);
    int y = (int)(Math.random()*350);

    return new Point2D.Double(x,y);
}

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0