Seltsames Problem mit this!

Status
Nicht offen für weitere Antworten.

Der Programmierer

Aktives Mitglied
Hi leutz,

Ich hab eben ein bisschen rumprogrammiert und habn kleines Problem mit nem this Zeiger!
Code:
public class pr extends JFrame 
{

	public static void main(String[] args)
	{
		pr fenster = new pr("Schülerverwaltungssystem"); //Fenster einrichten
		fenster.pack();
		fenster.setSize(640,480);
		fenster.setVisible(true);

		password test=new password(fenster,"Passworteingabe");  //Passwortdialog aufrufen
		test.setLocation(150,150);
		test.setVisible(true);

		

	}

//... Es waren einmal einige hundert Zeilen Code

			if(label.equals("Mac Os"))
			{
		       		try {
         			UIManager.setLookAndFeel("javax.swing.plaf.mac.MacLookAndFeel");

  			        SwingUtilities.updateComponentTreeUI(this);// hier passierts dann 
				}


				catch(Exception ef)
				{
						System.out.println("Tja");
				}
		        }

An der makierten Stelle sagt er mir er würde die Variable/klasse nicht finden.
Aber müsste der this zeiger nicht auf das aktuelle Fenster zeigen und er müsste ohne zu meckern den Code interpretieren`?

Ich bitte um eure Hilfe und schon mal danke im vorraus
Der Programmierer
 

hupfdule

Top Contributor
Im Ausschnitt siehts gut aus. Zeig doch mal die genaue Fehlermeldung. Könnte es sein, dass du es aus einem statischen Kontext heraus aufrufst?
 
S

Sym

Gast
Statische Methode -> kein this. ;)

Tante Edit sagt genauer:
Eine statische Methode (hier die main) hat keinen Objekt-Bezug zu der Klasse. Deshalb kommst Du auch nicht weit mit this. ;)
 

Waldbeere

Mitglied
Also, wenn ich mir den Code so angucke kann man doch gar nicht sehen ob es ne statische Methode ist wo das 'this' aufgerufen wird? Vielleicht ist es ja ne Methode vom Objekt, dann wäre ja alles ok in der Hinsicht.
Also wie gesagt, guck mal ob die Methode statisch ist, wie meine Vorschreiber geschrieben haben, ansonsten
guck doch mal ob Du alle nötigen Klassen importiert hast. Ah und bei dem catch Zweig des Exception-Handlings
schreibst Du am besten folgendes:

Code:
    try {
         UIManager.setLookAndFeel("javax.swing.plaf.mac.MacLookAndFeel");
        SwingUtilities.updateComponentTreeUI(this);    // hier passierts dann
    } catch(Exception ef) {
         ef.printStackTrace();    //<--- Informativer als: System.out.println("Tja"); 
    }

Das gibt dir ein bißchen mehr Auskunft über den Fehler. :)

Gruß Waldbeere
 
S

Sym

Gast
So wie der Code gepostet wurde, bin ich von der main ausgegangen. Also alles in den Konstruktor und dann klappt das auch.
 

Der Programmierer

Aktives Mitglied
ich glaub ihr versteht mein problem nicht so richtig.
Ich denke ich sollte mal mehr code posten:

Code:
public class pr extends JFrame 

	

public static void main(String[] args)
	{
		pr fenster = new pr("Schülerverwaltungssystem"); //Fenster einrichten
		fenster.pack();
		fenster.setSize(640,480);
		fenster.setVisible(true);

		password test=new password(fenster,"Passworteingabe");  //Passwortdialog aufrufen
		test.setLocation(150,150);
		test.setVisible(true);

		
	}



	JTextArea kurzinfo;
	JButton   aktualis;
	public int anzahl_klassen;
	JMenuBar  menueleiste;
	String short_information = "Sie haben ";
	public klasse klassen[];
	public String Sneue_klasse;

	class lauscher implements ActionListener
	{

		public void actionPerformed(ActionEvent e)
		{	
			String label;
			label = e.getActionCommand();
			if(label.equals("Klasse hinzufügen"))
			{
				klasse_hinzufuegen neue_klasse;
				neue_klasse = new klasse_hinzufuegen(null, "Klasse hinzufügen");
				anzahl_klassen = anzahl_klassen + 1;
				neue_klasse.setLocation(150,150);
				neue_klasse.setVisible(true);
				Sneue_klasse = neue_klasse.name();
				System.out.println(Sneue_klasse);
			}

			if(label.equals("Mac Os"))
			{
		       		try {
         			UIManager.setLookAndFeel("javax.swing.plaf.mac.MacLookAndFeel");

        			SwingUtilities.updateComponentTreeUI(null);
				}


				catch(Exception ef)
				{
						System.out.println("Tja");
				}
		        }

		}

This geht ja nicht und der methode actionPerformed kann ich das ja nicht übergeben weil die automatisch aufgerufen wird und ich sie nicht explizit aufrufe.
Deshalb hab ich keinen Plan wie ich in die actionPerformed methode mein fenster bekomme ^^
 
G

Guest

Gast
Guckst du :



Code:
class lauscher implements ActionListener {


     private fenster;

     public lauscher(pr fenster){
          this.fenster = fenster;
     }

      public void actionPerformed(ActionEvent e) {   
         String label; 
         // jetzt hast du deine Fenster instanz in der Aktion
         fenster.close();
      }

}
 

Azrahel

Bekanntes Mitglied
genau, in deinem ersten Fall bezog sich das this im AktionListener logischerweise auch auf den AktionListener, und der kann das nun mal nicht :wink:

Aber geht das so wie ggast grad geschrieben hat?
Ich hätts so gemacht:
Code:
public class pr extends JFrame 

private pr fenster;

    

public static void main(String[] args) 
   { 
      fenster = new pr("Schülerverwaltungssystem"); //Fenster einrichten 
      fenster.pack(); 
      fenster.setSize(640,480); 
      fenster.setVisible(true); 

      password test=new password(fenster,"Passworteingabe");  //Passwortdialog aufrufen 
      test.setLocation(150,150); 
      test.setVisible(true); 

       
   } 



   JTextArea kurzinfo; 
   JButton   aktualis; 
   public int anzahl_klassen; 
   JMenuBar  menueleiste; 
   String short_information = "Sie haben "; 
   public klasse klassen[]; 
   public String Sneue_klasse; 

   class lauscher implements ActionListener 
   { 

      public void actionPerformed(ActionEvent e) 
      {    
         String label; 
         label = e.getActionCommand(); 
         if(label.equals("Klasse hinzufügen")) 
         { 
            klasse_hinzufuegen neue_klasse; 
            neue_klasse = new klasse_hinzufuegen(null, "Klasse hinzufügen"); 
            anzahl_klassen = anzahl_klassen + 1; 
            neue_klasse.setLocation(150,150); 
            neue_klasse.setVisible(true); 
            Sneue_klasse = neue_klasse.name(); 
            System.out.println(Sneue_klasse); 
         } 

         if(label.equals("Mac Os")) 
         { 
                   try { 
                  UIManager.setLookAndFeel("javax.swing.plaf.mac.MacLookAndFeel"); 

                 SwingUtilities.updateComponentTreeUI(fenster); 
            } 


            catch(Exception ef) 
            { 
                  System.out.println("Tja"); 
            } 
              } 

      }

hmm sollte aber wohl beides gehen bei näherem Nachdenken
 
S

Sym

Gast
Ui, wie umständlich. Nicht nur vom Frame erben, sondern auch den Listener implementieren. Dann klappt es auch mit this. Ist kurz und sieht gut aus.

Tante Edith:
Ein ungetestetes Beispiel:
Code:
public class pr extends JFrame implements ActionListener

   

public static void main(String[] args)
   {
      pr fenster = new pr("Schülerverwaltungssystem"); //Fenster einrichten
      fenster.pack();
      fenster.setSize(640,480);
      fenster.setVisible(true);

      password test=new password(fenster,"Passworteingabe");  //Passwortdialog aufrufen
      test.setLocation(150,150);
      test.setVisible(true);

      
   }



   JTextArea kurzinfo;
   JButton   aktualis;
   public int anzahl_klassen;
   JMenuBar  menueleiste;
   String short_information = "Sie haben ";
   public klasse klassen[];
   public String Sneue_klasse;

   public void actionPerformed(ActionEvent e)
   {   
      String label;
      label = e.getActionCommand();
      if(label.equals("Klasse hinzufügen"))
      {
         klasse_hinzufuegen neue_klasse;
         neue_klasse = new klasse_hinzufuegen(null, "Klasse hinzufügen");
         anzahl_klassen = anzahl_klassen + 1;
         neue_klasse.setLocation(150,150);
         neue_klasse.setVisible(true);
         Sneue_klasse = neue_klasse.name();
         System.out.println(Sneue_klasse);
      }

      if(label.equals("Mac Os"))
      {
                try {
               UIManager.setLookAndFeel("javax.swing.plaf.mac.MacLookAndFeel");

              SwingUtilities.updateComponentTreeUI(this);
         }


         catch(Exception ef)
         {
               System.out.println("Tja");
         }
      }
 
G

Gast

Gast
Hier nochmal der Gast.

Natürlich gibt es da viele Wege, allerdings je komplizierter die Anwendung wird, desto besser sollte das Design der Applikation sein.

Von daher sollte man die Funktionalitäten soweit wie irgend möglich kapseln und definierte Schnittstellen bieten.

Von daher klappt die letzte Lösung zwar wunderbar und ist bei "kleinen" Anwendungen durchaus vertretbar, allerdings ist es später nicht gerade hilfreich, einfach alles in eine Klasse zu packen und überall bekannt zu haben.

Wenn du z.B. noch einen zweiten Listener brauchst wird es mit der letzten Lösung schon etwas schwerer.

Also erst Konzept überlegen, dann Abhängigkeiten definieren und dann Programmieren. Mit dieser Struktur kann man garnicht früh genug anfangen!!
 
S

Sym

Gast
Ja sicher kommt es auf die Situation an. Aber hier ist ein Kapseln einfach nicht nötig.

Ich persönlich stehe sowieso lieber auf Inline-Listener. ;)
 

Der Programmierer

Aktives Mitglied
Hi,

ich bins wieder.
Es hat jetzt eigentlich nichts mit dem Thema zu tun aber ich hoffe ihr verzeiht mir wenn ich trotzdem noch ne Frage in diesem Thread hier stelle anstatt extra einen Aufzumachen.

Ich hab jetzt die Grundlagen von Swing, AWT und co. gelernt. Etwas praktische erfahrung gesammelt.
Aber ich weiß nicht wie ich jetzt weiter machen soll.
Ich hab mir überlegt ob ich mir ein Buch über J2EE holen soll.
Oder vielleicht das Java Kompendium.
Was denkt ihr? Da alle Bücher über J2EE die ich bis jetzt gesehen habe relativ viel Geld kosten will ich nicht, dass Geld einfach ausgeben und dann hinterher überlegen ob es sich gelohnt hat oder nicht. Deshalb frag ich lieber nach eurer kompetenten Meinung.

mfg
DerProgrammierer
 

Leroy42

Top Contributor
Für den Anfang sollte das freie Sun-Tutorial für J2EE vollkommen
ausreichen. Bleibt allerdings die Frage, ob du auch serverseitig
programmieren / Erfahrungen sammeln willst.
 

Der Programmierer

Aktives Mitglied
Für den Anfang sollte das freie Sun-Tutorial für J2EE vollkommen
ausreichen. Bleibt allerdings die Frage, ob du auch serverseitig
programmieren / Erfahrungen sammeln willst.

Im grunde genommen will ich momentan in ziemlich allem erfahrung sammeln.
Allerdings erstmal hauptsächlich (offline)Software.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Seltsames numerisches Problem Java Basics - Anfänger-Themen 5
S Seltsames Java Problem Java Basics - Anfänger-Themen 3
M Seltsames java.util.Date Problem Java Basics - Anfänger-Themen 6
M Seltsames Problem Java Basics - Anfänger-Themen 4
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Compiler-Fehler Seltsames Typverhalten eines Iterators Java Basics - Anfänger-Themen 3
D Seltsames Verhalten... Java Basics - Anfänger-Themen 5
K Seltsames Ergebnis in Netbeans bei einfacher Multiplikation Java Basics - Anfänger-Themen 5
J Doppelte Integer aus einem Array entfernen - seltsames Prob. Java Basics - Anfänger-Themen 5
F Seltsames Konstrukt? Java Basics - Anfänger-Themen 5
M seltsames Phänomen in der Auswertung boolscher Variablen Java Basics - Anfänger-Themen 7
A Seltsames Verhalten beim ButtonClick (ActionListener() ) Java Basics - Anfänger-Themen 7
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
C Regex-Problem Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
M Problem in der Modellierung Java Basics - Anfänger-Themen 20

Ähnliche Java Themen


Oben