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
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.
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 ^^
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!!
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.
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.
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.