2011-11-20, 19:57
#1
Hellooo!
Jobbar med en ganska enkel uppgift där jag ska skapa ett program som ritar ut ett antal rektanglar och ovaler. Rektanglarna och ovalernas storlek och position ska generas slumpmässigt.
Men jag har ett problem, min kod ritar bara ut EN rektangel eller oval och jag tror det har något med överlappning att göra. Så jag behöver hjälp med att hitta mitt fel.
RandomShape
RandomRect
RandomOval
Är tacksam för all hjälp!!
Jobbar med en ganska enkel uppgift där jag ska skapa ett program som ritar ut ett antal rektanglar och ovaler. Rektanglarna och ovalernas storlek och position ska generas slumpmässigt.
Men jag har ett problem, min kod ritar bara ut EN rektangel eller oval och jag tror det har något med överlappning att göra. Så jag behöver hjälp med att hitta mitt fel.
RandomShape
Kod:
import java.awt.*; import javax.swing.*; import java.lang.*; public class RandomShape extends JFrame { private int n; //Instansvariabel public RandomShape() {} public RandomShape(int antal) { n = antal; for(int i=1; i<n; i++) add(generateRandomShape()); setBackground(Color.white); setVisible(true); setSize(500,500); setDefaultCloseOperation(EXIT_ON_CLOSE); } public Component generateRandomShape() { double r1 = (int)(2*Math.random()); if (r1 == 0) return new RandomRect(); else if (r1 == 1) return new RandomOval(); else return null; } public static void main (String[] arg) { RandomShape r = new RandomShape(100); } }
RandomRect
Kod:
import java.awt.*; import java.util.*; import javax.swing.*; public class RandomRect extends JPanel { private int width, height; public RandomRect() { width = randomPixel(); height = randomPixel(); setPreferredSize(new Dimension(width, height)); setOpaque(false); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.red); g.fillRect(randomPixel(),randomPixel(), width, height); } private int randomPixel() { int pix = (int)(Math.random()*400); return pix; } }
RandomOval
Kod:
import java.awt.*; import java.util.*; import javax.swing.*; public class RandomOval extends JPanel { private int width, height; public RandomOval() { width = randomPixel(); height = randomPixel(); setPreferredSize(new Dimension(width, height)); setOpaque(false); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.green); g.fillOval(randomPixel(),randomPixel(), width, height); } private int randomPixel() { int pix = (int)(Math.random()*400); return pix; } }
Är tacksam för all hjälp!!
