Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: Kuvioiden piirtäminen

koodaaja [11.02.2023 19:44:57]

#

Tämä Java-ohjelma piirtää kuvioita (ympyröitä, neliöitä ja pyöristettyjä neliöitä) kolmella eri värillä (punainen, keltainen, vihreä). Uusi kuvio on aina edellistä suurempi. Yritän olla pariin kuukauteen olla lähettämättä mitään.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class KasvavaKuvio extends JFrame {

  JButton nappain = new JButton("Kasvata");


  Color[] varit = {Color.red, Color.yellow, Color.green};
 //Muuttujia piirtämiseen.
  int indeksi = 0;
  int koko = 80;
  int aloitusY = 0;
  int aloitusX = 0;
  Random sattuma = new Random();
  public KasvavaKuvio(){
    super("1");

    aloitusX = sattuma.nextInt(50)+10;
    aloitusY = sattuma.nextInt(100)+10;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(500,500);
    //Näppäin ja sen kuuntelija.
    nappain.setBounds(400,250,90,40);
    add(nappain);
    setLayout(null);
    setVisible(true);
    nappain.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        repaint();

      }

    });
  }

  @Override
  public void paint(Graphics g){
   g.setColor(varit[indeksi%3]);
   //Ensin piirretään kolme ympyrää, sitten neliötä ja lopuksi pyöristettyjä neliöitä
   //Sen jälkeen aloitetaan alusta
   //Värit vaihtuvat joka kerralla ja jokainen kuvio piirretään jokaisella värillä.
   if (indeksi%9 < 3){
   g.drawOval(aloitusY,aloitusX,koko,koko);
   }
   else if (indeksi%9 < 6){
   g.drawRect(aloitusY,aloitusX,koko,koko);
   }
   else {
   g.drawRoundRect(aloitusY,aloitusX,koko,koko,30,30);
   }
   indeksi++;
   koko+= 10;

  }

  public static void main(String[] args){
   new KasvavaKuvio();

  }



}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta