JPopUpMenu in einem JTree ist lahm

Status
Nicht offen für weitere Antworten.
C

Chris##

Gast
Hallo,
hat jemand eine Ahnung welche Gründe es haben könnte, warum das PopUpmenü über einem JTree, bzw über einer Node recht lahm ist? Ein viel nervigeres Poblem ist allerdings, dass das Popupmenu nur halb dargestellt wird, bzw der Name der Action aabgeschnitten wird.

Hier der Code:

Code:
class PopupTrigger extends MouseAdapter 
    {
        EventTree tree = EventTree.this;
        
        public void mousePressed(MouseEvent e)
        {
            mouseReleased(e);
        }
        
        public void mouseReleased(MouseEvent e) 
        {
            if (e.isPopupTrigger() || e.getButton() == MouseEvent.BUTTON3)
            {
                int x = e.getX();
                int y = e.getY();
                
                TreePath path = tree.getPathForLocation(x, y);
                if (path == null)
                  return;
                
                if (tree.isExpanded(path))
                {
                    expandAction.putValue(Action.NAME, "Collapse");
                    expandAction.putValue(Action.SMALL_ICON, IIcons.up);
                }
                else
                {
                    expandAction.putValue(Action.NAME, "Expand");
                    expandAction.putValue(Action.SMALL_ICON, IIcons.down);
                }

                
                switch (getKindofTreeNode())
                {                
                  case 0: 
                  {
                      treeAction.putValue(Action.NAME,"New Event");
                      treeAction.putValue(Action.SMALL_ICON, IIcons.event);
                      break;
                  }
                  case 1:
                  {
                     treeAction.putValue(Action.NAME,"New Members");
                     treeAction.putValue(Action.SMALL_ICON, IIcons.member);
                     break;
                  }
                  case 2:
                  {
                      treeAction.putValue(Action.NAME,"New Date");
                      break;
                  }
                  case 3:
                  {
                      treeAction.putValue(Action.NAME,"New Type");
                      break;
                  }                
                         
                }
                
                tree.setSelectionPath(path);                
                pop.show(tree, x, y);
                clickedPath = path;
            }
        }
    }
 
G

Guest

Gast
Hm, kann es sein, dass diese Sache da in einem eigenen Thread laufen sollte ?
Mist, überhaupt keine Ahnung wie das geht :bloed:
 

Wildcard

Top Contributor
Das popup Menü selbst in keine Fall.
Keine Ahnung was der restliche Code macht, aber wenn es zeitintensiv ist, muss es in einen anderen Thread
 

André Uhres

Top Contributor
Wildcard hat gesagt.:
..Keine Ahnung was der restliche Code macht, aber wenn es zeitintensiv ist, muss es in einen anderen Thread
Um das Popup zu zeigen musst du imho schon im Eventdispatching Thread bleiben.
Ein zeitintensiver Code dürfte weiter keine Auswirkungen haben, ausser dass das Popup sich etwas verzögert.
 

Wildcard

Top Contributor
André Uhres hat gesagt.:
Um das Popup zu zeigen musst du imho schon im Eventdispatching Thread bleiben.
Ein zeitintensiver Code dürfte weiter keine Auswirkungen haben, ausser dass das Popup sich etwas verzögert.
Was exakt das Problem des OP ist :wink:
 

André Uhres

Top Contributor
Wildcard hat gesagt.:
André Uhres hat gesagt.:
Um das Popup zu zeigen musst du imho schon im Eventdispatching Thread bleiben.
Ein zeitintensiver Code dürfte weiter keine Auswirkungen haben, ausser dass das Popup sich etwas verzögert.
Was exakt das Problem des OP ist :wink:
Nicht ganz:
Chris## hat gesagt.:
..Ein viel nervigeres Poblem ist allerdings, dass das Popupmenu nur halb dargestellt wird, bzw der Name der Action abgeschnitten wird..
 

Wildcard

Top Contributor
Darüber würde ich mir erst Gedanken machen falls ein seperater Thread das andere Problem nicht löst.
 
C

Chris##

Gast
genau, da der Baum mit Serverdaten aufgefüllt wird, kann man darüber hinwegsehen, dass eben manchmal das popup leicht verzögert wird.
Aber wie man sieht, ändert sich je nach NodeSelection die Actionbeschriftung auf dem Popup. Manchmal funzt es gleich, meistens aber erst,
nachdem ich den Knoten ein 2. mal angeklickt habe. Also ich habe keine PrefferedSize gesetzt und auch sonst nirgends wo ein aufruf der mit
repaint, validate oder ähnliches zu tun hat.
 

AlArenal

Top Contributor
Was soll denn sowas?

Code:
public void mousePressed(MouseEvent e)
        {
            mouseReleased(e);
        }

Wenn du deinen Code 30 Myriarden Male, während irgendein Button gedrückt ist, ausführen lässt, wird er sicher nicht schneller...
 
