Event wenn Maus eine JList verlässt

Moin,
wenn der Mauszeiger eine JList verlässt
bitte was meinst Du denn damit ?? 😕
Eine JList ist eine Datenstruktur der Programmiersprache, also wird die Maus NIE "in der Liste" sein - allenfalls in der Komponente, die den Inhalt dieser Liste anzeigt ...

Beschreibe mal genauer, was Du vorhast - und poste den relevanten Code dazu !!

Gruß Klaus
 
Guten Morgen,

sorry, hier nun etwas genauer:
Ich habe eine kleine GUI geschrieben und dort eine javax.swing.JList eingefügt.
Wenn ich mit der Maus über die Einträge fahre, bekomme ich eine Mouseover angezeigt. Das habe ich geschafft.

Jedoch wenn ich mit der Maus die JList wieder verlasse, soll die letzte Markierung wieder gelöscht werden. Daher benötige ich ein Event, wenn die Maus nicht mehr über der JList ist.

Hoffe es ist nun genauer erklärt?
 
Moin,

nein, nicht wirklich!

Nochmal: JList ist 'nur' eine Datenstruktur, KEIN GUI-Element !!

Wie zeigst Du sie an ??
Nochmal: poste den hierzu relevanten Code !!

Gruß Klaus
 
Java:
DefaultListCellRenderer renderer = new Point2DCellRenderer();

Java:
lstPointsLU = new JList<Point2D>();
            lstPointsLU.setName("LU");
            lstPointsLU.setCellRenderer(renderer);
            lstPointsLU.setBackground(Color.WHITE);
            lstPointsLU.setVisibleRowCount(6);
            lstPointsLU.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    if (e.getClickCount() == 2) {
                        new ImageViewer(window.imagesLU.get(lstPointsLU.getSelectedIndex()), width, height);
                    }
                }
            });
            lstPointsLU.setToolTipText("");
            lstPointsLU.setBorder(new LineBorder(Color.BLUE, 3));

Java:
    public class Point2DCellRenderer extends DefaultListCellRenderer {
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected,
                boolean cellHasFocus) {
            JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            label.setOpaque(isSelected);
            label.setOpaque(true);

            if (index == mJListHoverIndex) {
                label.setBackground(Color.YELLOW);
                label.setEnabled(true);
            }

            if (value instanceof Point2D) {
                Point2D point2D = (Point2D) value;
                setText("[" + (index + 1) + "] " + point2D.getX() + " / " + point2D.getY());
                if (list.getName().equals("RD")) {
                    if (window.timeStamp_RD.size() >= index) {
                        return this;
                    }
                    setToolTipText(new Date(window.timeStamp_RD.get(index)).toString());
                }
                if (list.getName().equals("RU")) {
                    if (window.timeStamp_RU.size() >= index) {
                        return this;
                    }
                    setToolTipText(new Date(window.timeStamp_RU.get(index)).toString());
                }
                if (list.getName().equals("LD")) {
                    if (window.timeStamp_LD.size() >= index) {
                        return this;
                    }
                    setToolTipText(new Date(window.timeStamp_LD.get(index)).toString());
                }
                if (list.getName().equals("LU")) {
                    if (window.timeStamp_LU.size() >= index) {
                        return this;
                    }
                    setToolTipText(new Date(window.timeStamp_LU.get(index)).toString());
                }
            }
            return this;
        }
    }
 
Moin,

nein, nicht wirklich!

Nochmal: JList ist 'nur' eine Datenstruktur, KEIN GUI-Element !!

Wie zeigst Du sie an ??
Nochmal: poste den hierzu relevanten Code !!

Gruß Klaus
Lern doch bitte noch mal Grundlagen anstatt mit Unwissenheit zu glänzen und jeden zu verwirren.
JList ist ein JComponent und damit ganz offensichtlich GUI-Element und nicht Datencontainer.
 
ok, so gesehen ... 😳
Wahrscheinlich habe ich sie dann in meinem Java-Projekten immer falsch verwendet, da ich sie (ähnlich wie bei C/C++) 'nur' als Datencontainer gesehen habe 🙁
Muss das mit dem diesbezüglichen Model wohl mal genauer anschauen!

Gut - dann nehme ich alles zurück und behaupte das Gegenteil 🙂

Gruß Klaus
 
ok, so gesehen ... 😳
Wahrscheinlich habe ich sie dann in meinem Java-Projekten immer falsch verwendet, da ich sie (ähnlich wie bei C/C++) 'nur' als Datencontainer gesehen habe 🙁
Muss das mit dem diesbezüglichen Model wohl mal genauer anschauen!

Gut - dann nehme ich alles zurück und behaupte das Gegenteil 🙂

Gruß Klaus
Es gibt List, das ist eine passende Datenstruktur, aber eben etwas völlig anderes.
JList und auch das zugehörige Model Sindbad Teil von Swing, die braucht man im Großteil des JavaCodes beide nicht, und eines ohne das andere ist auch ziemlich sinnlos. Generell ist alles mit J als Prefix Teil des Swing-GUI
 
ok, Danke 🙂
Ich muss die Verwendungen wohl wirklich mal daraufhin kontrollieren, da hier in dem Projekt, da ich vor einigen Jahren übernommen habe, die Listen dann wohl immer nur relativ stumpf verwendet werden ... etwa in der Art
Java:
String[] data = {"one", "two", "three", "four"};
JList<String> myList = new JList<String>(data);
und dann werden die Elemente/Strings bspw. innerhalb einer Schleife durchlaufen und in eine ComboBox oder eine TextArea geschrieben!

Demnach vielleicht nicht der wahre Jakob 😡

Gruß Klaus
 
ok, Danke 🙂
Ich muss die Verwendungen wohl wirklich mal daraufhin kontrollieren, da hier in dem Projekt, da ich vor einigen Jahren übernommen habe, die Listen dann wohl immer nur relativ stumpf verwendet werden ... etwa in der Art
und dann werden die Elemente/Strings bspw. innerhalb einer Schleife durchlaufen und in eine ComboBox oder eine TextArea geschrieben!
WTF?! Stand der Entwickler unter starkem Drogeneinfluss?
 
Hehehe 😀
Keine Ahnung, er ist schon seit einigen Jahren weg - und ich habe ihn nicht mehr kennengelernt!
Habe damals das ganze ohne jegliche Doku (und bis dahin auch Java-Kenntnisse) übernommen und mir über die Stellen nie groß Gedanken gemacht ...
Ok, ein Fehler, wie ich jetzt merke 🙄
 

Zurück
Oben