Nach MenuKlick FileDialog öffnen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Leute,

habe folgende Programmstruktur

3 Klassen:
FensterElemente -> Methoden zum Erstellen von Buttons, etc.
Menu -> Menuleiste wird erstellt
Fenster -> eigentliches Fenster wird per Konstruktor erstellt, Buttons usw geaddet, ActionHandling befindet sich auch darin

Mein Problem:
1. Wie kann ich von meiner inneren ActionPerformed Klasse auf die Menu-Klasse zugreifen, um an den Listener eines jeden Menüpunkts ranzukommen?
2. Was mache ich bei meiner ActionPerformed falsch, sodass das instanzieren eines FileDialogs fehlschlägt? (mit dem ersten Paramater - derzeit this - kann er nichts anfangen. Ich schätze mal da muss das Fenster rein, weiß aber nicht wie...)

Danke für eure Hilfe.

Nachfolgend die beiden Klassen Fenster und Menu. In Menu habe ich erstmal nur mit einem Menupunkt angefangen (oeffnen). Der Rest muss da noch entsprechend angepasst werden.

Fenster.java:

Code:
package listener;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.plaf.basic.BasicOptionPaneUI.ButtonActionListener;
import javax.swing.text.JTextComponent;

public class Fenster{

	/**
	 * Dateiname: Fenster.java
	 * Compiler: Eclipse SDK 3.2.1
	 * Autor: Tobias Fickinger
	 * Erstellungsdatum: 17.04.07
	 * Letzte Änderung: 23.04.07
	 * Beschreibung des Moduls: Hauptprogramm zur Anzeige eines simplen Fensters ohne Ereignisse. Methoden werden größtenteils aus der Klasse FensterElemente bezogen
	 * Paket: fenster (zusammen mit: FensterElemente.java)
	 */
	public static void main(String[] args) {
		// Instanzierung des Fensterobjekts
		ReservierungsFenster fensterobjekt = new ReservierungsFenster();
		// Sichtbarkeit festlegen
		Menu menu = new Menu();
		fensterobjekt.setJMenuBar(menu.setMenuBar());
		fensterobjekt.setVisible(true);
	}	
}

class ReservierungsFenster extends JFrame{
	private static final long serialVersionUID = 1L;
	public JTextField nameField;
	public JTextField emailField;
	public JButton buttonOK;
	
	// Konstruktoren
	
	public ReservierungsFenster(){
		// Konstruktoraufruf mit Parameter für Titelname des Fensters
		this("Platzreservierung");
	}
	
	public ReservierungsFenster( String titel ){
		super(titel);
		setSize(420,400);
		
		//Elemente holen
		FensterElemente element = new FensterElemente();

		// Gridbaglayout holen
		
	    GridBagLayout gbl = new GridBagLayout();
	    GridBagConstraints constr = new GridBagConstraints();

	    // ContentPane holen
	    
	    Container cpane = this.getContentPane();
	    cpane.setLayout (new BorderLayout());
	    
	    // Panels holen und mit GridBagLayout versehen

	    JPanel topPanel = new JPanel();
	    JPanel downPanel = new JPanel ();
	    topPanel.setLayout(gbl);
	    downPanel.setLayout(gbl);
	    
	    // Panel "oben" mit Elementen aus der Klasse FensterElemente füllen
	    
	    //JLabel erstellen
	    constr.gridx = 1;	//Spalte
	    constr.gridy = 0;	//Zeile
	    constr.anchor = GridBagConstraints.CENTER;	    
	    topPanel.add(element.createJLabel("Sitzplatzreservierung"), constr);
	    
	    //JLabel erstellen
	    constr.gridx = 0;
	    constr.gridy = 1;
	    constr.anchor = GridBagConstraints.EAST;
	    topPanel.add(element.createJLabel("Name"), constr);
	    
	    //TextField erstellen
	    constr.gridx = 1;
	    constr.gridy = 1;
	    constr.anchor = GridBagConstraints.EAST;
	    nameField = element.createTextField(20);
	    topPanel.add(nameField, constr);	    
	    
	    //JLabel erstellen
	    constr.gridx = 0;
	    constr.gridy = 2;
	    constr.anchor = GridBagConstraints.EAST;
	    topPanel.add(element.createJLabel("Email"), constr);	    

	    //TextField erstellen
	    constr.gridx = 1;
	    constr.gridy = 2;
	    constr.anchor = GridBagConstraints.EAST;
	    emailField = element.createTextField(20);
	    topPanel.add(emailField, constr);
	    
	    //Button erstellen
	    constr.gridx = 2;
	    constr.gridy = 3;
	    constr.anchor = GridBagConstraints.WEST;
	    buttonOK = element.createButton("OK");
	    topPanel.add(buttonOK, constr);
	    EventHandling bl = new EventHandling(); 
	    buttonOK.addActionListener(bl);	    

	    //TextArea erstellen
	    constr.gridx = 1;
	    constr.gridy = 4;
	    constr.anchor = GridBagConstraints.CENTER;
	    topPanel.add(element.createTextArea(3,19), constr);  

	    //Panel "unten" mit Elementen aus der Klasse FensterElemente füllen

	    //RadioButtons erstellen
	    constr.gridx = 0;
	    constr.gridy = 1;
	    constr.anchor = GridBagConstraints.WEST;
	    String[] title = new String[]{"Raucher", "Nichtraucher"};
	    boolean[] active = new boolean[]{ true, false};
	    downPanel.add(element.createRadioButtons(title, active), constr);

	    //ComboBox erstellen
	    constr.gridx = 1;
	    constr.gridy = 1;
	    constr.anchor = GridBagConstraints.NORTHWEST;
	    String[] content = new String[]{"Fensterplatz","Mittelgang","Loge","Schlafplatz"};
	    downPanel.add(element.createComboBox(content), constr);
	    
	    //Leeres JLabel erstellen
        constr.gridx = 2;
        constr.gridy = 1;
        constr.anchor = GridBagConstraints.WEST;
        downPanel.add(element.createEmptyJLabel(30), constr);	    

        //Checkboxen erstellen
	    constr.gridx = 3;
	    constr.gridy = 1;
	    constr.anchor = GridBagConstraints.EAST;
	    constr.gridwidth = GridBagConstraints.REMAINDER;
	    String[] inhalt = new String[]{"Handgepäck","Koffer"};
	    boolean[] status = new boolean[]{false,true};
	    downPanel.add(element.createCheckBox(inhalt,status), constr);
	    
	    //Leeres JLabel erstellen
        constr.gridx = 0;
        constr.gridy = 2;
        constr.anchor = GridBagConstraints.WEST;
        downPanel.add(element.createEmptyJLabel(30), constr);
        
	    //Leeres JLabel erstellen
        constr.gridx = 0;
        constr.gridy = 3;
        constr.anchor = GridBagConstraints.WEST;
        downPanel.add(element.createEmptyJLabel(30), constr);
        
	    //Leeres JLabel erstellen
        constr.gridx = 0;
        constr.gridy = 4;
        constr.anchor = GridBagConstraints.WEST;        
        downPanel.add(element.createEmptyJLabel(30), constr);        
    
	    
	    // fertige topPanel und downPanel auf cpane legen
	    cpane.add(topPanel, BorderLayout.NORTH);
        cpane.add(downPanel, BorderLayout.SOUTH); 
	}
	class EventHandling implements ActionListener{
		public void actionPerformed(ActionEvent event){
			Object source = event.getSource();
			
			/*if(source == buttonOK){
				String contentEmailField = emailField.getText();
				String contentNameField = nameField.getText();
				System.out.println("Name: " + contentNameField +
									"\nEmail: " + contentEmailField);	 
			}*/
			if(source == buttonOK){
				FileDialog dialog = new FileDialog(this, "Datei laden...",FileDialog.LOAD);  
			    dialog.setSize(400, 100);   
			    dialog.show(); 
			}
			/*else if(source == ){
				
			}
			else if(source == ){
				
			}*/
		}	
	}
}//Ende der Klasse ReservierungsFenster


Menu.java:


Code:
package listener;

import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;

import listener.ReservierungsFenster.EventHandling;

public class Menu extends JMenuBar{
		public Menu(){
			
		}
		
		public JMenuBar setMenuBar(){
			ReservierungsFenster rF = new ReservierungsFenster();
			// Menüleiste erzeugen
			JMenuBar menuBar = new JMenuBar();

			JMenu menu1 = new JMenu("Datei");
			JMenuItem oeffnen = new JMenuItem("Öffnen");
			menu1.add(oeffnen);
			EventHandling bl = rF.new EventHandling(); 
		    oeffnen.addActionListener(bl);
			menu1.add(new JMenuItem("Sichern"));
			menu1.add(new JMenuItem("Beenden"));
			// Menü zur Menüleiste hinzufügen
			menuBar.add(menu1);

			JMenu menu2 = new JMenu("look&feel");
			menu2.add(new JMenuItem("Windows"));
			menu2.add(new JMenuItem("Metal"));
			menu2.add(new JMenuItem("Motif"));
			// Menü zur Menüleiste hinzufügen
			menuBar.add(menu2);
			
			JMenu menu3 = new JMenu("Info");
			menu3.add(new JMenuItem("Autor"));
			menu3.add(new JMenuItem("Help"));
			// Menü zur Menüleiste hinzufügen
			menuBar.add(menu3);			

			// Menüleiste setzen
			//getRootPane().setJMenuBar(menuBar);
			return menuBar;
		}
}
 

Marco13

Top Contributor
Ja, das stimmt halt von der Stuktur her nicht so ganz.
Code:
   public JMenuBar setMenuBar(){
         ReservierungsFenster rF = new ReservierungsFenster();
         ...
        EventHandling bl = rF.new EventHandling();
        oeffnen.addActionListener(bl);
Es hat schon einen Grund, dass man eine Instanz von ReservierungsFenster braucht, um "new EventHandling" erstellen zu können: Jede Instanz von EventHandling ist mit der übergeordneten Instanz von ReservierungsFenster verbunden. Dadurch, dass du hier ein neues ReservierungsFenster nur als "Hilfs-Objekt" erstellst, machst du diese Verbindung aber kaputt (obwohl du sie an anderer Stelle brauchen könntest).

Wenn man versuchen würde, das mit möglichst wenigen Änderungen(!) zum Laufen zu bringen, würde es vielleicht grob so aussehen:
Code:
   public static void main(String[] args) {
      // Instanzierung des Fensterobjekts
      ReservierungsFenster fensterobjekt = new ReservierungsFenster();
      // Sichtbarkeit festlegen

      // Menu nicht hier erstellen!

      fensterobjekt.setVisible(true);
   }   
}

class ReservierungsFenster extends JFrame{
   private static final long serialVersionUID = 1L;
   public JTextField nameField;
   public JTextField emailField;
   public JButton buttonOK;
   
   private ActionListener meinActionListener = new EventHandling(); // Hier EINE instanz von EventHandling erstellen

   // Konstruktoren
  
   public ReservierungsFenster(){
      // Konstruktoraufruf mit Parameter für Titelname des Fensters
      this("Platzreservierung");
   }
   
   public ReservierungsFenster( String titel ){
      super(titel);
      setSize(420,400);

      // Hier wird das menu erstellt, und der oben erstellte EventHandler übergeben
      Menu menu = new Menu(meinActionListener );
      fensterobjekt.setJMenuBar(menu);

      // Der gleiche EventHandler wird auch an den Button übergeben
      ....
      buttonOK.addActionListener(meinActionListener);       

    }


   class EventHandling implements ActionListener{
      public void actionPerformed(ActionEvent event){
         Object source = event.getSource();
         
         if(source == buttonOK){

             // Hier sagen, dass mit "this" die EINSCHLIESSENDE ReservierungsFenster-Instanz gemeint ist
            FileDialog dialog = new FileDialog(ReservierungsFenster.this, "Datei laden...",FileDialog.LOAD); 
             dialog.setSize(400, 100);   
             dialog.show();
         }

          // Hier können die ActionCommands der Menüeinträge abgefragt werden
         if (event.getActionCommand().equals("Sichern"))
         {
         }


      }   
   }
}//Ende der Klasse ReservierungsFenster

//---------------------------------------------- Menu klasse

public class Menu extends JMenuBar{

      // Die Klasse bekommt beim erstellen den EventHandling-ActionListener übergeben
       private ActionListener actionListener;
      public Menu(ActionListener actionListener){
           this.actionListener = actionListener;

         JMenu menu1 = new JMenu("Datei");
         JMenuItem oeffnen = new JMenuItem("Öffnen");
         menu1.add(oeffnen);

          // Hier wird der ActionListener an die Menüeinträge gehängt
         oeffnen.addActionListener(actionListener);
         menu1.add(new JMenuItem("Sichern"));
         menu1.add(new JMenuItem("Beenden"));

         // Menü zur Menüleiste hinzufügen
         this.add(menu1); 
    
....


Aber eine "schöne" Lösung ist das in dieser Form nicht!!!
 
G

Gast

Gast
Hallo,

erstmal danke für deine ausführliche Antwort.

Habe es mal so übernommen, bekomme jedoch in Zeile 34 (deines Codes) die Fehlermeldung: "fensterobjekt" cannot be resolved. Da ich diese Fehlermeldung beim Erstellen meines Menüs schonmal hatte, habe ich es "damals" in die main geschoben und der Fehler war behoben...?!

Ansonsten interessiert mich natürlich wie (vom groben Aufbau her) eine gute Lösung aussehen würde. Problem bei dieser Aufgabe scheint mir die extra Fensterklasse zu sein. Gehört aber zur Aufgabenstellung...

Nochmals Danke!
 

tobitobsen82

Mitglied
Ich bin der "Gast".

Habe mich eben vertippt. Das Problem sollte nicht die "extra Fensterklasse" sein sondern die "extra Menuklasse".
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
I Java Mail Timeout erst nach rund 5 Minuten? Java Basics - Anfänger-Themen 9
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
D Programmieren nach UML Java Basics - Anfänger-Themen 2
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
M Bei nach oben scrollen soll Seite aktualisiert werden (Userscript mit Javascript) Java Basics - Anfänger-Themen 10
K log4j nach log4j2 überführen Java Basics - Anfänger-Themen 0
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Zahlungen nach Monat filtern Java Basics - Anfänger-Themen 2
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
I String nach Wort suchen Java Basics - Anfänger-Themen 6
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Liste gruppieren nach Monat? Java Basics - Anfänger-Themen 5
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
C Lotto 3, 4, 5, 6 Richtige nach x Ziehungen ermittelt.. Java Basics - Anfänger-Themen 7
G Primzahlen von Rekursiv nach Iterativ Java Basics - Anfänger-Themen 6
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
R JDK installieren Durcheinander nach installation von SE 14.02 Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
B DateTimeFormatter nach LocalDateTime, wenn dd.MM.yyyy oder dd.MM.yyyy mm:hh Java Basics - Anfänger-Themen 5
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
G unklares Verhalten nach Instanzierung neuer Klasse Java Basics - Anfänger-Themen 3
S Wohin kommt das „abstract“? Vor oder nach „public“/ „private“ /... Java Basics - Anfänger-Themen 3
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
N Operatoren Schreibtischtest der Reihen-Suche nach Aufschluss in die Basics Java Basics - Anfänger-Themen 1
B Umstieg von C# nach Java Java Basics - Anfänger-Themen 18
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
M Untersuchen ob ein Graph nach entfernen einer Kante immer noch zusammenhängend ist Java Basics - Anfänger-Themen 70
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
CptK Best Practice Algorithmus nach jedem Schritt zum Visualisieren pausieren Java Basics - Anfänger-Themen 3
O zwei Arrays nach Werten durchsuchen und zusammenfügen Java Basics - Anfänger-Themen 3
M Double Wert nach n abschneiden ohne zu runden Java Basics - Anfänger-Themen 1
C Erste Schritte Bilder nach Export anzeigen Java Basics - Anfänger-Themen 0
F Input/Output Files von A nach B kopieren Java Basics - Anfänger-Themen 11
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
O ADT Graph nach größe Abfragen Java Basics - Anfänger-Themen 42
O compareTo nach mehreren Kriterien Java Basics - Anfänger-Themen 13
R Benutzereingaben als Array abspeichern nach Programmstart Java Basics - Anfänger-Themen 5
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
L Arrayliste von hinten nach vorne ausgeben Java Basics - Anfänger-Themen 10
F Array nach Objektattribut durchsuchen Java Basics - Anfänger-Themen 6
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
Hanschyo Quicksort sortiert von groß nach klein Java Basics - Anfänger-Themen 3
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
B String nach HTML formatieren Java Basics - Anfänger-Themen 9
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben