JPopupMenu: Nach oben aufpoppen

Status
Nicht offen für weitere Antworten.

Angel4585

Bekanntes Mitglied
Moin!

Ich möcht mir ein Menü basteln das nach oben aufklappt.
Leider wird bei jPopupMenu1.getHeight() immer 0 angezeigt, sodass ich nicht einfach die Position anders setzen kann.
Kann mir jemand sagen wie ich das nach oben aufklappen kann?
 

Marco13

Top Contributor
Wenn du das PopupMenu mal am unteren Bildschirmrand öffnest (dort, wo es nicht genug Platz hätte, wenn es nach unten aufpoppen würde) dann poppt es nach oben auf. Analog dazu sollte das Menü, wenn es nach oben aufpoppen würde, und da nicht genug Platz hätten hätte (doppelter Konjunktiv), nach unten aufpoppen.

NB: Ich versteh' das nicht: Swing bietet Millionen von Funktionen, um eine unerschöpfliche Menge von verschiedenen, an alle erdenklichen Bedürfnisse angepassten Programmen zu schreiben. Jeder nur erdenkliche Scheißdreck kann mit irgendeinem (manchmal versteckten, aber doch vorhandenen) Flag oder Parameter eingestellt werden. Aber dann kommt doch immer wieder jemand: "Kann man die Labels bei einem Slider auch oben anzeigen?", "Der Rand von einem Frame ist eckig, kann man die Ecken abrunden?", "Die Tooltips sind mit ein bißchen zu gelb, kann man die ein bißchen weniger gelb machen?", "Der Pfeil bei der Combobox ist mir zu spitz, kann man den weniger spitz machen?", oder "Das PopupMenu poppt nach unten auf, kann man das auch nach oben aufpoppen lassen?".

Sorry, das hilft dir jetzt nicht bei deinem Problem - äh, bei deinem """Problem""". (Soll heißen: Gibt's nichts wichtigeres in deinem Programm?). Ich werde mir vielleicht mal Gedaken darüber machen, wie man ein PopupMenu nach oben aufpoppen lassen kann. In der API nachsehen, ob es eine Methode gibt wie "setPopupDirection". Mir vielleicht mal den Quellcode ansehen, und nachsehen, wo denn die Entscheidung getroffen wird, in welche Richtung es aufpoppt, und dann vielleicht überlegen, wie man die Aufpopprichtung ändern könnte. Aber ob ich das mache, hängt davon ab, wie du die Frage beantwortest, die sich IMHO automatisch ergibt, wenn jemand Frage stellt, wie man ein PopupMenu in die entgegengesetzte RIchtung aupoppen lassen kann: Wozu das ganze?
 

Wildcard

Top Contributor
Da kann ich mich Marco13 nur anschließen.
Jedes vernünftige Look and Feel versucht sich an der gängigen Praxis zu orientieren, damit sich der Anwender möglichst schnell zurecht findet. Wer das krampfhaft versucht umzubiegen, sollte sich fragen: warum?
 

Angel4585

Bekanntes Mitglied
Ich brauch das ja genau weil ich mich an einem gängigen Standard orientieren will.

Ich möchte eine Art Desktop basteln mit einer Taskleiste am unteren Rand, wie bei Windows.
Dazu eine Art Start Button, bei dem wenn man ihn anklickt ein menü nach oben ausgeklappt wird.

Sicher ist das nur eine Randfunktion - und ich arbeite während die Frage hier steht auch weiter an anderen, wichtigeren Funktionen - und lässt sich notfalls über ein eigenes JPanel oder ein JMenu am oberen Rand lösen. Ich habe nur gefragt, für den Fall das es sowas gibt, weil ich nichts dazu finden konnte.
 
M

MiDniGG

Gast
Hm. Aber wenn du das so ähnlich wie beim Win machen willst dann hast den Button oder was auch immer doch sowieso links unten (oder zumindest unten) und somit popt das teil ja nach oben auf...
 
G

Guest

Gast
Die Show-Methode von JPopupMenu hat Koordinaten als Parameter.
 

Angel4585

Bekanntes Mitglied
midnigg hat gesagt.:
Hm. Aber wenn du das so ähnlich wie beim Win machen willst dann hast den Button oder was auch immer doch sowieso links unten (oder zumindest unten) und somit popt das teil ja nach oben auf...

Ja aber das geht über den Fensterrand nach unten raus, also wenn das Fenster nicht maximiert ist, siehts doof aus ;)

Anonymous hat gesagt.:
Die Show-Methode von JPopupMenu hat Koordinaten als Parameter.

Dazu muss ich vorher wissen wie groß das Popup ist, und die Höhe ist leider nciht mit angegeben, bzw zu dem zeitpunkt noch 0.


Ich werde es wohl mit einem eigenen JPanel lösen, da bin ich wenigstens unabhängig von dem Popup
 
