Objekt bei Buttonklick zeichnen

Status
Nicht offen für weitere Antworten.

cr3m4

Mitglied
Hallo Leute,

Ich habe diverse Methode die unterschiedliche Objekte zeichnen. Hier z.B. zwei Linien:

Code:
  private Graphics paintLines(Graphics2D g2)
          {
                  /* parallele Linien zeichnen */
                  for(int i=startx; i<=stopx+thickness;i++)
                  {
                          g2.drawLine(i, starty, i, stopy);

                          g2.drawLine(i+50, starty, i+50, stopy);

                          g2.setColor(new Color(0, 0, 255));
                          g2.drawLine(i+50, starty, i+50, (stopPoint_jTable1.getRowHeight()+6)*7);
                          g2.setColor(Color.DARK_GRAY);
                  }
                return g2; 
          }


Und bei Klick auf einen Button soll dem Grafikpanel:

Code:
  private JPanel getMapGrafikPanel() {
                  if(MapGrafikPanel == null) {
                          MapGrafikPanel = new JPanel();
                          Graphics2D g2 = (Graphics2D)g;
                          super.paintComponents( g2 );

                          paintLines(g2);
                          paint(MapGrafikPanel.getGraphics());       

                  }
                  return MapGrafikPanel;
          }

eine weitere Graphics-Komponente hinzugefügt werden.

nur habe ich keinen Schimmer wie ich das anstellen soll. Ich dachte ursprünglich in etwa so:
Code:
Graphics g= panel.getGraphics();
g.draw...

panel.repaint();

aber hat keinerlei Auswirkung. Habe zwar nen Thread zu dem Tehma gefunden, der blieb jedoch unbeantwortet.
 
S

SlaterB

Gast
im Button machst du sowas wie

toPaintList.add(new PaintSomething());
repaint();

und allein die paint-Methoden schaut dann in toPaintList nach und malt das neue,


einfache Regel: nie getGraphics(); aufrufen!
painten dürfen nur die paint-Methoden,
alle anderen dürften höchstens Daten-Objekte bereitstellen/ ändern, boolean-flag setzen usw.

wenn was nicht geht, dann poste idealerweise ein komplettes kleines Testprogramm
 

cr3m4

Mitglied
ok also das mit der Paintlist is mir grad nicht geläufig. Soll ich eine Art JList erstellen und dann irgendwie die Paintmethoden reinpacken?
 
S

SlaterB

Gast
ich dachte an eine normale ArrayList mit Objekten, die ein Interface mit einer Methode paint() implementieren,

aber das ist beliebig von deinen Anforderungen abhängig,
wenn du nur ein bestimmtes Objekt hast dann kannst du auch nur das in einer Extra-Einzel-Variablen speichern,
im einfachsten Fall reicht ein boolean true/ false und die paint-Methode weiß dann schon, was zu tun ist,

von einfach bis komplex gibts da ein breites Spektrum an Möglichkeiten
 

cr3m4

Mitglied
So ganz komm ich mit der Listenmethoden noch nich klar.
Ich beschreib mal wie ich dachte dass es Funktioniert:

Zunächst habe ich in dem Panel auf dem gezeichnet werden soll die Arrayliste erstellt und wollte die zu zeichnenden Objekte hinzufügen:
Code:
private JPanel getMapGrafikPanel() {
                  if(MapGrafikPanel == null) {
                          MapGrafikPanel = new JPanel();
                          Graphics2D g2 = (Graphics2D)g;
                          super.paintComponents( g2 );

                          List<Graphics> list1 = new ArrayList<Graphics>();
                          list1.add(paintLines(g2));     

                  }
                  return MapGrafikPanel;
          }

und dann?

Ob du mir mal nen Beispielcode dazu geben kannst, wär klasse?
 
S

SlaterB

Gast
was haben da die Befehle
> Graphics2D g2 = (Graphics2D)g;
> super.paintComponents( g2 );
zu suchen?
was liefert paintLines(g2) zurück?