G

Guest

Gast
ok, keine ahnung das ist aus den sun tutorials entnommen, aber daran liegt es nicht..

Code:
class PopupListener extends MouseAdapter {
    public void mousePressed(MouseEvent e) {
        maybeShowPopup(e);
    }

    public void mouseReleased(MouseEvent e) {
        maybeShowPopup(e);
    }

    private void maybeShowPopup(MouseEvent e) {
        if (e.isPopupTrigger()) {
            popup.show(e.getComponent(),
                       e.getX(), e.getY());
        }
    }
}

Ich probiere mal so eine KSKSFKKG9 Beispiel zu erstellen
 
C

Chris##

Gast
ähmm tatsächlich. wenn ich diesen Quatsch hier weglassen, funzt es mit dem pop up.. :-/
Code:
 public void mousePressed(MouseEvent e) {
            mouseReleased(e);
 }
 
R

Roar

Gast
lass mal das || e.getButton() == MouseEvent.BUTTON3 weg, dann solltest du den mouseReleased() aufruf in mousePressed() auch drinlassen können, der ja durchaus sinn macht, aber nicht wenn mann noch auf || e.getButton() == MouseEvent.BUTTON3 überprüft. isPopupTrigger() reicht und mehr is eigentlich falsch ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Event Handling Listener beim öffnen von einem JPopupMenu AWT, Swing, JavaFX & SWT 3
Firefork JPopupMenu unter einem Schalter darstellen AWT, Swing, JavaFX & SWT 2
V Beliebige Komponenten in einem JPopupMenu? AWT, Swing, JavaFX & SWT 3
L Wie adde ich ein JPopUpMenu AWT, Swing, JavaFX & SWT 3
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
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
A JPopupMenu: Nach oben aufpoppen AWT, Swing, JavaFX & SWT 9
S Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 3
T JPopupMenu wird bei Rechtsklick angezeigt! AWT, Swing, JavaFX & SWT 3
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
F Problem mit JPopupMenu AWT, Swing, JavaFX & SWT 3
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
Juelin Zugriff auf Bildschirmobjekte aus einem anderen Programm AWT, Swing, JavaFX & SWT 6
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
S Swing zu einem Datum Tage addieren/subtrahieren AWT, Swing, JavaFX & SWT 6
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
2 JavaFX die ChoiceBox leitet den String nicht weiter oder es komm zu einem NullPointer AWT, Swing, JavaFX & SWT 8
L JavaFX javafx.fxml.LoadException bei einem Taschenrechner AWT, Swing, JavaFX & SWT 5
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
N Nur bei einem Textfiled Nullpointerexception bei getText() AWT, Swing, JavaFX & SWT 1
H JComobox in einem JPopupNeu AWT, Swing, JavaFX & SWT 7
P Button simpler random auf einem JPanel verteilen? AWT, Swing, JavaFX & SWT 3
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Mit einem Button einen anderen Button Triggern AWT, Swing, JavaFX & SWT 3
D AWT Wie kann ich ein Frame von einem anderen aus beeinflussen? AWT, Swing, JavaFX & SWT 7
T Setzen von der Schriftgröße bei einem Shell AWT, Swing, JavaFX & SWT 15
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
D JavaFX Ein Parameter von einem Stage(GUI) zu einem anderen übergeben AWT, Swing, JavaFX & SWT 6
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
ralfb1105 JavaFX Alert Confirmation Dialog aus einem Service Thread AWT, Swing, JavaFX & SWT 8
F JavaFX Aktuelle Zeit in einem TextField anzeigen AWT, Swing, JavaFX & SWT 7
M JavaFX Bild zur ImageView in einem Kreis anzeigen. AWT, Swing, JavaFX & SWT 4
F JavaFX PNG aus einem resource Ordner laden AWT, Swing, JavaFX & SWT 8
F JavaFX Checken ob der Input einem festgelegten Format gleicht AWT, Swing, JavaFX & SWT 7
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
cool_brivk24 BufferedImage einem ClickEvent hinzufügen AWT, Swing, JavaFX & SWT 13
Q-bert Doppelclick auf einem List item AWT, Swing, JavaFX & SWT 9
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
C SWT autosize bei gc.drawString() auf einem Label AWT, Swing, JavaFX & SWT 7
R Farbe zu einem Eckpunkt generieren AWT, Swing, JavaFX & SWT 2
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
F abgeleitete Panels von einem ContentPanel AWT, Swing, JavaFX & SWT 4
heinz ketchup While-Schleife in einem Service für GUI AWT, Swing, JavaFX & SWT 22
D zwei JLabel stapeln in einem JPanel AWT, Swing, JavaFX & SWT 5
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
F RGB-Werte aus einem String einlesen AWT, Swing, JavaFX & SWT 26
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen


Oben