kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung

15.3 Rasterlayout - Sammlung von Bauteil-Objekten in einem Objekt der Container-Klasse ArrayList

15.3 Raster layout - collection of part objects in an object of the container class ArrayList (EN google-translate)

15.3 Układ rastrowy - kolekcja obiektów części w obiekcie klasy kontenerowej ArrayList (PL google-translate)

rl003_bruecke.zip - Dritte Entwicklungsstufe zu Rasterlayout (hier nicht dargestellter Zwischenstand).
rl004_arraylist.zip - Vierte Entwicklungsstufe zu Rasterlayout (weiter unten dargestellt).

Ähnlich wie mit Container-Klassen der Standard-Template-Library (STL) in C++ existiert in Java auch die Möglichkeit für eine bestimmte Gruppe von Containerklassen zu spezifizieren, welche Art von Objekten darin gesammelt werden soll. Auch in Java wird der Typ (Klassenname) dieser gesammelten Objekte in Spitzen Klammern hinter dem Klassennamen angegeben.

Similar to container classes of the standard template library (STL) exists in C. in Java also the possibility for a certain group of container classes to specify what kind of objects should be collected in it. Also in Java, the type (class name) of these collected objects is in top brackets behind the Class names specified.

Podobne do klas kontenerowych standardowej biblioteki szablonów (STL) istnieje w C. w Javie jest także możliwość dla pewnej grupy klas kontenerowych określić, jakie obiekty powinny być w nim gromadzone. Również w Javie typ (nazwa klasy) tych zebranych obiektów znajduje się w najwyższych nawiasach za Podano nazwy klas.

In dem hier umgesetzten Fall wird als Typ nicht ein Klassenname, sondern ein Interfacename angegeben. Alle Klassen, die dieses Interface implementieren können somit in der ArrayList bauteile mit Hilfe der Methode add(..) gespeichert werden.

In this case, the type is not a class name, but a type Interface name specified. All classes that implement this interface can thus be used in the ArrayList components saved using the add (..) method.

W takim przypadku typ nie jest nazwą klasy, ale typem Podano nazwę interfejsu. Wszystkie klasy implementujące ten interfejs mogą więc być używane w komponentach ArrayList zapisane przy użyciu metody dodawania (..).

Testweise werden im Folgenden Hauptklasse drei Widerstände und zwei Brücken (neues Bauteil) erzeugt und in bauteile gespeichert. In einer Schleife in der paint-Methode werden alle Bauteile abgerufen und deren zeichnen(..)-Methode aufgerufen.

In the following main class we will test three resistors and two bridges (new component) generated and stored in parts. In a loop in the paint method, all components are retrieved and their draw (..) - method called.

W następnej głównej klasie testujemy trzy rezystory i dwa mosty (nowy komponent) generowane i przechowywane w częściach. W pętli w metodzie malowania wszystkie składniki są pobierane i ich draw (..) - metoda nazywana.

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

import hilfsklassen.Bilder;

import bauteile.*;

public class Rasterlayout extends Canvas
{
     private Image rasterbild = null;

     private Widerstand r1,r2,r3;
     private Bruecke b1,b2;

     private ArrayList<BauteilInterface> bauteile = new ArrayList<BauteilInterface>();

     public Rasterlayout()
     {
         rasterbild = Bilder.holeBild("raster.png");

         JFrame frame = new JFrame();
         frame.setBounds(10,10,900,700);
         frame.getContentPane().add(this);
         frame.setVisible(true); 

         bauteile.add(new Widerstand());
         bauteile.add(new Widerstand());
         bauteile.add(new Widerstand());

         bauteile.add(new Bruecke());
         bauteile.add(new Bruecke());

         bauteile.get(0).setTranslation(8,1);         
         bauteile.get(0).setRotation(0); 

//Hierzu muss Interface geändert werden !!!:        
         bauteile.get(0).setBeschriftung("100");

         bauteile.get(1).setTranslation(16,1);         
         bauteile.get(1).setRotation(0);         

         bauteile.get(2).setTranslation(16,1);         
         bauteile.get(2).setRotation(1);         
         bauteile.get(2).setBeschriftung("2k2");

         bauteile.get(3).setTranslation(0,0);         
         bauteile.get(3).setRotation(0);         

         bauteile.get(4).setTranslation(0,0);         
         bauteile.get(4).setRotation(1);         


     }

     public void paint(Graphics g)
     {         
         if(rasterbild!=null)
         {
             g.drawImage(rasterbild,0,0,Color.WHITE,this); 
         }

         Graphics2D g2d = (Graphics2D)g;

         for(int i=0;i<bauteile.size();i++)
                 bauteile.get(i).zeichnen(g2d);

     }

     public static void main(String[] args)
     {
         Rasterlayout rasterlayout = new Rasterlayout();
     }
}

Code 15.3-1: Quelltext zu Rasterlayout.java

Darstellung nach Start des Programms.

Bild 15.3-1: Darstellung nach Start des Programms.