wieso ist list1 lokal definiert?
wenn nach repaint() die paint-Methode darauf zugreifen soll, muss es doch wohl ein Klassenattribut sein,

was ist MapGrafikPanel?
Variablen immer klein schreiben,
wenn das das zu zeichnende einzelne Objekt ist, dann brauchst du wie gesagt keine Liste
 

cr3m4

Mitglied
Ich habe einfach die zu Beginn des Threads geposteten Methoden verändert. Dachte dat reicht :)

das
Code:
Graphics2D g2 = (Graphics2D)g;
ist doch quasi die Zeichnung die auf dem Zeichenbereich
Code:
MapGrafikPanel
dargestellt wird.

Code:
paintLines(g2)
liefert zwei gezeichnete Linien an g2 zurück (siehe ersten Beitrag im Thread).

list1 ist lokal definiert weil ich kein Ahnung habe was ich damit eigentlich tun soll :)

Mit der kleinschreibung haste recht, nit drauf geachtet, sorry.
 
S

SlaterB

Gast
wo kommt das g her?
ein Zeichenobjekt ist ein Objekt, welche eine Methode wie z.B. paint(Graphics g) implementiert,
das g kommt erst beim paint-Aufruf vom System, das darf bei der Objekterstellung nicht bekannt sein, auch darf noch nichts gezeichnet werden,

erstelle erstmal eine normales Java-Programm, welches mit paint() oder paintComponent() irgendwas zeichnet,
danach kann man dann andere Dinge programmieren,
erst die Grundlagen..
 

Marco13

Top Contributor
Ja, so grob
Code:
interface Paintable 
{
    void paintOn(Graphics g);
}

class Lines implements Paintable
{
    public void paintOn(Graphics g) { male linien }
}

class PaintablePanel extends JPanel
{
    private List<Paintable> paintables = new ArrayList<Paintable>();

    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        for (Paintable paintable : paintables)
        {
            paintable.paintOn(g);
        }
    }


    void addPaintable(Paintable paintable)
    {
        paintables.add(paintable);
        repaint();
    }
}

...
// Bei Buttonklick:
paintablePanel.addPaintable(new Lines());
 

cr3m4

Mitglied
ok also ich habe mal eine Beispielanwendung als quasi neue Basis fürs Verständnis. Vielleicht kannst du anhand dieses Codes besser beschreiben was ich zu tun habe.

Code:
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;


public class NewJFrame extends javax.swing.JFrame {
	
	private static final long serialVersionUID = 1L;
	
	private JPanel zeichenbereich_jPanel;
	private JButton hinzufuegen_jButton;
	private JPanel button_jPanel;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public NewJFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			BorderLayout thisLayout = new BorderLayout();
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(thisLayout);
			getContentPane().add(getZeichenbereich_jPanel(), BorderLayout.CENTER);
			getContentPane().add(getButton_jPanel(), BorderLayout.SOUTH);

			pack();
			setSize(400, 300);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/* Zeichenbereich in dem alle Graphics-Objekte dargestellt werden */
	private JPanel getZeichenbereich_jPanel()
	{
		zeichenbereich_jPanel = new JPanel()
		{
			private static final long serialVersionUID = 1L;

			public void paint( Graphics g ) 
			  { 
				  Graphics2D g2 = (Graphics2D)g;
				  super.paintComponents( g2 ); 
				  paintRect(g2);
			  }
		  };
		return zeichenbereich_jPanel;
	};
	
	/* Container für Button */
	private JPanel getButton_jPanel()
	{
		button_jPanel = new JPanel();

		button_jPanel.add(getHinzufuegen_jButton());
		return button_jPanel;
	};
	
	/* Button mit der Actionmethode */
	private JButton getHinzufuegen_jButton()
	{
		hinzufuegen_jButton = new JButton();
		hinzufuegen_jButton.setText("Grafik hinzufügen");
		hinzufuegen_jButton.addActionListener(new ActionListener()
		{

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				
			}});
		
		return hinzufuegen_jButton;
	}
	
	/* Methode zum Linie zeichnen */
	private Graphics paintRect(Graphics2D g2)
	  {	
		 
		  for(int i=20; i<=21;i++)
		  {
			  g2.drawRect(50, 50, 100, 100);
		  }
		return g2;  
	  }
	
	/* diese Grafik soll bei Buttonpressed hinzugezeichnet werden */
	private Graphics paintFilledRect(Graphics2D g2)
	  {	
		 
		  for(int i=20; i<=21;i++)
		  {
			  g2.fillRect(50, 50, 100, 100);
		  }
		return g2;  
	  }
}
 
S

SlaterB

Gast
zu tun haben: keine Unterstriche in Variablen oder Methoden-Namen,
hinzufuegen_jButton
heißt
hinzufuegenJButton
oder
hinzufuegenButton

---------

ansonsten siehe Antwort von Marco13 für ein denkbares Konzept
 

cr3m4

Mitglied
oh sorry Marco, hab deinen Beitrag voll übersehn :)

danke für eure tatkräftige Unterstützung. Hoffe ich kriegs jetzt hin.
 

cr3m4

Mitglied
guten morgen, ich habe nun Marcos beispiel mal versucht zu implementieren, was mir aber bedingt gelungen ist. irgendwas tut sich beim Buttonbetätigen, nur nicht was sein soll. Und zwar wird statt die vorgegebene Zeichnenmethode anzuwenden, ein Abbild des Buttons dargestellt, aber auch irgendwie nicht fest implementiert, da bei einem repaint die die Kopie des Buttonabbildes wieder verschwindet, but why?


Hier nochmal der komplette Sourcecode:

Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

public class PaintPanel extends javax.swing.JFrame {

	private static final long serialVersionUID = 1L;
	private PaintablePanel zeichenbereich_jPanel;
	private JButton hinzufuegen_jButton;
	private JPanel button_jPanel;
	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public PaintPanel() {
		super();
		initGUI();
	}
	
	
	interface Paintable
	{
	    void paintOn(Graphics g);
	}
	
	private void initGUI() {
		try {
			BorderLayout thisLayout = new BorderLayout();
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(thisLayout);
			
			getContentPane().add(getZeichenbereich_jPanel(), BorderLayout.CENTER);
			getContentPane().add(getButton_jPanel(), BorderLayout.SOUTH);

			pack();
			setSize(400, 300);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	/* Zeichenbereich in dem alle Graphics-Objekte dargestellt werden */
	private JPanel getZeichenbereich_jPanel()
	{
		zeichenbereich_jPanel = new PaintablePanel()
		{
			private static final long serialVersionUID = 1L;

			public void paint( Graphics g ) 
			  { 
				  Graphics2D g2 = (Graphics2D)g;
				  super.paintComponents( g2 ); 
	
			  }
		  };
		return zeichenbereich_jPanel;
	};
	
	/* Container für Button */
	private JPanel getButton_jPanel()
	{
		button_jPanel = new JPanel();

		button_jPanel.add(getHinzufuegen_jButton());
		return button_jPanel;
	};
	
	/* Button mit der Actionmethode */
	private JButton getHinzufuegen_jButton()
	{
		hinzufuegen_jButton = new JButton();
		hinzufuegen_jButton.setText("Grafik hinzufügen");
		hinzufuegen_jButton.addActionListener(new ActionListener()
		{

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				zeichenbereich_jPanel.addPaintable(new Lines()); 
			}});
		
		return hinzufuegen_jButton;
	}
	

	class Lines implements Paintable
	{
		
	    public void paintOn(Graphics g) { 
	    	setBackground(Color.BLACK);
	    	g.drawRect(10, 10, 50, 50); }
	}

	class PaintablePanel extends JPanel
	{
	    
		private static final long serialVersionUID = 1L;
		private List<Paintable> paintables = new ArrayList<Paintable>();

	    public void paintComponent(Graphics g)
	    {
	        super.paintComponent(g);
	        for (Paintable paintable : paintables)
	        {
	            paintable.paintOn(g);
	        }
	    }


	    void addPaintable(Paintable paintable)
	    {
	        paintables.add(paintable);
	        repaint();
	    }
	}
}
 
S

SlaterB

Gast
deine Klase heißt PaintPanel, toller Name für ein JFrame, in der main-Methode steht aber
NewJFrame inst = new NewJFrame();
??
außerdem heißt eine andere wichtige Klasse PaintablePanel,
dazu immer noch die Unterstriche in Variablen- und Methodennamen,
schrecklich, schrecklich, schrecklich

--------

das Problem ist/ sind Zeile 67-73,
dummerweise ist das super dort nicht PaintablePanel sondern das JFrame von NewJFrame/ PaintPanel,
deshalb wird der Button vom JFrame nochmal gezeichnet,

ich weiß im Moment gar nicht, wie du auf das richtige super, also PaintablePanel, zugreifen könntest in einer anonymen inneren Klasse,
hier aber auch gar nicht nötig, warum überschreibst du paint?
diese Methode ist so wie sie da steht ohne jeden Sinn, lasse sie weg und es funktioniert,
 

cr3m4

Mitglied
boah super, funzt. Wegen der etwas unkonventionellen Formatierung und einigen ungereintheiten verzeih mir, habe bis vor 2 Monaten nix mit Java und wenig mit anderen Programmiersprachen am Hut gehabt. Ich gelobe Besserung :)

so werd mich jetzt ran machen und die Methoden ins richtige Programm einbinden.

tnx ihr beiden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
pcfreak9000 Objekt-Vorlagen Spiele- und Multimedia-Programmierung 0
Arif Maus-Objekt im Player Klasse implementieren !? Spiele- und Multimedia-Programmierung 2
H Objekt der Klasse A in der Klasse B verwenden und manipulieren Spiele- und Multimedia-Programmierung 6
M [JOGL] Maus über einem gezeichnetem Objekt abfragen? Spiele- und Multimedia-Programmierung 5
U Kann nur ein Objekt mit LWJGL rendern Spiele- und Multimedia-Programmierung 2
kaoZ Graphics Objekt liefert null Spiele- und Multimedia-Programmierung 14
E Java3D Objekt skalieren per JSlider/JButton Spiele- und Multimedia-Programmierung 10
D Probleme mit objekt initializirung mit Mouselistener Spiele- und Multimedia-Programmierung 10
S Java3D: Primitives zu einem Objekt kombinieren Spiele- und Multimedia-Programmierung 7
T LWJGL 3D Objekt Collision: Wie? Spiele- und Multimedia-Programmierung 11
S Wie erkennt ein Objekt ein anderes? Spiele- und Multimedia-Programmierung 7
B j3d mehr als ein Objekt rotieren Spiele- und Multimedia-Programmierung 18
G Hindernis vor Objekt erkennen Spiele- und Multimedia-Programmierung 6
W Java3D: Kanten die hinter einem Objekt liegen werden gezeigt Spiele- und Multimedia-Programmierung 2
S Graphics Objekt weiterreichen? Spiele- und Multimedia-Programmierung 4
H Eigenes 3D Objekt Spiele- und Multimedia-Programmierung 20
D 2D Objekt fragmentieren Spiele- und Multimedia-Programmierung 3
V Jogl: Objekt trotz Rotation immer in gleiche Richtung bewegen Spiele- und Multimedia-Programmierung 5
M [J3D]Dynamische Erzeugung vom Objekt Box Spiele- und Multimedia-Programmierung 5
Kr0e OpenGL .. Pixel Buffer Objekt oder Frame Buffer Object? Spiele- und Multimedia-Programmierung 2
B String zu Objekt einer eigenen Klasse casten Spiele- und Multimedia-Programmierung 13
N Objekt entgegengesetzt bewegen Spiele- und Multimedia-Programmierung 8
M BoundingBox ist nicht bündig am Objekt Spiele- und Multimedia-Programmierung 5
K Kanten anzeigen lassen in einem Shape3D-Objekt Spiele- und Multimedia-Programmierung 4
S geladenes Objekt -> Material Zuweisen. Spiele- und Multimedia-Programmierung 4
J Picking Selection auf ein Objekt begrenzen ! Spiele- und Multimedia-Programmierung 6
G JOGL: per Mausbewegung Objekt verschieben Spiele- und Multimedia-Programmierung 2
C Objekt zwischen 2 Geraden? Spiele- und Multimedia-Programmierung 3
D 3D Objekt entlang Geraden Spiele- und Multimedia-Programmierung 4
Quaxli Picking: Vom Shape3D zum eigentlichen Objekt Spiele- und Multimedia-Programmierung 2
G Objekt nicht ins negative oder null skalieren Spiele- und Multimedia-Programmierung 2
G Objekt verschieben Spiele- und Multimedia-Programmierung 6
G Textur laden auf ein eingelesenes 3D Objekt Spiele- und Multimedia-Programmierung 4
I ScaleInterpolator verschiebt Objekt immer in den Ursprung. Spiele- und Multimedia-Programmierung 2
V Objekt per Tastendruck anzeigen/verschwinden lassen? Spiele- und Multimedia-Programmierung 4
R Objekt mit cos/sin verschieben Spiele- und Multimedia-Programmierung 27
G Kein Licht in Box-Objekt Spiele- und Multimedia-Programmierung 2
K Ein 3D-Objekt mit Maus auswählen Spiele- und Multimedia-Programmierung 5
D Alpha Objekt Spiele- und Multimedia-Programmierung 8
H Kompliziertes 3D-Objekt Spiele- und Multimedia-Programmierung 16
G Einen gif oder jpg Datei aus einem Graphics Objekt o. JFrame Spiele- und Multimedia-Programmierung 2
C Wie kann ich ein Objekt auf Tastendruck vor & zurück bew Spiele- und Multimedia-Programmierung 3
M Position der ViewingPlatform als Point3d-Objekt? Spiele- und Multimedia-Programmierung 12
S 3D Objekt erstellen und darstellen Spiele- und Multimedia-Programmierung 4
G RotationInterp. setzt Objekt an Ursprungsposition zurück Spiele- und Multimedia-Programmierung 2
N Shape3D Objekt auf dem Bildschirm zentrieren Spiele- und Multimedia-Programmierung 2
E relevanter bereich einer isometrischen karte zeichnen (AffineTransform) Spiele- und Multimedia-Programmierung 0
SaftigMelo Kreissegment zeichnen Spiele- und Multimedia-Programmierung 2
E Buttons neu zeichnen im GridLayout Spiele- und Multimedia-Programmierung 2
A Zeichnen außerhalb der paint-Methode Spiele- und Multimedia-Programmierung 6
E Isometrische Tiles mit unterschiedlicher Größe an korrekter Position zeichnen Spiele- und Multimedia-Programmierung 1
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
J Int Wert auf JFrame zeichnen Spiele- und Multimedia-Programmierung 3
H [ANIMATION] Hintergrundbild nur einmal zeichnen Spiele- und Multimedia-Programmierung 3
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
M Methoden eine Map zu zeichnen Spiele- und Multimedia-Programmierung 5
aze Nicht rechteckiges Bild zeichnen Spiele- und Multimedia-Programmierung 5
F nur Ausschnitt eines Image zeichnen Spiele- und Multimedia-Programmierung 9
T 3D Graphen Zeichnen Spiele- und Multimedia-Programmierung 19
F Kurven zeichnen Spiele- und Multimedia-Programmierung 2
E Keine Werte zum Zeichnen werden Übergeben Spiele- und Multimedia-Programmierung 3
A Halbkreise zeichnen lassen? Spiele- und Multimedia-Programmierung 2
F Lineal mit Zahlen zeichnen Spiele- und Multimedia-Programmierung 7
N Linie mit Rand zeichnen Spiele- und Multimedia-Programmierung 10
A Mehrere geometrische Objekte in JPanel zeichnen Spiele- und Multimedia-Programmierung 4
A Optimiertes Zeichnen - wie? Spiele- und Multimedia-Programmierung 8
data89 Koordinaten in Koordinatensystem zeichnen Spiele- und Multimedia-Programmierung 11
M Binärbaum ohne Überlappung zeichnen Spiele- und Multimedia-Programmierung 3
H Decke zeichnen mit Hilfe eines Polygons Spiele- und Multimedia-Programmierung 2
B 1)JButtons zeichnen 2)Kolisionsabfrage von zwei Objekten Spiele- und Multimedia-Programmierung 9
G Linie im Applet zeichnen Spiele- und Multimedia-Programmierung 5
G Schüsse zeichnen, Fehler? Spiele- und Multimedia-Programmierung 3
S Dreieck zeichnen Spiele- und Multimedia-Programmierung 9
G Überlagern von Strings beim zeichnen verhindern Spiele- und Multimedia-Programmierung 3
G Geschwungene Klammer zeichnen Spiele- und Multimedia-Programmierung 5
F Neu zeichnen verhindern Spiele- und Multimedia-Programmierung 25
J Zeichnen in BufferedImage und dieses in Datei speichern Spiele- und Multimedia-Programmierung 2
O Funktion zeichnen Spiele- und Multimedia-Programmierung 11
A Lissajous Figuren zeichnen Spiele- und Multimedia-Programmierung 1
G Maus springt --> Free-Hand-Zeichnen Spiele- und Multimedia-Programmierung 2
L Schüsse zeichnen Spiele- und Multimedia-Programmierung 13
M Eigene Strings zeichnen Spiele- und Multimedia-Programmierung 4
T Blitz berechnen und zeichnen Spiele- und Multimedia-Programmierung 13
M auswahlkreis zeichnen (schräg) Spiele- und Multimedia-Programmierung 4
N Logik: Grenz-/Frontlinie zeichnen Spiele- und Multimedia-Programmierung 4
M Grafikprogramm, zeichnen mit Maus Spiele- und Multimedia-Programmierung 7
G Problem beim Zeichnen von LineArrays Spiele- und Multimedia-Programmierung 9
P linie in bild zeichnen Spiele- und Multimedia-Programmierung 2
G Auf 3D Box zeichnen Spiele- und Multimedia-Programmierung 4
K mit Canvas übereinander zeichnen Spiele- und Multimedia-Programmierung 4
G 3D Raum zeichnen Spiele- und Multimedia-Programmierung 7
H Kreis zeichnen mittels Schleife & drawLine Spiele- und Multimedia-Programmierung 4
B Probleme beim zeichnen Spiele- und Multimedia-Programmierung 15
N Bild zu zeichnen (drawImage) klappt nur manchmal?? Spiele- und Multimedia-Programmierung 8
T Effizient zeichnen Spiele- und Multimedia-Programmierung 12
H mit Java2D Markierung über JTable zeichnen und diese bewegen Spiele- und Multimedia-Programmierung 2
C Graphische Benutzerschnittstelle, Problem beim Zeichnen Spiele- und Multimedia-Programmierung 4
J schnellste alternative um in java zu "zeichnen" Spiele- und Multimedia-Programmierung 17
conan2 Objekte in richtiger Z-Reihenfolge zeichnen Spiele- und Multimedia-Programmierung 2
G Punkte in Java3D zeichnen Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben