non-static method blub cannot be referenced from a static context

  • Themenstarter Themenstarter Qg7
  • Beginndatum Beginndatum
Q

Qg7

Gast
Ich moechte ueberpruefen, ob der eingegebene Text numerisch ist, was soweit auch klappt. Ist der Text numerisch, passiert garnichts, ist dies aber nicht der Fall, soll es eine Fehlermeldung geben.

Java:
private void plzFocusLost(java.awt.event.FocusEvent evt) {                              
        if(!plz.getText().isEmpty())
        {
            try
            {
                int int1 = Integer.parseInt(plz.getText());
            }
            catch(Throwable e)
            {
                fehlerAusgeben1("Platzhalter");
            }
        }
    }

Wird ein Fehler abgefangen, soll sich ein Fehlerfenster oeffnen... dafuer wird die private Methode fehlerAusgeben1() aufgerufen...

Java:
private void fehlerAusgeben1(String xxx)
    {
        Fehler fehler = new Fehler(this, true);
        fehler.setVisible(true);
        p1.Fehler.fehlertextAendern(xxx);
    }

diese Methode soll fehlerfenster erzeugen und in der Klasse Fehler im Paket p1 die Methode "fehlertextAendern()" aufrufen, und den String uebergeben...

Java:
    public void fehlertextAendern(String fehlertext)
    {
        this.fehlertext.setText(fehlertext);
    }
Da das jTextfield private ist, bekommt es eine set-methode, welche den fehlertext aendern soll... am Ende sollte dort "Platzhalter" in dem bsp. stehen... tut es aber nicht...
warum nicht? und wo hab ich große Schnitzer gemacht? :/

wollte die Eingabe erst mit einem documentListener ueberpruefen, aber nach zig versuchen lief dies nicht und dann dacht ich mir, machst es eben anders. ^^

dankeschoen im vorraus
 
Java:
private void fehlerAusgeben1(String xxx)
    {
        Fehler fehler = new Fehler(this, true);
        fehler.setVisible(true);
        fehler.fehlertextAendern(xxx); //vermutlich suchst du eher das
    }
Aber dann kansnt du auch gleich der Fehlerklasse die Fehlermeldung im Konstruktor mitgeben.
 
jetzt klappt zwar das kompilieren, aber wenn ich ein objekt der klasse erzeugen moechte kommt folgendes in der konsole:
Java:
java.lang.NoClassDefFoundError: p1/Main
Caused by: java.lang.ClassNotFoundException: p1.Main
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: p1.Main.  Program will exit.
Exception in thread "main" Java Result: 1

und wenn ichs ueber einen debugrun versuche, klappt es in sofern, als dass das fehlerfenster aufgerufen wird, aber der zu uebergebene text ist nicht der, den ich angeben moechte... sprich im obrigen fall "Platzhalter"
 
okay, fehler gefunden... groß und kleinschreibung ist in java leider doch recht wichtig...^^

aber meine eigentliche frage war, wieso das fehlerfenster in dem jtextfield trotz der uebergabe nun einen leeren string haellt(was er auch haben soll, zumindestens bis zur uebergabe des strings, aber daran scheitert es scheinbar)..
 

Zurück
Oben