M

MiDniGG

Gast
Könnte das so nicht gehen?

Code:
pop.show(tree, x - pop.getSize().width, y - pop.getSize().height);

Achso. X/Y sind von der Maus die Koordinaten also:

Code:
public void mouseClicked(MouseEvent evt)
	{
			int x = evt.getPoint().x;
			int y = evt.getPoint().y;
                ...
 
G

Guest

Gast
Angel4585 hat gesagt.:
Anonymous hat gesagt.:
Die Show-Methode von JPopupMenu hat Koordinaten als Parameter.

Dazu muss ich vorher wissen wie groß das Popup ist, und die Höhe ist leider nciht mit angegeben, bzw zu dem zeitpunkt noch 0.
Zum Zeitpunkt, wo du es anzeigen sollst, weisst du wieviele Einträge drin sind und
wie hoch jeder Eintrag im Menü ist. Rest ist Mathe. ;)
 

Marco13

Top Contributor
Das aus der Anzahl der Einträge auszurechnen ist nicht so gut... (wie auch immer das gehen sollte). Aber statt
jPopupMenu1.getHeight()
könntest du
int h = jPopupMenu1.getPreferredSize().height;
verwenden, und das dann verwenden, um as menü anzuzeigen:
popup.show(x, y - h);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Wie adde ich ein JPopUpMenu AWT, Swing, JavaFX & SWT 3
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
P Event Handling Listener beim öffnen von einem JPopupMenu AWT, Swing, JavaFX & SWT 3
M Accelerator zu JMenuItem des JPopupMenu einer JList AWT, Swing, JavaFX & SWT 2
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
S Swing JPopupMenu visible AWT, Swing, JavaFX & SWT 4
S JPopupMenu schließen in SystemTray AWT, Swing, JavaFX & SWT 2
xehpuk Swing Listener für JPopupMenu AWT, Swing, JavaFX & SWT 3
hdi Workaround: TrayIcon & JPopupMenu AWT, Swing, JavaFX & SWT 3
K Swing Listener bei JPopupMenu AWT, Swing, JavaFX & SWT 9
S JPopupMenu oder JCombobox die JList oeffnet..? AWT, Swing, JavaFX & SWT 7
A Swing in JPopupMenu die JRadioButtonMenuItems durchlaufen AWT, Swing, JavaFX & SWT 3
T JmenuItems in JPopupMenu kontextabhängig deaktivieren AWT, Swing, JavaFX & SWT 2
S Swing JPopupMenu nicht schließen AWT, Swing, JavaFX & SWT 2
pinerski Probleme mit JPopupMenu und JMenuItem AWT, Swing, JavaFX & SWT 7
hdi Swing JPopupMenu: Größe AWT, Swing, JavaFX & SWT 4
B JPopupMenu, getParent Problem... AWT, Swing, JavaFX & SWT 2
Dragonfire width of JPopupMenu StyleBug AWT, Swing, JavaFX & SWT 3
M JPopupMenu - Ein vorhandenes Kontextmenü erweitern AWT, Swing, JavaFX & SWT 6
Iron Monkey JPopupMenu/JMenuItem Index für getSubElements()[] ermitteln AWT, Swing, JavaFX & SWT 8
X JPopupMenu Items aktualisieren sich nicht AWT, Swing, JavaFX & SWT 3
T JPopupMenu "schließen" AWT, Swing, JavaFX & SWT 7
M jPopupMenu AWT, Swing, JavaFX & SWT 2
M jPopupMenu - Problem bei der Positionierung AWT, Swing, JavaFX & SWT 3
N JPopupMenu - ausgewähltes Element zurückgeben AWT, Swing, JavaFX & SWT 2
P JPopupMenu scrollen AWT, Swing, JavaFX & SWT 2
S Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 3
T JPopupMenu wird bei Rechtsklick angezeigt! AWT, Swing, JavaFX & SWT 3
Firefork JPopupMenu unter einem Schalter darstellen AWT, Swing, JavaFX & SWT 2
K Netbeans GUI Builder (Matisse) und erstellen von JPopupMenu AWT, Swing, JavaFX & SWT 1
I In JPopupMenu scrollen AWT, Swing, JavaFX & SWT 4
M JPopupMenu per linker Maustaste öffnen AWT, Swing, JavaFX & SWT 9
V Beliebige Komponenten in einem JPopupMenu? AWT, Swing, JavaFX & SWT 3
F Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 3
C JPopUpMenu in einem JTree ist lahm AWT, Swing, JavaFX & SWT 14
V JPopupMenu Problem und Tipp zu mouse/key AWT, Swing, JavaFX & SWT 3
F JPopupMenu und AbstractAction AWT, Swing, JavaFX & SWT 2
N Problem mit JPopupMenu und alwaysOnTop AWT, Swing, JavaFX & SWT 4
G Schließen von JPopupMenu AWT, Swing, JavaFX & SWT 14
G Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 30
R Hässlicher Punkt bei JPopupMenu AWT, Swing, JavaFX & SWT 12
S JPopupMenu - Kontrolliert beenden AWT, Swing, JavaFX & SWT 3
C Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 6
T java.awt.IllegalComponentStateException bei JPopupMenu AWT, Swing, JavaFX & SWT 6
G Problem mit JPopupMenu und Menüauswahl AWT, Swing, JavaFX & SWT 4
R JPopupMenu,JScrollPane + repaint AWT, Swing, JavaFX & SWT 8
D Probleme bei der Positionierung von JPopupMenu AWT, Swing, JavaFX & SWT 2
J "Problem" mit JPopupMenu AWT, Swing, JavaFX & SWT 7
G JPopupMenu in JTable AWT, Swing, JavaFX & SWT 4
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
H JavaFX Fenstergröße nach maximieren erkennen AWT, Swing, JavaFX & SWT 6
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12
T Elemente auf vorheriger Stage, nach Wechsel der Stage ansprechen AWT, Swing, JavaFX & SWT 32
berserkerdq2 Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das? AWT, Swing, JavaFX & SWT 12
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
M Nach Export als Runnable Jar wird css nicht merh gefunden AWT, Swing, JavaFX & SWT 22
P kein Scrollen nach affinertransformation bei mouse dragged AWT, Swing, JavaFX & SWT 2
M Wieso verändert sich die Framerate nach erneutem Starten des AnimationTimer? AWT, Swing, JavaFX & SWT 18
T ListView nach Erweiterung Fehler in CellFactory AWT, Swing, JavaFX & SWT 8
N JavaFX Tableview nach Löschen von Element falscher Index AWT, Swing, JavaFX & SWT 4
B JavaFX TextInputDialog: Focus auf Eingabefeldinhalt setzen und nach OK Inhalt leeren AWT, Swing, JavaFX & SWT 5
VPChief Nach abspielen von Sound reagiert das Program nichtmehr AWT, Swing, JavaFX & SWT 9
VPChief Swing Eclipse: Nach Exportieren, Button funktioniert nicht mehr AWT, Swing, JavaFX & SWT 26
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
F AWT awt KeyEvent - Zeichen direkt nach Eingabe löschen AWT, Swing, JavaFX & SWT 2
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
K JavaFX Element in HBOX nach rechts verschieben AWT, Swing, JavaFX & SWT 2
S JavaFX Slider freezt nach Benutzung AWT, Swing, JavaFX & SWT 3
M Swing GUI wird nach invokeLater() langsam AWT, Swing, JavaFX & SWT 19
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
T JavaFX Nach Zoomen wird an falscher Stelle gezeichnet AWT, Swing, JavaFX & SWT 0
S Ausgabe aktualisiert sich nur nach 2. Klick AWT, Swing, JavaFX & SWT 17
F JavaFX Zustand der CheckMenuItems behalten nach Programmneustart AWT, Swing, JavaFX & SWT 7
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
S Nach scrollen verschwindet das zuvor im JPanel gezeichnete AWT, Swing, JavaFX & SWT 2
stroggi Swing Suche nach Kurveneditor (UI-Element) AWT, Swing, JavaFX & SWT 1
Neumi5694 java.awt.Window nach javafx.stage.Window AWT, Swing, JavaFX & SWT 1
L Swing Komponenten erst nach Resize sichtbar AWT, Swing, JavaFX & SWT 2
F Swing Frame nach vorne holen AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
robinab JavaFX TableView column resize nach setItems() AWT, Swing, JavaFX & SWT 0
MiMa Java, Maven Projekte nach JavaFX? AWT, Swing, JavaFX & SWT 3
S JavaFX Node soll auch nach Skalierung zentriert platziert sein AWT, Swing, JavaFX & SWT 3
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
MiMa Java Projekt nach JavaFX convertieren AWT, Swing, JavaFX & SWT 4
it_is_all JPanel verschwindet nach Button-Klick AWT, Swing, JavaFX & SWT 2
N Swing JButtons werden nach repaint() doppelt dargestellt AWT, Swing, JavaFX & SWT 12
U JavaFX Wechsel der Scene nach betätigen eines Button AWT, Swing, JavaFX & SWT 2
L JTextField erscheint erst nach Veränderung der Framegröße AWT, Swing, JavaFX & SWT 5
C Nach Aufruf von anderer Klasse streikt Grafik AWT, Swing, JavaFX & SWT 1
F AWT Robot Klasse Screenshot nach Pixelmustern in bestimmten Radius um Bildschirmmittelpunkt absuchen AWT, Swing, JavaFX & SWT 13

Ähnliche Java Themen


Oben