Swing PopupMenu immer an gewünschte Position?

diabolik

Aktives Mitglied
Hallo,

ich habe eine JTable. Diese kann ggf. tausende von Einträgen enthalten.

Java:
// aus der Klasse MainFrame
//
            tabActiveJobs = new JTable();
            tabActiveJobs.getSelectionModel().addListSelectionListener(appController);
            tabActiveJobs.getColumnModel().getSelectionModel().addListSelectionListener(appController);
            tabActiveJobs.addKeyListener(appController);
            tabActiveJobs.addMouseListener(appController);

            panel.add(tabActiveJobs); 

            // verhindern, dass Spalten vertauscht werden koennen
            tableHeader = tabActiveJobs.getTableHeader();
            tableHeader.setResizingAllowed(false);
            tableHeader.setReorderingAllowed(false);

            scpTabActiveJobs = new JScrollPane();
            scpTabActiveJobs.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
            scpTabActiveJobs.setBounds(10, 10, 740, 165);
            scpTabActiveJobs.setViewportView(tabActiveJobs);
            
            panel.add(scpTabActiveJobs);


Wenn ich in der Tabelle eine Zeile anklicke und dann mit der rechten Maustaste das PopupMenü aufrufen möchte, positioniere ich es bisher so:

Java:
// aus der Klasse AppController
//
public void mouseClicked(MouseEvent e){
        if(e.getModifiers() == 4){ // rechte Maustaste gedrueckt
            
            if(mainFrame.getTabActiveJobsIsSelected() == true){
               int trueX = mainFrame.getTabActiveJobsY() + e.getX() + 25;
               int trueY = mainFrame.getTabActiveJobsY() + e.getY() + 110;
               
               mainFrame.getPopUpMenuActive(trueX, trueY);   
           }
            
        }
    }


// aus der Klasse MainFrame
//

public int getTabActiveJobsX(){return scpTabActiveJobs.getX();}
public int getTabActiveJobsY(){return scpTabActiveJobs.getY();}


public void getPopUpMenuActive(int x , int  y){
        popupMenu = new JPopupMenu();
        
        menuItem = new JMenuItem("Beenden");
        menuItem.addActionListener(appController);
        menuItem.setActionCommand(Integer.toString(STOP_ACTION));
        popupMenu.add(menuItem);
        
        menuItem = new JMenuItem("Statusinformationen anzeigen");
        menuItem.addActionListener(appController);
        menuItem.setActionCommand(Integer.toString(PERMIT_PROMPT_ACTION));
        popupMenu.add(menuItem);
        
        popupMenu.setLabel("Stopmenue");
        popupMenu.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED));
        popupMenu.addPopupMenuListener(appController);
        
        popupMenu.show(this, x, y);
        
    }

Das Ganze funktioniert super, so lange die Masse der Einträge/Zeilen nicht die Höhe der/des ScrollPane überschreitet. Sobald ich scrollen muß, verrutscht mein PopupMenü beim Erscheinen, mit jeder weiteren Zeile, immer weiter nach unten, obwohl der Mauszeiger seine Position nicht ändert.

Ein Beispiel:
Mein ScrollPane hat zum Beispiel eine Höhe von 10 Zeilen und ich habe eine Tabelle mit 50 Zeilen.
Ich scrolle nun zum Beispiel bis zur Zeile 40. Diese ist jetzt, im ScrollPane, als Zeile 3 sichtbar. Klicke ich da drauf und dann auf die rechte Maus-Taste, erscheint das Menü am untersten Bildschirmrand, obwohl sich die Maus so ca. in der Mitte des Displays befindet.

Ich weiß nicht worauf ich referenzieren muß, damit das PopupMenü, egal wie tief ich in der Liste scrolle, immer rechts unten neben dem MausZeiger erscheint. Wie bekomme ich das hin? Der/die/das ScrollPane scheint ja schon mal der falsche Weg zu sein...

Hilfe!!!
 
Zuletzt bearbeitet:

Dit_

Bekanntes Mitglied
Java:
tabActiveJobs.setComponentPopup(popup);
und alles wird automatisch erledigt.

du kannst
Code:
Popup.show(component, int,int)
überschreiben. Sprich bevor
Code:
setVisible(boollean)
aufgerufen wird kannst du (falls nötig) bestimmte Items (de-)aktivieren in Abhängigkeit davon welche Zeile angeklickt wurde.

gruß
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Image im PopupMenu vom SystemTray AWT, Swing, JavaFX & SWT 8
N Swing JCombobox - PopupMenu-Inhalt mit KSKB AWT, Swing, JavaFX & SWT 2
E SWT Popupmenu auf der Überschrift eines swt.widgets.Table verhindern? AWT, Swing, JavaFX & SWT 3
X Swing Bei Buttonklick soll PopupMenu erscheinen AWT, Swing, JavaFX & SWT 2
G PopupMenu für ein JmenuItem AWT, Swing, JavaFX & SWT 3
L Swing Popupmenu title AWT, Swing, JavaFX & SWT 5
E Swing Fehlerhaftes Verhalten bei gleichzeitigen Verwendnen von PopUpMenu und JDialog?! AWT, Swing, JavaFX & SWT 5
L JLIST/rechtsklick/PopUpMenu AWT, Swing, JavaFX & SWT 7
F MouseEvent bei PopupMenu abfangen AWT, Swing, JavaFX & SWT 2
G JCombobox PopupMenu feste größe zuweisen AWT, Swing, JavaFX & SWT 3
G JPanel und ein PopupMenu AWT, Swing, JavaFX & SWT 6
F einem defaultmutabletreenode ein popupmenu zuordnen! AWT, Swing, JavaFX & SWT 3
F Problem mit PopupMenu und eigenem Panel AWT, Swing, JavaFX & SWT 5
I popupmenu über awt AWT, Swing, JavaFX & SWT 3
G JTable - PopUpMenu nur bei Selektion anzeigen. AWT, Swing, JavaFX & SWT 8
A PopupMenu mit Shorcuts AWT, Swing, JavaFX & SWT 5
Hatsi09 Javafx MediaPlayer spielt nicht immer AWT, Swing, JavaFX & SWT 3
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
J JOptionPane ruft sich selbst immer wieder neu auf AWT, Swing, JavaFX & SWT 3
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
M UI immer lesbar, egal welche Auflösung AWT, Swing, JavaFX & SWT 7
N SceneBuilder wie auf Attribute zugreifen? Diese sind immer null. AWT, Swing, JavaFX & SWT 6
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JavaFX Linie immer in der Mitte der Szene halten AWT, Swing, JavaFX & SWT 12
M Java FX Immer aktuelle Mausposition anzeigen AWT, Swing, JavaFX & SWT 6
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
Z JComponent's requestFocus() - Wieso nicht immer anwendbar? AWT, Swing, JavaFX & SWT 1
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
C JTextPane scrollt mit setText() immer nach oben AWT, Swing, JavaFX & SWT 2
B JFrame immer an gleicher stelle auf anderem Frame AWT, Swing, JavaFX & SWT 5
U Fenster beim Vergörßern immer quadratsich AWT, Swing, JavaFX & SWT 7
B Swing Form undecorated: Beim Bewegen geht die Maus immer automatisch zur linken Seite. AWT, Swing, JavaFX & SWT 7
V Buttons sehen immer "active" aus AWT, Swing, JavaFX & SWT 6
M SWT CCombo immer so groß wie der größte Wert! AWT, Swing, JavaFX & SWT 0
MaDDin-94 Swing Listener reagiert nicht immer AWT, Swing, JavaFX & SWT 2
M Key-,... Listener funktioniert nicht immer AWT, Swing, JavaFX & SWT 2
J Abbrechen muss immer einmal mehr gedrückt werden AWT, Swing, JavaFX & SWT 3
D Letzter Button füllt immer ganzes Fenster AWT, Swing, JavaFX & SWT 5
L View aus dem MVC ist immer die GUI? AWT, Swing, JavaFX & SWT 5
C JTable Datensätze bleiben immer gleich AWT, Swing, JavaFX & SWT 14
K 2D-Grafik interstectsLine gibt immer false zurück AWT, Swing, JavaFX & SWT 18
D JDialog: immer nur einer gleichzeitig AWT, Swing, JavaFX & SWT 4
M Fenster mit ProgressMonitor immer leer AWT, Swing, JavaFX & SWT 23
I Fenster immer im Vordergrund AWT, Swing, JavaFX & SWT 14
K Swing Warum bleibt das Image immer gleich AWT, Swing, JavaFX & SWT 4
D JTree node reagiert bei Klick nicht immer AWT, Swing, JavaFX & SWT 2
B JScrollPane scrollt nicht immer automatisch AWT, Swing, JavaFX & SWT 2
C SWT Combo getSelectionIndex() immer -1? AWT, Swing, JavaFX & SWT 10
S Canvas in ScrollPane wird beim scrollen immer neu gezeichnet AWT, Swing, JavaFX & SWT 3
W 2D-Grafik Koordinaten nicht immer die selben AWT, Swing, JavaFX & SWT 9
A BufferedImage nach dem Speichern immer schwarz AWT, Swing, JavaFX & SWT 8
C TextArea Ausgabe immer ganz oben AWT, Swing, JavaFX & SWT 3
S Image wird nicht (immer) in paintComponent gezeichnet? AWT, Swing, JavaFX & SWT 6
O Immer Exception in AWT-EventQueue-0 AWT, Swing, JavaFX & SWT 5
F AWT MouseMotionListener e.getButton() ist immer 0 unter Linux und Windows AWT, Swing, JavaFX & SWT 6
N JTable, Zeile bleibt immer selektiert.... AWT, Swing, JavaFX & SWT 3
A Swing JFrame vergrößert sich immer bei setText() eines Labels AWT, Swing, JavaFX & SWT 3
G 2D-Grafik BufferedImage Hintergrund immer schwarz AWT, Swing, JavaFX & SWT 4
M WindowEvent löst immer PropertyChangeListener aus AWT, Swing, JavaFX & SWT 9
F Spalten in JTable immer am rechten Tabellenrand AWT, Swing, JavaFX & SWT 3
2 Werde Java GUIs immer noch mit dem in die Jahre gekommen Swing gemacht? AWT, Swing, JavaFX & SWT 12
S JFreeChart Achse immer sichtbar AWT, Swing, JavaFX & SWT 2
C AWT dispose() erzeugt nicht immer formfeed AWT, Swing, JavaFX & SWT 2
R Swing JDialog liefert immer false, 2 JListen verknüpfen AWT, Swing, JavaFX & SWT 3
B Swing: letztes Element wird immer auf Fenstergröße gezogen AWT, Swing, JavaFX & SWT 3
B Swing JTable getSelectedRow() liefert immer -1 AWT, Swing, JavaFX & SWT 6
A Größe eines JFrames immer nur quadratisch AWT, Swing, JavaFX & SWT 8
aze getX ,getY immer 0 AWT, Swing, JavaFX & SWT 9
R JTable immer nur die letzte Spalte markiert.... AWT, Swing, JavaFX & SWT 4
ABstraCT JTabbedPane - click wird nicht immer ausgeführt ! AWT, Swing, JavaFX & SWT 10
aze JDialog immer so breit ,dass die Überschrift sichtbar ist AWT, Swing, JavaFX & SWT 6
S Listener der mich informiert wann immer einer Liste ein Element hinzugefuegt wird? AWT, Swing, JavaFX & SWT 4
multiholle Swing Mouselistener auf Parentpanel immer aktiv AWT, Swing, JavaFX & SWT 7
hdi Swing JLabel - Grösse passt sich immer Text an AWT, Swing, JavaFX & SWT 17
P JButtons haben nicht immer lust zu erscheinen AWT, Swing, JavaFX & SWT 9
R JScrollBar - Immer drei Zeilen weiter AWT, Swing, JavaFX & SWT 10
N JLabel immer zentriert AWT, Swing, JavaFX & SWT 2
S JDialog startet immer wieder neu AWT, Swing, JavaFX & SWT 2
G Value vom TreeCellEditor ist immer null AWT, Swing, JavaFX & SWT 3
M GridBagLayout - Position immer zentriert AWT, Swing, JavaFX & SWT 5
A Scrollbalken von JScrollPane immer anzeigen AWT, Swing, JavaFX & SWT 2
GilbertGrape JTable - immer leere Zeile AWT, Swing, JavaFX & SWT 6
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
H SWT - KeyListener unterbricht immer am Anfang AWT, Swing, JavaFX & SWT 2
G Ein jTextField im laufe das Programmes immer wieder updaten AWT, Swing, JavaFX & SWT 2
C JScrollPane immer ganz unten ausrichten AWT, Swing, JavaFX & SWT 17
G Fenster immer im Vordergrund und aktiv? AWT, Swing, JavaFX & SWT 2
G JScrollpage: Viewport beim Zoomen immer relative zentrieren AWT, Swing, JavaFX & SWT 5
G JTable wird nicht immer angezeigt AWT, Swing, JavaFX & SWT 4
der JoJo [SWT]Meherer Composite's , immer nur eins anzeigen AWT, Swing, JavaFX & SWT 2
T JComboBox immer ItemStateChanged werfen AWT, Swing, JavaFX & SWT 30
S Frame Fenster immer im vordergrund AWT, Swing, JavaFX & SWT 3
M JComboBox in JTable immer sichtbar AWT, Swing, JavaFX & SWT 16
F Scrollpane scrollt immer zur TextArea AWT, Swing, JavaFX & SWT 8
vogella JTable und JScrollPane - ScrollPane immer in der Mitte AWT, Swing, JavaFX & SWT 2
P methode bei Mausdruck immer wiederholen AWT, Swing, JavaFX & SWT 3
A Fenster bzw. Frame wird nicht immer sichtbar AWT, Swing, JavaFX & SWT 12
R Menubar immer updaten! AWT, Swing, JavaFX & SWT 9
H getGraphics() eines JPanel liefert immer null zurück AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben