Inhalt von JTextfield an andere Klasse weitergeben

unavailable

Mitglied
Huhu Leute,

ich programmiere grade nen Adressbuch, bin schön am Klassen auslagern pi pa po.
Hier erstmal der Kot.

Java:
public class CMain
{
	public static void main(String[] args)
	{
		SwingUtilities.invokeLater(new Runnable()
		{
			public void run()
			{
				CGraphicalUserInterface GUI = new CGraphicalUserInterface();
			}
		});

	}
}
Java:
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class CGraphicalUserInterface extends JFrame
{
	GridBagConstraints c = new GridBagConstraints();
	JPanel panel = new JPanel(new GridBagLayout());
	Insets insets = new Insets(3, 3, 3, 3);

	CGraphicalUserInterface()
	{
		super("Adressbuch");
		setSize(400, 150);
		centerWindow(this);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		this.add(panel);

		createButton("Anmelden", 1, 2, panel, c);
		createButton("Registration", 0, 2, panel, c);

		createLabel("Benutzername", 0, 0, panel, c);
		createLabel("Passwort", 0, 1, panel, c);

		createTextField(20, 1, 0, panel, c);

		JPasswordField pw = new JPasswordField(20);
		c.gridx = 1;
		c.gridy = 1;
		panel.add(pw, c);

		setVisible(true);
	}

	private void centerWindow(JFrame frame)
	{
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

		int x = screenSize.width;
		int y = screenSize.height;

		int posX = (x - frame.getWidth()) / 2;
		int posY = (y - frame.getHeight()) / 2;

		frame.setLocation(posX, posY);
	}

	private JButton createButton(String text, int posX, int posY, JPanel panel,	GridBagConstraints c)
	{
		JButton button = new JButton(text);
		button.addActionListener(new CActionListener(button));
		c.gridx = posX;
		c.gridy = posY;
		c.insets = insets;
		panel.add(button, c);
		return button;
	}

	private JTextField createTextField(int length, int posX, int posY, JPanel panel, GridBagConstraints c)
	{
		JTextField textfield = new JTextField(length);
		textfield.addActionListener(new CActionListener(textfield));
		c.gridx = posX;
		c.gridy = posY;
		c.insets = insets;
		panel.add(textfield, c);
		return textfield;
	}

	private JLabel createLabel(String text, int posX, int posY, JPanel panel, GridBagConstraints c)
	{
		JLabel label = new JLabel(text);
		c.gridx = posX;
		c.gridy = posY;
		c.insets = insets;
		panel.add(label, c);
		return label;
	}
}
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JTextField;

public class CActionListener implements ActionListener
{
	private JButton button;
	private JTextField textfield;

	public CActionListener(JButton button)
	{
		this.button = button;
	}
	
	public CActionListener(JTextField textfield)
	{
		this.textfield = textfield;
	}

	public void actionPerformed(ActionEvent ae)
	{
		if (ae.getActionCommand() == "Anmelden")
		{
			if(isNullOrEmpty(textfield.getText()))
			{
				System.out.println("Jeah!");
			}
		}
		if (ae.getActionCommand() == "Registration")
		{

		}

	}

	private boolean isNullOrEmpty(String s)
	{
		if (s != null && s != "")
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

Ich übergebe die Buttons & die Textfelder an meinen ActionListener, die Buttons werden beim Klick erkannt & alles funktioniert bis dahin, jedoch kriege ich ne nullpointerexception sobald ich den inhalt abfrage..

seht ihr den fehler?
 

njans

Top Contributor
Java:
if (ae.getActionCommand() == "Anmelden")
Strings vergleicht man mit equals().
 

Joose

Top Contributor
Java:
public class CGraphicalUserInterface extends JFrame
Von JFrame ableiten ohne die Klasse zu erweitern ist sinnfrei. Erstelle lieber ein Objekt von JFrame in deiner Klasse und arbeite damit.

Java:
public class CActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent ae)
	{
		if (ae.getActionCommand() == "Anmelden")
		{
			if(isNullOrEmpty(textfield.getText()))
			{
				System.out.println("Jeah!");
			}
		}
		if (ae.getActionCommand() == "Registration")
		{

		}
	}

Wo legst du das ActionCommand von Button bzw. Textfield fest?
Strings werden mit equals() nicht mit == verglichen!

Java:
	private boolean isNullOrEmpty(String s)
	{
		if (s != null && s != "")
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

Die Methode lässt sich kürzen ;)

Java:
private boolean isNullOrEmpty(String s) {
    return (s!= null && s.equals(""));
PS: Hier hast du auch gleich einen String vergleich

alles funktioniert bis dahin, jedoch kriege ich ne nullpointerexception sobald ich den inhalt abfrage..

Welchen Inhalt fragst du ab? Wie schaut der StackTrace der Exception aus? Normal steht im StackTrace drinnen in welcher Zeile der Fehler passiert. Daher bei Exceptions immer auch den StackTrace posten und den Code bei der entsprechenden Stelle, so kann man leichter helfen.


Java:
	public void actionPerformed(ActionEvent ae)
	{
		if (ae.getActionCommand() == "Anmelden")
		{
			if(isNullOrEmpty(textfield.getText()))
			{
				System.out.println("Jeah!");
			}
		}
		if (ae.getActionCommand() == "Registration")
		{

		}

	}
Jeder deiner Button bekommt einen eigenes ActionListener Objekt gesetzt! Somit ist bei jedem ActionListener der Buttons das textfield null => daher auch die NullPointerException sobald du getText() aufrufen willst!
 
Zuletzt bearbeitet:

unavailable

Mitglied
Von JFrame ableiten ohne die Klasse zu erweitern ist sinnfrei. Erstelle lieber ein Objekt von JFrame in deiner Klasse und arbeite damit.



Wo legst du das ActionCommand von Button bzw. Textfield fest?
Strings werden mit equals() nicht mit == verglichen!
Ups, stimmt.


Die Methode lässt sich kürzen ;)

Java:
private boolean isNullOrEmpty(String s) {
    return (s!= null && s.equals(""));
PS: Hier hast du auch gleich einen String vergleich
Danke für den Tipp!


Welchen Inhalt fragst du ab? Wie schaut der StackTrace der Exception aus? Normal steht im StackTrace drinnen in welcher Zeile der Fehler passiert. Daher bei Exceptions immer auch den StackTrace posten und den Code bei der entsprechenden Stelle, so kann man leichter helfen.



Jeder deiner Button bekommt einen eigenes ActionListener Objekt gesetzt! Somit ist bei jedem ActionListener der Buttons das textfield null => daher auch die NullPointerException sobald du getText() aufrufen willst!
Mir fällt nur leider überhaupt nicht ein, wie das anders funktionieren soll. Magst du mir vielleicht nur nen kleinen Tip geben?
 

kaoZ

Top Contributor
Kann sein das ich es jetzt überlese , aber wo genau setzt du die
Code:
ActionCommands
auf die du in deinen Anweisungen reagieren möchtest, bzw. nach welchen du die Fallunterscheidungen triffst ?

Java:
  private JButton createButton(String text, int posX, int posY, JPanel panel, GridBagConstraints c)
    {
        JButton button = new JButton(text);
        button.addActionListener(new CActionListener(button));
        c.gridx = posX;
        c.gridy = posY;
        c.insets = insets;
        panel.add(button, c);
        return button;
    }

Da fehlt noch

Java:
button.setActionCommand("wtf!?");

//bzw.

button.setActionCommand(text); // in deinem Fall

würde ich mal sagen, du setzt zwar den namen aber keine Command auf die reagiert werden soll.
 
Zuletzt bearbeitet:

unavailable

Mitglied
Das war gar nicht mein Problem, hat super ohne ActionCommands funktioniert.
ich weiß aber ehrlich gesagt nicht wie ichdas bewerkstelligen soll, dass meine actionlistener klasse weiß, was
in den textfeldern drinne steht..
 

kaoZ

Top Contributor
Indem du öffentliche getter und setter für deine Textefelder in deiner Gui anbietest, über diese kannst du , insofern du eine Referenz auf deine Gui hälst zugreifen, den Text aus deinem Textfeld auslesen, und z.B beim Klick auf den Button den Text in ein Label oder ähnliches einfügen.

wenn du ein Beispiel benötigst, kann ich dir das gerne flott schreiben.
 
Zuletzt bearbeitet:

unavailable

Mitglied
Java:
public class CGraphicalUserInterface
{
	GridBagConstraints c = new GridBagConstraints();
	JPanel panel = new JPanel(new GridBagLayout());
	Insets insets = new Insets(3, 3, 3, 3);
	JFrame frame = new JFrame();
	
	JTextField textfield;
	JButton button1, button2;
	JPasswordField passwordfield;

	CGraphicalUserInterface()
	{
		frame.setTitle("Adressbuch");
		frame.setSize(400, 150);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.add(panel);

		centerWindow(frame);

		button1 = createButton("Anmelden", 1, 2, panel, c);
		button2 = createButton("Registration", 0, 2, panel, c);

		textfield = createTextField(20, 1, 0, panel, c);

		passwordfield = new JPasswordField(20);
		c.gridx = 1;
		c.gridy = 1;
		panel.add(passwordfield, c);

		createLabel("Benutzername", 0, 0, panel, c);
		createLabel("Passwort", 0, 1, panel, c);
		
		button1.addActionListener(new CActionListener(button1));
		button2.addActionListener(new CActionListener(button2));

		frame.setVisible(true);
	}


	private JButton createButton(String text, int posX, int posY, JPanel panel,
			GridBagConstraints c)
	{
		JButton button = new JButton(text);
		button.setActionCommand(text);
		c.gridx = posX;
		c.gridy = posY;
		c.insets = insets;
		panel.add(button, c);
		return button;
	}

	private JTextField createTextField(int length, int posX, int posY,
			JPanel panel, GridBagConstraints c)
	{
		JTextField textfield = new JTextField(length);
		c.gridx = posX;
		c.gridy = posY;
		c.insets = insets;
		panel.add(textfield, c);
		return textfield;
	}

	public void setTextfieldText(String text)
	{
		textfield.setText(text);
	}
	
	public String getTextfieldText()
	{
		return textfield.getText();
	}
}

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JTextField;


public class CActionListener implements ActionListener
{
	private JTextField textfield;
	private JButton button;
	private CGraphicalUserInterface gui;
	private String text;
	
	public CActionListener(JButton button)
	{
		this.button = button;
	}
	
	public void actionPerformed(ActionEvent e)
	{
		if(e.getActionCommand().equals("Anmelden"))
		{
			text = gui.getTextfieldText();
		}

	}
}

kriege immer noch eine nullpointer :OO langsam raff ich echt gar nichts mehr :/
 

kaoZ

Top Contributor
Debugg doch einfach mal und schaue welche variable mit null belegt ist bzw. wird oder bleibt.

was sagt der Stacktrace , an welcher stelle wird die NPE geworfen ?
 
Zuletzt bearbeitet:

strußi

Top Contributor
Hey

wo übergibst/erzeugst du im Controller für das

private CGraphicalUserInterface gui; in Zeile 12

Im Controller hast du nur eine Variable erstellt und nichts übergeben ^^.

Grüße
 

Harry Kane

Top Contributor
Indem du öffentliche getter und setter für deine Textefelder in deiner Gui anbietest, über diese kannst du , insofern du eine Referenz auf deine Gui hälst zugreifen, den Text aus deinem Textfeld auslesen, und z.B beim Klick auf den Button den Text in ein Label oder ähnliches einfügen.

Dagegen!
Ich würde auf jeden Fall raten, nur eine Referenz auf das JTextField zu übergeben! Oder übergebe dem ActionListener eine Referenz auf zwei JTextFields, eines zum lesen und das andere zum schreiben.
Java:
public class TextShifter implements ActionListener{
    private JTextField target;
    private JTextField source;
    public TextShifter(JTextField source, JTextField target){
        this.source = source;
        this.target = target;
    }
    public void actionPerformed(ActionEvent ae){
        target.setText(source.getText());
    }
}
Edit: Der String, der an den KOnstruktor eines JButtons übergeben wird, wird aucu automatisch zum actionCommand. Das actionCommand muss nicht extra gesetzt werden.
Und natürlich hat Strußi recht, dass du die NPE vom Zugriff auf eine nicht initialisierte Variable kommt.
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Oder natürlich so, War lediglich ein Vorschlag wie man es lösen könnte, dass es nicht die beste Wahl wäre es so zu realisieren, ist mir durchaus bewusst da so weitere Abhängigkeiten geschaffen werden, welche die Kopplung beeinflussen.
 

unavailable

Mitglied
Dagegen!
Ich würde auf jeden Fall raten, nur eine Referenz auf das JTextField zu übergeben! Oder übergebe dem ActionListener eine Referenz auf zwei JTextFields, eines zum lesen und das andere zum schreiben.
Java:
public class TextShifter implements ActionListener{
    private JTextField target;
    private JTextField source;
    public TextShifter(JTextField source, JTextField target){
        this.source = source;
        this.target = target;
    }
    public void actionPerformed(ActionEvent ae){
        target.setText(source.getText());
    }
}
Edit: Der String, der an den KOnstruktor eines JButtons übergeben wird, wird aucu automatisch zum actionCommand. Das actionCommand muss nicht extra gesetzt werden.
Und natürlich hat Strußi recht, dass du die NPE vom Zugriff auf eine nicht initialisierte Variable kommt.
Danke für den Tip, ich versuch mich gleich daran.

Moin,

[OT]

Ist das ernst gemeint ???:L
Oder meinst Du doch eher "Code" ? :lol:
[/OT]

Gruß
Klaus
[/ironie off]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
N Inhalt JTextField übergeben Java Basics - Anfänger-Themen 3
G JtextField überprüfen ob der Inhalt Null ist? Java Basics - Anfänger-Themen 6
S Zugriff auf Inhalt JTextField aus anderer Klasse Java Basics - Anfänger-Themen 3
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
J Datentypen CSV to DB Leere Zellen in CSV mit Inhalt? Java Basics - Anfänger-Themen 11
H Universitätsaufgabe String inhalt Kontrollieren Java Basics - Anfänger-Themen 9
karlmasutra OOP Inhalt eines Array ausgeben lassen Java Basics - Anfänger-Themen 8
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
D Ich suche nach einer Möglickeit den Webseiten Inhalt per Java zu analysieren Automatisch Java Basics - Anfänger-Themen 3
L Namensliste mit Array zeigt nicht den gewünschten Inhalt Java Basics - Anfänger-Themen 12
Zeekay Development Methoden Methoden Inhalt Abhängig vom Objekt? Java Basics - Anfänger-Themen 9
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
M Ordner mit Inhalt löschen Java Basics - Anfänger-Themen 7
R getrennte Objekte aus Klasse erstellen : warum Inhalt dann gleich ? Java Basics - Anfänger-Themen 2
Silvascus Inhalt eines externen Textdokuments an einen String übergeben Java Basics - Anfänger-Themen 2
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
K Variablenname soll der Inhalt vom String sein Java Basics - Anfänger-Themen 2
O Zip-File Inhalt einlesen Java Basics - Anfänger-Themen 3
S Inhalt aus anderen Klassen verwenden Java Basics - Anfänger-Themen 1
H Input/Output Inhalt einer GUI in Textdatei speichern Java Basics - Anfänger-Themen 1
M Wie gebe ich den Inhalt aus? Java Basics - Anfänger-Themen 17
K Inhalt von einer csv-Datei abspeichern Java Basics - Anfänger-Themen 3
P Seite auf Inhalt prüfen Java Basics - Anfänger-Themen 2
Uzi21 jTable / Inhalt speichern Java Basics - Anfänger-Themen 2
T CSV auf Inhalt und Zeilen überprüfen Java Basics - Anfänger-Themen 2
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
1 den Inhalt eines Arrays umdrehen Java Basics - Anfänger-Themen 11
A Leere Datei wird ohne Inhalt geschrieben, obwohl Inhalt geschrieben wurde. Java Basics - Anfänger-Themen 4
K Inhalt in den Zwischenspeicher legen Java Basics - Anfänger-Themen 2
kaoZ Input/Output Verzeichnis Inhalt in combobox ausgeben Java Basics - Anfänger-Themen 8
G JTable: Inhalt einer selektierten Zeile speichern Java Basics - Anfänger-Themen 2
G Inhalt einer JTextArea wird nicht dargestellt Java Basics - Anfänger-Themen 8
J Inhalt in einem Text-File finden und in ein Array schreiben Java Basics - Anfänger-Themen 5
R Inhalt vom String größer oder kleiner als Java Basics - Anfänger-Themen 16
F Erste Schritte if Inhalt Java Basics - Anfänger-Themen 7
C Erste Schritte String-INhalt in TXT ausgeben Java Basics - Anfänger-Themen 7
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
U OOP Array vom Typ String > Inhalt ausgeben Java Basics - Anfänger-Themen 8
M Array Inhalt kopieren Java Basics - Anfänger-Themen 3
O Container Inhalt auslesen Java Basics - Anfänger-Themen 2
M Inhalt/Wert aus einer JList ablesen Java Basics - Anfänger-Themen 5
M String auf Inhalt überprüfen Java Basics - Anfänger-Themen 11
H Mehrdimensionales Array - Inhalt auf Null überprüfen Java Basics - Anfänger-Themen 5
B Datentypen Inhalt von Objekten miteinander vergleichen Java Basics - Anfänger-Themen 2
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
R Erste Schritte Objekte mit anderen Objekten als Inhalt Java Basics - Anfänger-Themen 4
F Kopieren von Ordner sammt inhalt Java Basics - Anfänger-Themen 5
I Datei einlesen, Inhalt in MAP ablegen Java Basics - Anfänger-Themen 10
E Inhalt von Option Feldern auslesen? Java Basics - Anfänger-Themen 2
Helgon Inhalt - Aktualisierungs Problem Java Basics - Anfänger-Themen 7
T Inhalt Gridlayout wird nicht angezeigt Java Basics - Anfänger-Themen 6
O Variablen Variablen Inhalt von Webseite einlesen!? Java Basics - Anfänger-Themen 2
M Inhalt eines Strings um eins hochzählen Java Basics - Anfänger-Themen 19
M String Inhalt wird überschrieben (Subklassen verwenden denselben String) Java Basics - Anfänger-Themen 13
Gossi Input/Output Datei Lesen, inhalt abfragen, speichern Java Basics - Anfänger-Themen 5
B jar Inhalt anzeigen Java Basics - Anfänger-Themen 5
H Input/Output Inhalt einer TextArea in Hex umwandeln Java Basics - Anfänger-Themen 10
D Textfile lesen/schreiben abhängig vom inhalt Java Basics - Anfänger-Themen 6
J Inhalt eines Arrays vergleichen? Java Basics - Anfänger-Themen 8
X Collections Inhalt von zwei Collections prüfen Java Basics - Anfänger-Themen 4
D jTable befüllen mit dynamischem Inhalt Java Basics - Anfänger-Themen 11
M Inhalt Textfeld prüfen Java Basics - Anfänger-Themen 4
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
D Inhalt der Spalten einer Tabelle addieren Java Basics - Anfänger-Themen 4
B Datentypen Inhalt zum Iterator wieder aufrufen? Java Basics - Anfänger-Themen 10
E Inhalt zwischen zwei String auslesen? Java Basics - Anfänger-Themen 8
S Inhalt eines Vektors ausgeben Java Basics - Anfänger-Themen 2
F String-Inhalt als Datatype-Name Java Basics - Anfänger-Themen 5
D Inhalt einer Liste auf nur ein Wert überprüfen ohne die Liste komplett zu interieren Java Basics - Anfänger-Themen 6
M Tabelle mit immer sortiertem Inhalt Java Basics - Anfänger-Themen 5
S JFileChooser - Dateinamen vorschlagen/Inhalt der Ausgabe prüfen Java Basics - Anfänger-Themen 3
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
C Inhalt eines Strings in JLabel ausgeben? Java Basics - Anfänger-Themen 21
L Inhalt von JEditorPane löschen Java Basics - Anfänger-Themen 4
G Inhalt Jar-Files anzeigen, incl. Methoden Java Basics - Anfänger-Themen 2
D HashMap mit Inhalt kopieren Java Basics - Anfänger-Themen 8
M [J3D] Applet-Inhalt Speichern (Manipulationen etc. ...) Java Basics - Anfänger-Themen 2
X JTable --> Spaltenbreiter am dargestellten Inhalt anpassen Java Basics - Anfänger-Themen 4
C JPanel Inhalt anpassen Java Basics - Anfänger-Themen 4
P Objekte im Array speichern und auf den Inhalt zugreifen ? Java Basics - Anfänger-Themen 4
S Inhalt von GUI-Eingabe drucken Java Basics - Anfänger-Themen 7
Sweety JTable Inhalt löschen Java Basics - Anfänger-Themen 10
O OOP FileOutputStream überschreibt ganzen inhalt der txt Java Basics - Anfänger-Themen 4
K Inhalt eines Elements aus dem Objekt Array auslesen Java Basics - Anfänger-Themen 9
B mehrer comboboxes mit dem selben inhalt befüllen Java Basics - Anfänger-Themen 8
B Inhalt einer Datei ausgeben Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben