Static context?

Status
Nicht offen für weitere Antworten.
R

rogger

Gast
Hallo,
ich habe ein total komisches Problem.

Ich möchte in einer Klasse eine void aus einer anderen Klasse verwenden.
Hm, unverständlich?

Code aus beeEntryEditor.java
Code:
...
class beeEntryEditor extends JFrame implements ActionListener
{
...
   public void actionPerformed(ActionEvent ae)
   {
       Object source = ae.getSource();
       if(source == save)
       {
           beeMain.addEntryToBox(textField.getText());
       }
       ...
   }
...
}

Code aus beeMain.java
Code:
public class beeMain extends JFrame
{
   ...
   public void addEntryToBox(String s)
   {
       ...
   }
}

Sollte ja alles funktionieren.
Leider bekomme ich immer folgenden Fehler ausgegeben:
C:\...\Desktop\project#Bee\beeEntryEditor.java:88: non-static method addEntryToBox(java.lang.String) cannot be referenced from a static context
beeMain.addEntryToBox(textField.getText());

Wieso "static context"? actionPerformed ist doch gar nicht static.
Also ich hab schon alles mögliche probiert.
Ich weiß echt nicht mehr, was ich noch tun kann.

Hat jemand ne Ahnung zur Lösung meines Problems?

'Würde mich sehr über schnelle Antworten freuen.

Mfg. rogger
 

Murray

Top Contributor
Du brauchst eine Instanz der Klasse beeMain (die Klasse sollte besser mit einem Großbuchstaben beginnen), damit du eine Instanzmethode aufrufen kannst.
 
R

rogger

Gast
Boah sorry. Bin Anfänger :oops: .
Könntest du es vielleicht ein bisschen genauer erklären?
Wie erstelle ich eine Instanz-Methode?
 

Murray

Top Contributor
rogger hat gesagt.:
Wie erstelle ich eine Instanz-Methode?
Das hast du bereits - jede Methode, die nicht explizit als "static" deklariert wurde, ist eine Instanzmethode.

Hast du in der Klasse beeEntryEditor irgendwo eine Referenz auf ein Objekt vom Typ beeMain? Wenn ja, dann ruf daran die Methode auf. Existiert so eine Referenz noch nicht, dann musst du das Klassendesign möglichweise nochmal überdenken. Welche Aufgaben habe denn beeMain und beeEntryEditor? Wo werden Objekte dieser Klassen erzeugt?
 
R

rogger

Gast
Nein, so eine Referenz habe ich nicht.
Wie macht man sowas?
Aus der beeMain.addEntryToBox() werden in der Klasse beeMain() Elemente der GUI verändert (bsp.: textField.setEnabled(false);).
Die Funktion wird dann von beeEntryEditor() aus aufgerufen.
 

Murray

Top Contributor
rogger hat gesagt.:
Aus der beeMain.addEntryToBox() werden in der Klasse beeMain() Elemente der GUI verändert (bsp.: textField.setEnabled(false);).
Die Funktion wird dann von beeEntryEditor() aus aufgerufen.
Das ist schon klar. Aber irgendwo muss etwas wie new beeMain() und new beeEntryEditor() stehen; wo passiert das?
 
R

rogger

Gast
Stand vorher nicht drin.
Nur ausschließlich: beeMain.addEntryToBox();

Jetzt habe ich auf folgendes erweitert:
Code:
beeMain ba = new beeMain();
ba.addEntryToBox(textField.getText());

Jetzt bekomme ich aber den Fehler:
C:\...\Desktop\project#Bee\beeEntryEditor.java:88: cannot find symbol
symbol : constructor beeMain()
location: class beeMain
beeMain ba = new beeMain();

??? :?:
 

Murray

Top Contributor
Wenn vorher nirgends eine Instanz von beeMain erzeugt wurde - wozu dient sie dann, und warum ist sie von JFrame abgeleitet?

Und wo und wie wird eine Instanz von beeEntryEditor erzeugt?
 
G

Guest

Gast
:shock:
Sorry, aber ich versteh wirklich gar nix.
Nochmal:
Folgendes steht jetzt in der Klasse beeEntryEditor():
Code:
beeMain ba = new beeMain();
ba.addEntryToBox(textField.getText());
Jetzt habe ich doch eine "instanz von beeMain" erzeugt, oder?

Und wieso sollte ich jetzt noch eine von beeEntryEditor() benötigen?
 

Murray

Top Contributor
Du sollst erstmal nichts ändern; ich versuche doch nur, dein Programm zu verstehen. Eine Instanz von beeEntryEditor muss es bereits geben, sonst könnte doch die actionPerformed-Methode niemals aufgerufen werden. Ich wüsste nur gern, wo die entsteht, und wie der Code, wo das geschieht, in Verbindung zu deinen Klassen beeMain und beeEntryEditor steht.
 
G

Guest

Gast
Achso, klar!
die beeMain ist meine Main-Klasse. Wenn man diese öffnet und in der GUI einen bestimmten button klickt reagiert die actionPerformed der beeMain-Klasse mit folgendem:
Code:
...
public void actionPerfromed(ActionEvent ae)
{
   Object source = ae.getSource();
   if(source == open)
   {
      // Hier wird also die GUI in der beeEntryEditor-Klasse gestartet
      beeEntryEditor editor = new beeEntryEditor()
      editor.setVisible(true);
      editor.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    ...
}

Jetzt wird also die GUI von beeEntryEditor gestartet. (FUNKTIONIERT)
Wen man nun in dieser auf einen weiteren Button klickt, reagiert die actionPerformed der beeEntryEditor mit folgendem:
Code:
...
public void actionPerfromed(ActionEvent ae)
{
   Object source = ae.getSource();
   if(source == b1)
   {
       beeMain ba = new beeMain();
       ba.addEntryToBox(textField.getText());
   }
    ...
}

Daraufhin wird also aus der Main-Klasse (beeMain) eine Funktion aufgerufen (public void addEntryToBox(String s)).
Diese verändert in der beeMain einige Elemente. (FUNKTIONIERT NICHT)
 

Murray

Top Contributor
OK, dann bau mal in beeEntryEditor ein Member vom Typ beeMain ein und eine set-Methode dafür.

Code:
public class beeEntryEditor {
  /* ... */
  private beeMain instBeeMain;

  /* ... */ 
  public void setBeeMain( final beeMain bm) {
    instBeeMain = bm;
  }
  /* ... */ 

}

Beim Erzeugen hinterlegst du jetzt die Referenz:
Code:
public class beeMain {
/* ... */
  public void actionPerfromed(ActionEvent ae)
  {
     Object source = ae.getSource();
     if(source == open)
     {
        // Hier wird also die GUI in der beeEntryEditor-Klasse gestartet
        beeEntryEditor editor = new beeEntryEditor()
        editor.setBeeMain( this); //--- hier wird die Referenz hinterlegt
        editor.setVisible(true);
        editor.setDefaultCloseOperation(EXIT_ON_CLOSE);
      }
      ...
  }     
  /* ... *
}

Und im Editor kannst du dann die Referenz verwenden:
Code:
public class beeMain {
public void actionPerformed(ActionEvent ae)
{
   Object source = ae.getSource();
   if(source == b1)
   {
       instBeeMain.addEntryToBox(textField.getText());
   }
    ...
}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
E non-static method und static context Java Basics - Anfänger-Themen 15
M Methoden "Non-static method xy cannot be referenced from a static context" Java Basics - Anfänger-Themen 20
K Objekt erstellen - error: non-static variable this cannot be referenced from a static context Java Basics - Anfänger-Themen 17
H non-static method cannot be referenced from a static context Java Basics - Anfänger-Themen 2
N cannot referenced from static context Java Basics - Anfänger-Themen 5
Q non-static method blub cannot be referenced from a static context Java Basics - Anfänger-Themen 6
X OOP Can not use this in a static context Java Basics - Anfänger-Themen 5
N non-static variable con cannot be referenced from a static context Java Basics - Anfänger-Themen 7
G non static method scale(int,int) cannot be referenced from a static context Java Basics - Anfänger-Themen 16
J non static method cannot be referenced from static context Java Basics - Anfänger-Themen 7
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
A Instance methods should not write to "static" fields Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Static Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S public static boolean Java Basics - Anfänger-Themen 4
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
L non-static Fehler Java Basics - Anfänger-Themen 16
S Klassenmethode ohne static Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
D Methoden Scannervariablen in static Methoden Java Basics - Anfänger-Themen 5
V the static method should be accessed is a static way Java Basics - Anfänger-Themen 6
NormanPatrickBenner static non-static Java Basics - Anfänger-Themen 82
N Erste Schritte "non-static method" oder "XYZ can not be resolved" Java Basics - Anfänger-Themen 21
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
R static in der Methode Java Basics - Anfänger-Themen 2
E Problem mit static Methode Java Basics - Anfänger-Themen 4
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
D Das leidige Thema static.... Java Basics - Anfänger-Themen 15
T Problem mit static Java Basics - Anfänger-Themen 6
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
snipesss Was kann 'static'? Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
E Objekte und static Java Basics - Anfänger-Themen 2
K Methoden Methoden in Methoden -> static oder nicht? Java Basics - Anfänger-Themen 7
D Erklärung static boolean Java Basics - Anfänger-Themen 6
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
O Zu viel static im Projekt Java Basics - Anfänger-Themen 9
F Static final Klasse Java Basics - Anfänger-Themen 0
N static und Objekt kombiniert?!? Java Basics - Anfänger-Themen 3
O Wann nutzt man static? Java Basics - Anfänger-Themen 19
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
A Static variablen --- Anwendungsbereich Java Basics - Anfänger-Themen 11
B Erste Schritte Wie komme ich aus Static raus?!! Java Basics - Anfänger-Themen 4
V Static Methods Java Basics - Anfänger-Themen 5
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
S OOP Klasse mit static-Eigenschaften - HashMap füllen Java Basics - Anfänger-Themen 6
3 OOP static class in einer Klasse Java Basics - Anfänger-Themen 6
B static individuell "vererben"? Java Basics - Anfänger-Themen 8
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
T Static Fehler Java Basics - Anfänger-Themen 1
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
A Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 6
W Variablen Automatisch static? Java Basics - Anfänger-Themen 3
O Warum muss ich static? Java Basics - Anfänger-Themen 6
O Static Java Basics - Anfänger-Themen 15
B non static interface Methode Java Basics - Anfänger-Themen 16
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
S Static void Methode Java Basics - Anfänger-Themen 12
Q Unterschied zwischen static und keinem Modifier Java Basics - Anfänger-Themen 15
O Main-Methode static modifier umgehen Java Basics - Anfänger-Themen 10
J Variablen non-static variable Java Basics - Anfänger-Themen 2
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
J static - Methoden Java Basics - Anfänger-Themen 22
X Erste Schritte Methode ohne Static Java Basics - Anfänger-Themen 4
B Classpath static block - Verwirrung Java Basics - Anfänger-Themen 2
S Methoden Warum ist sleep static? Java Basics - Anfänger-Themen 9
K static, non-static Krise Java Basics - Anfänger-Themen 4
R Schlüsselworte static Methoden und Imports Java Basics - Anfänger-Themen 10
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
Y Gebrauch von static Java Basics - Anfänger-Themen 29
L Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 6
T getClass() im static Kontext Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben