JMenuBar aus anderer Klasse

Status
Nicht offen für weitere Antworten.

kniffel

Mitglied
Heyho,
hab folgendes Problem.
Ich habe ein Programm, bestehend aus 3 Teilen.
In Main.java werden alle Programme zusammengefügt.
Java:
...
class Main
{
static JFrame MainWindow;

  public String main()
  {
    return"Return Main";
  }
  public static void main(String[] args)
  {
    // SuperClass
       Main object1 = new Main();
       System.out.println(object1.main());
       
    // SubClass
       GUI object2 = new GUI();
       object2.setBounds(150,120,800,500);
       object2.setResizable(false);
       object2.setVisible(true);
       System.out.println(object2.GUI());

    // SubSubClass
       Menu obj5 = new Menu();
       System.out.println(obj5.Menue());
       ....}}
Dann habe ich in GUI.java folgendes:
Java:
public class GUI extends JFrame implements ActionListener{

public String GUI() {
       return("ReturnSC GUI");
}

//Objekte
JButton close, dele, cbut, statusbut, conbut, disconnect;
JTextArea tf;
JTextField input, ip, port;
JPasswordField password;
JPanel pan;
Image img;
JScrollPane scp;

public GUI() {
...
       pan.add(dele);
       pan.add(close);
       pan.add(statusbut);
       pan.add(conbut);

       
       ip.setText(defaults.ip);
       port.setText(defaults2.port);

       //ContentPane setzen

       setJMenuBar(Menu.menuBar);

       setContentPane(pan);
...
Hier werden einzelne Buttons, Labels, etc erzeugt und eingefügt.
Und in Menu.java ist die JMenuBar alleine.
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Menu extends GUI implements ActionListener{

public String Menue() {
return"ReturnSC Menu";
}
...

        JMenuItem infoMaxPlayers;
        JMenuItem helpAbout;

        public static JMenuBar menuBar;

        JFrame MainWindow;


        public Menu() {
                menuBar = new JMenuBar();



        fileMenu = new JMenu("File");

        menuBar.add(fileMenu);
}
}
Ich habe bereits mit "ip.setText(defaults.ip);" und "port.setText(defaults2.port);" erfolg gehabt, die werte aus Unterklassen hier einzufügen, jedoch passiert nichts mit der JMenuBar. Programm lässt sich ohne Fehler komplieren, aber die Bar erscheint nicht.
Hat jemand Rat, wieso die JMenuBar nicht auftaucht?
Schöne Grüße,
KniFFeL
 
Zuletzt bearbeitet:
S

SlaterB

Gast
wenn du in der main-Methode in Zeile 17
GUI object2 = new GUI();
ausführst, wird auf die statische Variable menuBar zugriffen, dort ist sie aber noch null

erst in Zeile 24,
Menu obj5 = new Menu();
wird auf undurchschaubaren Wegen komischerweise die statische Variable initialisiert,
das ist aber zu spät, das dort zugewiesene Objekt wird nicht auf magische Weise überall dorthin kopiert,
wo vorher auf die Variable zugriffen wurde,

vereinfachtes Beispiel:
String x = null;
list.add(x);
x = "20";
in der Liste ist nun immer noch null, nicht "20"

bei
String x = "10";
list.add(x);
x = "20";
wäre in der Liste schließlich auch "10" und nicht "20"

-------

verzichte am besten ganz auf die statische Variable, erzeuge ein Menu-Objekt in der GUI und frage dort
menu.getMenuBar() ab
 

kniffel

Mitglied
Danke für die Erläuterung, jetzt ist mir der Fehler klar.
Hatte vorerst ebenfalls in diese Richtung gedacht, aber konnte mir auch nicht weiterhelfen.
Habe also in Menu.java die JMenuBar aus public static rausgenommen.
In GUI habe ich sie initialisiert...
JMenuBar menuBar;
anschließend wie du geschrieben hast die menuBar aus Menu holen
Menu.getJMenuBar();
Hat leider nicht funktioniert, weil ich diese 2 Fehlermeldungen bekomme. Angeblich kann man nicht in die statische methode getJMenuBar einen statischen Context eintragen. Ich frage mich nun, wo noch etwas statisch sein sollte?
Compiliere C:\Dokumente und Einstellungen\KniFFeL\Desktop\Rcon\Menu.java mit Java-Compiler
.\GUI.java:170:12: non-static method getJMenuBar() cannot be referenced from a static context
Menu.getJMenuBar();
^
1 error

Compiliere C:\Dokumente und Einstellungen\KniFFeL\Desktop\Rcon\GUI.java mit Java-Compiler
GUI.java:170:12: non-static method getJMenuBar() cannot be referenced from a static context
Menu.getJMenuBar();
^
1 error
 

Michael...

Top Contributor
Hab mir jetzt nur den letzten Post durchgelesen.
So wie ich das verstanden habe versuchst Du eine nicht statische Methode statisch aufzurufen Menu.getJMenuBar(); und das geht logischerweise nicht (s. Fehlermeldungen). Du brauchst ein Objekt vom Typ Menu, über dieses ist dann auch der Methodenaufruf möglich.
 

kniffel

Mitglied
Du hast eigentlich nur das wiedergegeben, was ich schon geschrieben hatte.
Alle Eigenschaften der JMenuBar sind im Programm Menu.java. Ich möchte lediglich im Programm GUI die JMenuBar setzen.
Egal was ich versuche von Menu.java zu bekommen, bekomme ich die Fehlermeldung bez. static.
Wie das auftrit weiß ich nicht, weil z.B. einen String aus einem anderen Teil auszulesen, Problemlos funktioniert.
Und hier spielt die Reinfolge keine Rolle, da die Werte drin stehen.
 
S

SlaterB

Gast
nana, da war schon ein guter Tipp dabei:
> Du brauchst ein Objekt vom Typ Menu,

statt
Menu.getJMenuBar();
besser
new Menu().getJMenuBar();
 

kniffel

Mitglied
Ah, hoppala.
Ja das hat weitergeholfen. Nun ist kein Fehler mehr beim Compilieren. Funktioniert aber trotzdem nicht^^
Beim Starten der Main, läuft nur die Main an ("System.out: Return Main") und macht nichts weiter.
Weder die GUI oder sonst etwas wird vorgesetzt. Programm läuft, aber nichts geschieht...
;(
 
S

SlaterB

Gast
poste deinen aktuellen Code, und fange möglichst immer mit kleinen Programmen an,
wieso denkst du über eine MenuBar nach, wenn du anscheinend noch gar kein JFrame auf den Bildschirm gezaubert hast?
 

kniffel

Mitglied
JFrame liegt in der GUI...
Main.java
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Main
{***Zensored***

  }
}
GUI.java
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame implements ActionListener{

public String GUI() {
       return("ReturnSC GUI");
}

//Objekte
***Zensored***
}//Ende class
Menu.java
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Menu extends GUI implements ActionListener{

public String Menue() {
return"ReturnSC Menu";
***Zensored***                }
        }
}
defaults werde ich nicht posten, da sie keine auswirkung darauf haben, außerdem steht kaum was drin.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
ok, bei mir passiert auch paar Sekunden lang nix, aber dann erscheint eine Exception, kommt die bei dir nicht?

Problem ist, dass Menu von GUI erbt,
GUI erstellt ein Menu, also auch eine GUI
-> 2. GUI, erstellt wieder ein Menu, also noch ne GUI
-> 3. GUI
usw. Endlosschleife

lasse Menu nicht von GUI erben,
dann funktioniert getJMenuBar() nicht mehr, aber diese Standard-Methode von JFrame brauchst du eh nicht (ist auch null),
du sollst das Objekt menuBar aus Menu abfragen, also musst du noch einen entsprechenden getter schreiben,
in GUI machst du aber gar nichts mit dem Rückgabewert, also noch viele Probleme offen..

-----
schicke GUI übrigens
 

kniffel

Mitglied
Danke :D
Oh man da kommen doch noch einige Probleme auf mich zu die ich so nicht bedacht habe.
Ich werd mal den Quelltext wieder "Zensieren", immerhin gibt es nicht so viele RconTools die in Java geschrieben sind. Hehe
Wäre nett wenn du das oben auch bissl weiter schneidest...
Gut gut, dann werd ich mich auch erstmal mit einem "getter" beschäftigen. Sinn ist mit klar, hab ich aber noch nie verwendet, programmiert. etc.
Ist erst mein erstes Jahr Java ;)
Danke für die Unterstützung, ich melde mich einfach wenn ich wieder an einem Punkt hänge.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JMenuBar AWT, Swing, JavaFX & SWT 6
K Event Handling Über JMenuBar die diversen Panels anzeigen AWT, Swing, JavaFX & SWT 10
J Swing JMenuItem blockiert JMenuBar AWT, Swing, JavaFX & SWT 2
S JMenuBar bei sichtbarer JGlassPane AWT, Swing, JavaFX & SWT 1
R JMenuBar.setFont tut nix ? AWT, Swing, JavaFX & SWT 1
I Swing JMenuBar auch unten am JFrame? AWT, Swing, JavaFX & SWT 2
A Swing JMenuBar updaten AWT, Swing, JavaFX & SWT 2
kaoZ Swing JMenuBar, Preferences, Properties... und viele andere lustige Dinge (Best Practice) AWT, Swing, JavaFX & SWT 15
Q Designfrage zur JMenuBar AWT, Swing, JavaFX & SWT 6
S JMenuBar wiederverwenden und Eventhandling anpassen AWT, Swing, JavaFX & SWT 4
B Swing JMenuBar unten in der Frame setzen? AWT, Swing, JavaFX & SWT 15
Q Fragen zur JMenuBar & Co. AWT, Swing, JavaFX & SWT 3
M Über eine JMenuBar überprüfen ob ein JCheckBoxMenuItem selectiert ist. AWT, Swing, JavaFX & SWT 4
M JMenuBar, JMenu, JMenuItem wird nicht angezeigt AWT, Swing, JavaFX & SWT 16
G Swing JMenuBar zu weit links und oben dargestellt AWT, Swing, JavaFX & SWT 5
B Swing Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
D JMenuBar - CardLayout (Klasse anzeigen) AWT, Swing, JavaFX & SWT 3
S JMenuBar Frame Abstand AWT, Swing, JavaFX & SWT 3
H jMenuBar AWT, Swing, JavaFX & SWT 13
NR_EIGHT Swing Probleme mit JMenuBar AWT, Swing, JavaFX & SWT 6
M JMenuBar im Applet und paint AWT, Swing, JavaFX & SWT 9
Madlip JMenuBar in JFrame AWT, Swing, JavaFX & SWT 5
B JFrame / JMenuBar => Anfängerprobleme AWT, Swing, JavaFX & SWT 2
R JMenuBar AWT, Swing, JavaFX & SWT 2
S JMenuBar nach 1. Klick deselectieren AWT, Swing, JavaFX & SWT 6
Z JMenuBar wird nicht in JFrame angezeigt AWT, Swing, JavaFX & SWT 2
N JMenuBar verschwindet nicht nach ComponentEvent AWT, Swing, JavaFX & SWT 6
C JMenuBar aktualisieren? AWT, Swing, JavaFX & SWT 2
A Doppelte JMenuBar AWT, Swing, JavaFX & SWT 2
X NullPointerException beim Einfügen einer JMenuBar AWT, Swing, JavaFX & SWT 4
C JMenuBar im JFrame abgehackt AWT, Swing, JavaFX & SWT 7
J Swing JFrame mit JMenuBar, allerdings ohne Erfolg AWT, Swing, JavaFX & SWT 10
K Look&Feel von JMenuBar und Subkomponenten anpassen AWT, Swing, JavaFX & SWT 6
C JMenuBar linksbündig AWT, Swing, JavaFX & SWT 6
C Größe JMenuBar AWT, Swing, JavaFX & SWT 5
KrokoDiehl Swing Actions direkt auf der JMenuBar AWT, Swing, JavaFX & SWT 6
L Swing Kommunikation zwischen JMenuBar und anderen Componenten AWT, Swing, JavaFX & SWT 2
Developer_X Swing JMenuBar Layout AWT, Swing, JavaFX & SWT 2
G Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
G JMenuBar verschmälern AWT, Swing, JavaFX & SWT 2
M ALT shortcut für JMenuBar deaktivieren AWT, Swing, JavaFX & SWT 3
X JMenuBar überlappt von JPanel :( AWT, Swing, JavaFX & SWT 7
M4nuel Warum überlagert JDesktopPane mein JMenuBar? AWT, Swing, JavaFX & SWT 5
G StatusBar Optik wie JMenuBar; GUI-Erzeugung delegieren AWT, Swing, JavaFX & SWT 2
J JMenuBar in Frame einbauen AWT, Swing, JavaFX & SWT 6
D Canvas über JMenuBar AWT, Swing, JavaFX & SWT 7
P JMenuBar und JToolBar Anzeige Probleme AWT, Swing, JavaFX & SWT 5
C JLabel in JMenuBar frei platzieren AWT, Swing, JavaFX & SWT 2
B JMenubar AWT, Swing, JavaFX & SWT 5
Chris_1980 Makierungsfarbe bei JMenuBar ändern AWT, Swing, JavaFX & SWT 5
L Problem mit JMenuBar AWT, Swing, JavaFX & SWT 5
F JTextField rechts in der JMenuBar AWT, Swing, JavaFX & SWT 4
A gezeichnete Linie verschwindet, wenn ich JMenuBar öffne AWT, Swing, JavaFX & SWT 2
I JMenuBar - Menüs sortieren AWT, Swing, JavaFX & SWT 2
S JMenuBar mit Action belegen! AWT, Swing, JavaFX & SWT 5
M JMenuBar AWT, Swing, JavaFX & SWT 7
B JMenuBar sowie Buttons nach repaint auf JPanel AWT, Swing, JavaFX & SWT 2
T JMenuBar ausblenden lassen aber Hotkeys sollen erhalten sein AWT, Swing, JavaFX & SWT 2
S JMenuBar + update AWT, Swing, JavaFX & SWT 3
M JMenuBar - JMenu mit Tastenkombination aufrufen / anzeigen AWT, Swing, JavaFX & SWT 8
T JMenuBar zweizeilig AWT, Swing, JavaFX & SWT 2
A JMenuBar + paint (Image) AWT, Swing, JavaFX & SWT 6
M JmenuBar wird net angezeigt :( AWT, Swing, JavaFX & SWT 6
U komplette JMenuBar deaktivieren? AWT, Swing, JavaFX & SWT 4
S Mausklick reagiert nicht im JMenuBar AWT, Swing, JavaFX & SWT 4
A JMenuBar verschieben. AWT, Swing, JavaFX & SWT 4
T JMenuBar wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 5
H JFrame, JMenuBar, ScrollBar AWT, Swing, JavaFX & SWT 3
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
J Bild von anderer Klasse will nicht laden AWT, Swing, JavaFX & SWT 1
Ø Swing Button in anderer Klassen ausführen AWT, Swing, JavaFX & SWT 6
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
C Nach Aufruf von anderer Klasse streikt Grafik AWT, Swing, JavaFX & SWT 1
S per Button Variableninhalt aus anderer Klasse holen AWT, Swing, JavaFX & SWT 3
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
W Paint-Methode in anderer Klasse funktioniert nicht AWT, Swing, JavaFX & SWT 7
J CellFactory in Abhängigkeit von anderer Zelle AWT, Swing, JavaFX & SWT 4
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
T Swing Label aus anderer Methode bearbeiten AWT, Swing, JavaFX & SWT 2
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
G Window aus anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 4
H Swing Arbeitsspeicherauslastung anderer Programme grafisch darstellen AWT, Swing, JavaFX & SWT 16
M Swing Array aus anderer Klasse AWT, Swing, JavaFX & SWT 6
H JTable von anderer Klasse aus füllen AWT, Swing, JavaFX & SWT 6
Z Bei Klick auf JButton soll ein anderer JButton erscheinen AWT, Swing, JavaFX & SWT 4
D JSplitPane -> setRightComponent aus anderer Klasse AWT, Swing, JavaFX & SWT 3
L Graphics Objekt - aus anderer Klasse aufrufen / übergeben AWT, Swing, JavaFX & SWT 5
J JPanel mit anderem Panel aus anderer Klasse setzen AWT, Swing, JavaFX & SWT 4
M Swing JFrame aus anderer Klasse starten/anzeigen AWT, Swing, JavaFX & SWT 2
A Applet main class aus anderer main class aufrufen AWT, Swing, JavaFX & SWT 15
M Komponenten in anderer Reihenfolge anzeigen AWT, Swing, JavaFX & SWT 4
D Swing JTextField aus anderer Klasse aktualisieren AWT, Swing, JavaFX & SWT 2
T Fragmente anderer Fenster im Programmfenster AWT, Swing, JavaFX & SWT 6
P Datenelement anderer Klasse in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben