Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.GradientPaint;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.util.Observable;
- import java.util.Observer;
- import java.util.Random;
- import javax.swing.JComponent;
- public class Rysowanie extends JComponent implements Observer {
- //Wartosci
- private static final double SUN_RADIUS_PROPORTION = 0.17; //Proporcja Słońca
- private static final int DEFAULT_WIDTH = 840;
- private static final int DEFAULT_HEIGHT = 600;
- private static final int NUM_STARS = 100;
- private static final int MAX_STAR_RADIUS = 3;
- //Wartosci
- //Obiekt do losowania
- private Random random = new Random();
- //Obiekt umożliwiający losowanie
- //Tablice do Gwiazd
- private int[] starX;
- private int[] starY;
- private int[] starRadius;
- //Tablice do Gwiazd
- public Rysowanie() {
- super(); //wywołanie konstruktowa
- setPreferredSize(new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT)); //Rezerwowanie miejsca cos w tym stylu
- createStarField(DEFAULT_WIDTH, DEFAULT_HEIGHT, MAX_STAR_RADIUS); //Tworzenie Gwiazd, ale nie ich rysowanie
- }
- //Tworzenie Gwiazd
- private void createStarField(int width, int height, int maxRadius) {
- // Tworzenie tablic
- starX = new int[NUM_STARS];
- starY = new int[NUM_STARS];
- starRadius = new int[NUM_STARS];
- //Tworzenie tablic
- //Zapychanie ich randomowymi liczbami
- for (int i = 0; i < NUM_STARS; i++) {
- starX[i] = random.nextInt(width);
- starY[i] = random.nextInt(height);
- starRadius[i] = random.nextInt(maxRadius);
- }
- //Zapychanie ich randomowymi liczbami
- }
- //Tworzenie Gwiazd
- //Czarna przestrzeń
- private void drawSpaceBackdrop(Graphics2D g2) {
- g2.setColor(Color.BLACK); //Ustawiamy czarny kolor do malowania
- g2.fillRect(0, 0, getWidth(), getHeight()); //Wypelniamy przestrzen
- g2.setColor(Color.WHITE); //ustawiamy bialy
- for (int i = 0; i < NUM_STARS; i++) {
- g2.fillOval(starX[i], starY[i], starRadius[i], starRadius[i]);
- //Wsadzanie gwiazd do przestrzeni
- }
- }
- //Rysowanie czarnej przestrzeni
- //Rysowanie Słońca
- private void drawSun(Graphics2D g2) {
- int sunRadius = (int) (SUN_RADIUS_PROPORTION * getWidth() );
- GradientPaint sunColor = new GradientPaint(0, 0, Color.YELLOW, 0, sunRadius, Color.RED); //Tworzenie kolorku dla sloneczka
- g2.setPaint(sunColor); //Ustawienie kolorku do malowania
- g2.fillOval(-sunRadius/2, -sunRadius/2, sunRadius, sunRadius); //wypelnienie slonca
- }
- //Rysowanie słońca
- //Rysowanie Słońca
- public void drawPlanet(Graphics2D g2) {
- int sunRadius = (int) (SUN_RADIUS_PROPORTION * 0.5 * getWidth() );
- GradientPaint sunColor = new GradientPaint(0, 0, Color.BLUE, 0, sunRadius, Color.GREEN); //Tworzenie kolorku dla sloneczka
- g2.setPaint(sunColor); //Ustawienie kolorku do malowania
- g2.fillOval(-sunRadius/2, -sunRadius/2, sunRadius, sunRadius); //wypelnienie slonca
- }
- //Rysowanie słońca
- //Rysowanie wszystkiego
- public void paintComponent(Graphics g) {
- Graphics2D g2 = (Graphics2D) g; //Ustawienie zmiennej
- drawSpaceBackdrop(g2); //Czarna przestrzen
- g2.translate(getWidth()/2, getHeight()/2);//Kordynaty gdzie ma sie pojawic x,y
- drawSun(g2); //Slonce
- }
- //Rysowanie wstępne
- //Odswiezenie obrazka
- public void update(Observable o, Object arg) {
- repaint();
- }
- //Odswiezenie obrazka
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement