Ein Frame im Applet öffnen

crazymoose

Grünschnabel
Hallo liebes tutorials-forum:)
Ich hab ein Problem mit meinem Java Applet.. bin noch Anfänger also nehmts mir nicht böse wenn ich einen total schwachsinnigen Fehler drin habe :mad:
Hier das Problem: Ich habe eine Menuseite im Array, auf dieser ist ein Button! Wenn dieser gedrückt wird soll ein Frame aus einer anderen Klasse aufgerufen werden in dem man Name, Alter und Geschlecht eingibt! Dieses wird auch geöffnet, Ich habe jedoch das Problem, dass die Funktionen in diesem Frame nichtmehr funktionieren, sprich die Userdaten werden nicht in die Variablen gespeichert und auch keine Fehlermeldungen ausgegeben! Hier teile vom Code:

Applet:

Code:
	// Maus
	public boolean mouseDown (Event e, int x, int y)
	{
		if(iStatus == 0)
		{
			MemMan.showPic(this, x, y);
		}
		
		
		if(336<x && x<413 && 350<y && y<427)
		{
			UserData.Frame ();
			UserData.actionPerformed();
			UserData.windowClosing(); 
			UserData.windowActivated();
  			UserData.windowClosed();
  			UserData.windowDeactivated();
  			UserData.windowDeiconified();
  			UserData.windowIconified();
  			UserData.windowOpened();
			
			
		}




Hier die Classe mit dem Frame:

Code:
// Pakete importieren
 import java.awt.*; 
 import java.awt.event.*; 
 import java.io.*;
 import java.util.Arrays; //kp was das is/ob man das braucht

 
 class UserData extends Frame implements ActionListener, WindowListener
 {
 	//Variablen
	String path = "highscore.txt"; //Pfad für textdatei
	int score = 0;			   		//Score
 	String name = "Konstantin";	   //Name
 	String sex = "male";	       //Geschlecht
 	String age = "17";			   //Alter
 	String userDaten;				//Komplette Userdaten
 	static UserData myapp;    		//Name des Fensters
 	static Label label;			   //Anzeige z.b. fuer fehlerausgaben
 	static TextField text;		   //Textfeld1
 	static TextField text2;		   //Textfeld1
 	static Choice dropdown;		   //Dropdown für Geschlechtsauswahl
 	static Button save; 		   //Button zum Speichern der Daten
 	static Button start;		   //Button zum Spiel starten (noch ohne Funktion)
 	String[] datenArray = new String[6]; //
	int[] scoreArray = new int[6];
		
 	
 	
 	public static void Frame ()
 	{
    
    	myapp = new UserData(); 
    	myapp.setLayout(new GridLayout(6,0)); 
    	myapp.setSize(400, 200); 
    	label = new Label("Name MUSS angegeben werden und min. 4 und max. 10 Buchstaben haben"); 
    	myapp.add(label);
    	text = new TextField("Name",10);
    	text2 = new TextField("Alter",2);
    	dropdown = new Choice();
		dropdown.addItem("male");
		dropdown.addItem("female");
    	myapp.add(text);
    	myapp.add(dropdown);
    	myapp.add(text2);
    	save = new Button("Daten speichern"); 
    	save.addActionListener(myapp); 
    	myapp.add(save);
    	start = new Button("Spiel starten");
    	myapp.add(start);
    	start.addActionListener(myapp); 
    	myapp.addWindowListener(myapp); 
    	myapp.setVisible(true); 
 	
 	}
 	
 	public void actionPerformed(ActionEvent ev)
  	{ 
 		//Score in String umwandeln (zum in die Datei schreiben) und alle Daten zu einem String zusammenfassen
 		name= text.getText(); 
 		age = text2.getText(); 
 		sex = dropdown.getSelectedItem();
 		
 		userDaten = name+" "+age+" "+sex;
		datenArray[5]= userDaten;
		
		if(name.length() >4)
 			{
 				label.setText("Datei wurde erfolgreich gespeichert."); //Gibt Text in dem Label aus
 			}
			else
			{
				label.setText("Bitte Namen angeben!!"); //Bitte mindestens Namen angeben!
				text.setText("Name");
				text2.setText("Alter");	
			}

    }
    
    public void windowClosing(WindowEvent ev) 
  	{ 
    	myapp.setVisible(false); 
    	myapp.dispose(); 
    	System.exit(1); 
  	}
  	
  	public void windowActivated(WindowEvent ev) { } 
  	public void windowClosed(WindowEvent ev) { } 
  	public void windowDeactivated(WindowEvent ev) { } 
  	public void windowDeiconified(WindowEvent ev) { } 
  	public void windowIconified(WindowEvent ev) { } 
  	public void windowOpened(WindowEvent ev) { }

Wär cool wenn ihr mir helfen könnt! (normal sollte alles in dem Frame funktionieren bis auf den "Start"-Button)

Mfg crazymoose
 
Zuerstmal: bitte für Java-Code den entsprechenden JAVA-Tag zur Formatierung verwenden, macht das Lesen einfacher.
Mal abgesehen von grundsätzlichen Designüberlegungen: Du erzeugst in Deiner Methode Frame() ein neues UserData-Objekt, also sozusagen ein UserData-Objekt in einem UserData-Objekt. Im Prinzip solltest Du sämtliche Vorkommen von "myapp" durch "this" ersetzen, da Du ja mit diesem Objekt arbeiten möchtest - und nicht ein neues darin erstellen möchtest.
Lies unbedingt mal die Basics über Klassen, v.a. Konstruktoren, nach!
 
Hey! Erstmal danke für die Nachricht! Hab alles so geändert wie du es gesagt hast! Hatte das vergessen zu ändern weil ich den Frame voher in ner extra Datei hatte! Leider funktioniert es immernoch nicht! Nur schließen, minimieren und maximieren funktioniert! Außerdem ist mir aufgefallen, wenn ich eine neuen Text ins Laben schreibe und das Projekt kompiliere dann wird immernoch der alte Text angezeigt :confused:

mfg crazymoose
 
Zurück