Advertisement
Zidinjo

Labor4 Smiley

May 10th, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.35 KB | None | 0 0
  1. package de.marvin.oopLabor4;
  2.  
  3. import java.awt.Graphics;
  4. import java.awt.event.MouseEvent;
  5.  
  6. public class Smiley extends GeometricObject {
  7.     private static final long serialVersionUID = 1L;
  8.     private int counter = 1;
  9.     private mood myMood = mood.HAPPY; // Default Auswahl
  10.     private final int MAXIMALWERTDERGROESSE = 50;
  11.  
  12.     public Smiley()
  13.     {
  14.         addMouseListener(this);
  15.     }
  16.  
  17.     enum mood
  18.     {
  19.         HAPPY, SAD, GETRECT
  20.     }
  21.  
  22.     @Override
  23.     public void mouseClicked(MouseEvent event)
  24.     {
  25.         if (counter == 0) {
  26.             myMood = mood.HAPPY;
  27.         } else if (counter == 1) {
  28.             myMood = mood.SAD;
  29.         } else if (counter == 2) {
  30.             myMood = mood.GETRECT;
  31.             counter = -1;
  32.         }
  33.         counter++;
  34.         repaint();
  35.     }
  36.  
  37.     @Override
  38.     protected void mySpecialPaint(Graphics g, int kordiX, int KordiY,int size1, int size2)
  39.     {
  40.         if (size1 > MAXIMALWERTDERGROESSE)
  41.         {
  42.             size1 = 29;
  43.             size2 = 28;
  44.             kordiX = 14;
  45.             KordiY = 14;
  46.         }
  47.        
  48.         switch (myMood)
  49.         {
  50.         case HAPPY:
  51.             g.fillOval(kordiX, KordiY, size1, size2);
  52.             g.fillOval(kordiX - (size1 / 2) + 2, KordiY - 5, size1 / 2,size2 / 2);
  53.             g.fillOval(kordiX + (size1) - 2, KordiY - 5, size1 / 2, size2 / 2);
  54.             g.fillRect(kordiX, KordiY + size1, size1, size2 / 3);
  55.             g.fillRect((int) (kordiX + size1 * 0.8), (int) (KordiY + size1*0.85),size1 / 3, size2 - size2 / 2); // Mundwinkel
  56.             g.fillRect(kordiX, KordiY + size1 - 6, size1 / 3, size2 - size2 / 2); // Mundwinkel
  57.             break;
  58.         case SAD:
  59.             g.fillOval(kordiX, KordiY, size1, size2);
  60.             g.fillOval(kordiX - (size1 / 2) + 2, KordiY - 5, size1 / 2,size2 / 2);
  61.             g.fillOval(kordiX + (size1) - 2, KordiY - 5, size1 / 2, size2 / 2);
  62.             g.fillRect(kordiX, KordiY + size1, size1, size2 / 3);
  63.             g.fillRect(kordiX, KordiY + size1, size1 / 3, size2 - size2 / 2); // Mundwinkel
  64.             g.fillRect((int) (kordiX + size1 * 0.8), KordiY + size1, size1 / 3,size2 - size2 / 2); // Mundwinkel
  65.             break;
  66.         case GETRECT:
  67.             g.fillOval(kordiX, KordiY, size1, size2);
  68.             g.fillOval(kordiX - (size1 / 2) + 2, KordiY - 5, size1 / 2,size2 / 2);
  69.             g.fillOval(kordiX + (size1) - 2, KordiY - 5, size1 / 2, size2 / 2);
  70.             g.fillRect(kordiX, KordiY + size1, size1, size2 / 3);
  71.             g.fillRect((int) (kordiX + size1 * 0.8),(int) (KordiY + size1 * 0.9), size1 / 3, size2 - size2 / 2); // Mundwinkel
  72.             g.fillRect(kordiX, (int) (KordiY + size1 * 0.9), size1 / 3, size2- size2 / 2); // Mundwinkel
  73.             break;
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement