JMenuBar überlappt von JPanel :(

Status
Nicht offen für weitere Antworten.

Xeyth

Mitglied
Halli hallo ihr Javaraner,

ich habe folgendes Problemchen:

ich habe ein JFrame in dem eine JMenuBar geaddet ist, mit Menüeinträgen und allem drum und drann.

Weiter besitzt dieses JFrame ein JDesktopPane, darin enthalten ein JInternalFrame, welches wiederrum ein JPanel enthält.

Dieses böse JPanel wird zur grafischen Animationsdarstellung benutzt, zeigt also bestimmte Animationen an und wird per doppel-buffering realisiert.

Öffne ich jetzt mein JMenuBar und das Drop-Down geht und wird soweit sauber dargestellt, jedoch nur der Bereich der nicht das JPanel berührt. Dort wird einfach das JMenuBar "überpinselt", so dass also das JMenuBar unter dem JPanel dargestellt wird.

gibt es irgendeine Möglichkeit das JMenuBar absolut in den Vordergrund zu setzen - quasi allwaysontop?

fehler.PNG


weiter hatte ich schon versucht in der zeichenmethode des JPanel die JMenuBar zu repainten, doch hat nichts geholfen.
 

Wildcard

Top Contributor
Ich vermute du mischst AWT und Swing.
Warum hast du ein eigenes Double Buffering realisiert. Swing hat seine eigene Buffer Strategy. Wenn du da noch irgendwas drüber legst, wird es lediglich langsam.
 

Xeyth

Mitglied
ne ich hab geschaut das die panel und frames usw alles swing is

ich nehm ein eigenes doppelpuffering, weil mir das von swing nicht effektiv genug arbeitet
 

Tobias

Top Contributor
Äh ja, was hast du denn für spezielle Anforderungen, das dir das Swing-Doublebuffering "nicht effektiv genug arbeitet " :shock: :roll:?

mpG
Tobias

Edit: Hast du das JMenuBar per add() auf die ContentPane gelegt oder (korrekter Weise) die Methode setMenuBar() genutzt?
 

Xeyth

Mitglied
hrm ich hab die JMenuBar mit add zugegeben...

ich glaub ich hab ne Vermutung was du meinst, JMenuBar kommt in ein Panel rein beim adden... und beim set sicherlich in einen speziellen Container...

... ne setMenuBar sagt er nimmt nur awt MenuBars an aber kein JMenuBars :(

... ahh es gibt ja noch ein setJMenuBar... ok Versuch schlug auch fehl, keine Veränderung
 

Tobias

Top Contributor
JFrame benutzt halt eine LayeredPane, damit die Menüs und PopupMenüs und Drag&Drop-Sachen etc alle schon in der richtigen "vertikalen" Reihenfolge liegen. Mit add() hebelst du das ganze schöne Konzept halt aus.

Wenn das aber keine Veränderung bringt, liegt der Fehler woanders. Wo können wir dir vielleicht sagen, wenn du uns Code gibst. Ich vermute aber, es liegt an deinem "Will-selber-Doublebuffern"-Schmonsens ...

mpG
Tobias
 

Xeyth

Mitglied
...ja daran liegts hab ich grade selber gemerkt^^

hab parallel ein einfaches doppelgepuffertes projekt versucht und siehe da es geht.
 
G

Guest

Gast
Eine Frage hät ich da noch:

Ich hab das jetzt über PaintComponent geregelt und darüber die doppelpufferung laufen, funzt einwandfrei

nur: wann wird, und vor allem von wem, wird dann repaint/paintComponent aufgerufen?

Ich habe jetzt einen eigenen Thread dafür der immer Fein mein Anzeigefenster mit repaint beglückt - weiter habe ich einen ganzzahl FPS zähler - und da habe ich gemerkt, dass die PaintComponent methode noch von irgendwem anders aufgerufen wird...

Der Thread:
Code:
    public void run() {
        aktiv = true;
        
        long Startzeit, Renderzeit, Wartezeit;
         
        while(aktiv) {
            Startzeit = System.currentTimeMillis();
            repaint();
            Renderzeit = System.currentTimeMillis() - Startzeit;
            Wartezeit = Renderperiode_ms - Renderzeit; //Renderperiode_ms = 33! Möchte 30FPS haben
            if (Wartezeit < 5) {Wartezeit = 5;} //Der Thread muss auchmal Pause machen :)
          
            try {
                Thread.sleep(Wartezeit);    // Versuchen zu warten, dass andre 
                                            // Prozesse auch was von der Zeitscheibe
                                            // abbekommen. :]
            }
            catch(InterruptedException e) {/* Mach nix*/}
        }
        System.exit(0);
    }

Mein PaintComponent():
Code:
   long erstesFrame, aktuellesFrame;
    int frames, fps;
    
    @Override
    public void paintComponent(Graphics g) {
        rendern();        
        frames++;
        aktuellesFrame = System.currentTimeMillis();
        if(aktuellesFrame > erstesFrame + 1000){
            erstesFrame = aktuellesFrame;
            fps = frames;
            frames = 0;
        }
        g.drawImage(BufferBild, 0, 0, null);
        g.setColor(Color.YELLOW);
        g.drawString(fps +" FPS", 10, 20); 
    }

ist es nun technisch besser mit repaint oder mit paintComponent() zu arbeiten im Thread.run?

So das war der erste Streich.

Mein zweites Problem.

Ich male Bilder in ein JPanel hinein. wie könnte man die Anklickbar machen. Das Problem ist, es sind zwar quadratische Bilder aber mit Rautenbild, ich muss sie überlappen um den Anschein einer hübschen Ebene zu erzeugen. Hier ein Ausschnitt davon:
iso2.PNG

Ich möchte eben die einzelnen Felder per Maus ansteuerbar machen/auswählen können
Die einzelnen Felder sind mithilfe eines Editors ändernbar also "höhe", aussehen und betretbarkeit (für die blauen Blobs zum Beispiel) Derzeit funktioniert die Ansteuerung der einzelnen Felder mit der Tastatur was aber seehr unbequem ist
(Nicht wundern wenn diese Blobs da so unmöglich schief verteilt scheinen, ist eine Aufnahme der Animation, und einige hüpfen grad von feld zu feld, der Blob mit der 0 übern Kopf löst sich jeden Moment auf, seine "Lebenszeit" ist vorbei)
 
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
kniffel JMenuBar aus anderer Klasse AWT, Swing, JavaFX & SWT 10
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
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
D JList die Frame überlappt AWT, Swing, JavaFX & SWT 4
P Zwei JPanel übereianderlegen AWT, Swing, JavaFX & SWT 14
XWing Basic JPanel mit 2 Buttons beutzen. AWT, Swing, JavaFX & SWT 10
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
M clear JPanel before repainting AWT, Swing, JavaFX & SWT 1
B ImageIcon auf JPanel austauschen AWT, Swing, JavaFX & SWT 3
T Swing Reload JPanel + darin liegende ProgressBar AWT, Swing, JavaFX & SWT 9
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
F JPanel Celleditor AWT, Swing, JavaFX & SWT 8
B JPanel-Inhalte inkl. JTextarea zoomen? AWT, Swing, JavaFX & SWT 3
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
CptK Funktionsgraphen effizient zeichnen und nur Teile von JPanel erneuern AWT, Swing, JavaFX & SWT 2
P Button simpler random auf einem JPanel verteilen? AWT, Swing, JavaFX & SWT 3
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
Ich lerne Java. Swing Von JPanel A auf JPanel B zugreifen. AWT, Swing, JavaFX & SWT 4
A JPanel austauschen und Focus geben AWT, Swing, JavaFX & SWT 3
E Auf JPanel malen und davor JComponenten anzeigen AWT, Swing, JavaFX & SWT 12
L JComponent aus JPanel anhand Mausposition ermitteln AWT, Swing, JavaFX & SWT 10
J JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
B Verschiebbares JPanel "ruckelt" im Randbereich AWT, Swing, JavaFX & SWT 2
S Swing JPanel nimmt keinen KeyListener an AWT, Swing, JavaFX & SWT 7
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
Hatsi09 Swing JPanel Bild einfügen AWT, Swing, JavaFX & SWT 14
L JPanel zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 1
dereki2000 JPanel mit Rückgbe wie bei JOptionPane AWT, Swing, JavaFX & SWT 3
E Hintergrundfarbe setzen in JPanel funktioneirt nicht AWT, Swing, JavaFX & SWT 4
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
S Nach scrollen verschwindet das zuvor im JPanel gezeichnete AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben