Advertisement
Guest User

Kreis

a guest
Dec 5th, 2016
440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.76 KB | None | 0 0
  1. /**
  2.  * Ein Kreis kann sich selbst zeichnen im Programmfenster Zeichnung
  3.  *
  4.  * @author Hans Witt
  5.  *
  6.  * Version 1.1 (14.7.2008)
  7.  *     Hinzuf�gen von Statusvariablen f�r Position ...
  8.  * Version: 1.1.1 (17.7.2008)
  9.  *        Neue Komponenten werden von Unten nach Oben aufgebaut, d.h.vor die alten gesetzt
  10.  * Version: 1.1.2 (23.7.2008)
  11.  *        setzeRadius verbessert ( Gr��e = radius * >>2<< )
  12.  *        
  13.  * Version: 3 (9.8.2008)
  14.  *        Containerklasse f�r GUI-Elemente
  15.  * Version: 3.1 (14.8.2008)
  16.  *        Konstruktor auf int neuesX, int neuesY , int neueBreite, int neueHoehe angepasst     
  17.  * Version: 3.2 (18.8.2008)
  18.  *        Zustandsvariable auf protected gesetzt
  19.  * @version: 3.3 (29.8.2008)
  20.  *        Zu den sonst �bliche Metheode setzeGr��e undd setzePosition kommen
  21.  *        
  22.  *         setzeRadius - beh�lt den Mittelpunkt bei !
  23.  *        
  24.  *         setzeMittelpunkz
  25.  *        
  26.  *         setzeMittelpunktUndRadius
  27.  *        
  28.  */
  29.  
  30. import java.awt.BasicStroke;
  31. import java.awt.Graphics;
  32. import java.awt.Graphics2D;
  33. import java.awt.RenderingHints;
  34.  
  35. public class Kreis {
  36.    
  37.     private CKreis      obj;
  38.     protected int       radius      = 25;
  39.     protected int       xPos        = 0;
  40.     protected int       yPos        = 0;
  41.     protected boolean   sichtbar    = true;
  42.     protected boolean   gefuellt    = true;
  43.     protected String    farbe       = StaticTools.leseNormalfarbe();
  44.    
  45.     /**
  46.      * Konstruktor f�r Hauptfenster
  47.      */
  48.     public Kreis() {
  49.         this(Zeichnung.gibZeichenflaeche());
  50.     }
  51.    
  52.     /**
  53.      * Konstruktor f�r Hauptfenster
  54.      *
  55.      * @param neuerRadius
  56.      */
  57.     public Kreis(int neuerRadius) {
  58.         this(Zeichnung.gibZeichenflaeche(), 0, 0, neuerRadius);
  59.     }
  60.    
  61.     /**
  62.      * Konstruktor f�r Hauptfenster
  63.      *
  64.      * @param neuesX
  65.      * @param neuesY
  66.      * @param neuerRadius
  67.      */
  68.     public Kreis(int neuesX, int neuesY, int neuerRadius) {
  69.         this(Zeichnung.gibZeichenflaeche(), neuesX, neuesY, neuerRadius);
  70.     }
  71.    
  72.     /**
  73.      * Konstruktor
  74.      *
  75.      * @param behaelter
  76.      */
  77.     public Kreis(IContainer behaelter) {
  78.         this(behaelter, 0, 0, 25);
  79.     }
  80.    
  81.     /**
  82.      * Konstruktor
  83.      *
  84.      * @param behaelter
  85.      * @param neuerRadius
  86.      */
  87.     public Kreis(IContainer behaelter, int neuesX, int neuesY, int neuerRadius) {
  88.         obj = new CKreis();
  89.         behaelter.add(obj, 0);
  90.         setzeDimensionen(neuesX, neuesY, neuerRadius);
  91.         behaelter.validate();
  92.     }
  93.    
  94.     public void sichtbarMachen() {
  95.         sichtbar = true;
  96.         obj.sichtbarMachen();
  97.     }
  98.    
  99.     /**
  100.      * Mache unsichtbar. Wenn es bereits unsichtbar ist, tue nichts.
  101.      */
  102.     public void unsichtbarMachen() {
  103.         sichtbar = false;
  104.         obj.unsichtbarMachen();
  105.     }
  106.    
  107.     /**
  108.      * Bewege horizontal um 'entfernung' Bildschirmpunkte.
  109.      */
  110.     public void nachRechtsBewegen() {
  111.         horizontalBewegen(20);
  112.     }
  113.    
  114.     /**
  115.      * Bewege einige Bildschirmpunkte nach links.
  116.      */
  117.     public void nachLinksBewegen() {
  118.         horizontalBewegen(-20);
  119.     }
  120.    
  121.     /**
  122.      * Bewege einige Bildschirmpunkte nach oben.
  123.      */
  124.     public void nachObenBewegen() {
  125.         vertikalBewegen(-20);
  126.     }
  127.    
  128.     /**
  129.      * Bewege einige Bildschirmpunkte nach unten.
  130.      */
  131.     public void nachUntenBewegen() {
  132.         vertikalBewegen(20);
  133.     }
  134.    
  135.     /**
  136.      * Bewege vertikal um 'entfernung' Bildschirmpunkte.
  137.      */
  138.     public void langsamVertikalBewegen(int entfernung) {
  139.         int delta;
  140.        
  141.         if (entfernung < 0) {
  142.             delta = -1;
  143.             entfernung = -entfernung;
  144.         } else {
  145.             delta = 1;
  146.         }
  147.        
  148.         for (int i = 0; i < entfernung; i++) {
  149.             vertikalBewegen(delta);
  150.             StaticTools.warte(0);
  151.         }
  152.     }
  153.    
  154.     /**
  155.      * Bewege vertikal um 'entfernung' Bildschirmpunkte.
  156.      */
  157.     public void langsamHorizontalBewegen(int entfernung) {
  158.         int delta;
  159.        
  160.         if (entfernung < 0) {
  161.             delta = -1;
  162.             entfernung = -entfernung;
  163.         } else {
  164.             delta = 1;
  165.         }
  166.        
  167.         for (int i = 0; i < entfernung; i++) {
  168.             horizontalBewegen(delta);
  169.             StaticTools.warte(0);
  170.         }
  171.     }
  172.    
  173.     /**
  174.      * neuer Mittelpunkt
  175.      *
  176.      * @param neuesMX
  177.      * @param neuesMY
  178.      */
  179.     public void setzeMittelpunkt(int neuesMX, int neuesMY) {
  180.         xPos = neuesMX - radius;
  181.         yPos = neuesMY - radius ;
  182.         obj.setzePosition(xPos, yPos);
  183.     }
  184.  
  185.    
  186.     /**
  187.      * neuer radius *
  188.      */
  189.     public void setzeRadius(int neuerRadius) {
  190.         int mx = xPos + radius;
  191.         int my = yPos + radius ;
  192.         radius = neuerRadius;
  193.         xPos = mx - radius;
  194.         yPos = my - radius ;
  195.         obj.setzeDimensionen(xPos, yPos, 2 * radius, 2 * radius);
  196.     }
  197.     /**
  198.      *
  199.      * @param neuesX
  200.      * @param neuesY
  201.      * @param neueBreite
  202.      * @param neueHoehe
  203.      */
  204.  
  205.     public void setzeMittelpunktUndRadius(int neuesMX, int neuesMY, int neuerRadius) {
  206.         radius = neuerRadius;
  207.         xPos = neuesMX - radius;
  208.         yPos = neuesMY - radius ;
  209.         obj.setzeDimensionen(xPos, yPos, 2 * radius, 2 * radius);
  210.     }
  211.    
  212.     /**
  213.      * neue Position
  214.      *
  215.      * @param x
  216.      * @param y
  217.      */
  218.     public void setzePosition(int neuesX, int neuesY) {
  219.         xPos = neuesX;
  220.         yPos = neuesY;
  221.         obj.setzePosition(xPos, yPos);
  222.     }
  223.     /**
  224.      * neuer radius *
  225.      */
  226.     public void setzeGroesse(int neuerRadius) {
  227.         radius = neuerRadius;
  228.         obj.setzeGroesse(2 * radius, 2 * radius);
  229.     }
  230.  
  231.     /**
  232.      *
  233.      * @param neuesX
  234.      * @param neuesY
  235.      * @param neueBreite
  236.      * @param neueHoehe
  237.      */
  238.     public void setzeDimensionen(int neuesX, int neuesY, int neuerRadius) {
  239.         xPos = neuesX;
  240.         yPos = neuesY;
  241.         radius = neuerRadius;
  242.         obj.setzeDimensionen(xPos, yPos, 2 * radius, 2 * radius);
  243.     }
  244.    
  245.     /*
  246.      * g�ltige Farben: "rot", "gelb", "blau", "gruen", "lila" , "schwarz" ,
  247.      * "weiss" , "grau","pink","magenta","orange","cyan","hellgrau"
  248.      */
  249.     public void setzeFarbe(String neueFarbe) {
  250.         farbe = neueFarbe;
  251.         obj.setzeBasisfarbe(neueFarbe);
  252.     }
  253.    
  254.     /**
  255.      * Bewege horizontal um 'entfernung' Bildschirmpunkte.
  256.      */
  257.     public void horizontalBewegen(int entfernung) {
  258.         xPos += entfernung;
  259.         obj.setzePosition(xPos, yPos);
  260.     }
  261.    
  262.     /**
  263.      * Bewege vertikal um 'entfernung' Bildschirmpunkte.
  264.      */
  265.     public void vertikalBewegen(int entfernung) {
  266.         yPos += entfernung;
  267.         obj.setzePosition(xPos, yPos);
  268.     }
  269.    
  270.     /**
  271.      * gef�llter Kreis
  272.      */
  273.     public void fuellen() {
  274.         gefuellt = true;
  275.         obj.fuellen();
  276.     }
  277.    
  278.     /**
  279.      * Kreislinie
  280.      */
  281.     public void rand() {
  282.         gefuellt = false;
  283.         obj.rand();
  284.     }
  285.    
  286. }
  287.  
  288. class CKreis extends BasisComponente {
  289.    
  290.     /**
  291.      * Konstruktor ohne Beschriftung
  292.      */
  293.     public CKreis() {
  294.        
  295.     }
  296.    
  297.     /**
  298.      * Die Darstellung der Komponente wird hier programmiert.
  299.      */
  300.    
  301.     public void paintComponentSpezial(Graphics g) {
  302.         Graphics2D g2 = (Graphics2D) g;
  303.         // Graphik-Abmessungen
  304.         breite = getSize().width;
  305.         hoehe = getSize().height;
  306.         g2.setColor(farbe);
  307.         g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  308.                 RenderingHints.VALUE_ANTIALIAS_ON);
  309.         g2.setStroke(new BasicStroke(2, BasicStroke.CAP_ROUND,
  310.                 BasicStroke.JOIN_MITER));
  311.  
  312.         if (gefuellt) {
  313.             g2.fillOval(0, 0, breite, hoehe);
  314.         } else {
  315.            
  316.             g2.drawOval(1, 1, breite-3, hoehe-3);
  317. //          g2.drawOval(1, 1, breite - 3, hoehe - 3);
  318.         }
  319.     }
  320. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement