Listener übergeordneter Componente Blockiert

Status
Nicht offen für weitere Antworten.
S

Sabse2

Gast
Hi, ich habe folgendes Problem.

Ich habe ein JPanel in dem sich JLabels und andere Componenten befinden.
Auf diesem JPanel hab ich drei MouseEvents registriert, MouseClicked, MouseDragged,MouseReleased,
die mir ermöglichen alle Componenten außer dem JPanel selbst zu bewegen.
Nun will ich aber noch die möglichkeit die JLabels zu skalieren bzw ihnen einen ToolTip zu geben.
Mein Ansatz hierzu waren zwei Listener auf die JLabels zu packen, MouseEntered, MouseExited um bei einer bestimmten entfernung zum Rand den Cursor zu ändern und dann bei MouseDragged etwas anderes zu machen als sonst, nähmlich das skalieren.
Nun ist es ja aber so, dass ich sobald ich diese Events auf dem JLabel registriere(ToolTip genauso(mit setToolTipText())
die Events auf dem JLabel nicht mehr behandelt werden während ich mich auf dem JLabel befinde.

Gibt es da irgendeine Möglichkeit dies zu umgehen? bzw gänzlich zu vermeiden?
Mir fällt leider nichts ein :/


mfg und danke für die Hilfe
 
S

sabse2

Gast
Keiner ne Idee?, oder soll ichs verständlicher ausdrücken?
 
S

SlaterB

Gast
ich persönlich würde mich über ein kleines ausführbares Beispiel freuen,
aber keine Ahnung ob da was zu machen ist
 
S

sabse2

Gast
Hier ein Bsp aus diesem Forum,
wenn man nun ein ToolTip setzt oder ein MouseEvent auf die jLabels,
dann wird zum beispiel bei MouseEntered das Event vom jLabel gefeuert, aber
die Events des Panels reagieren nicht.

André Uhres:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class LabelVerschiebenDemo extends JFrame {
    private JLabel jLabel1, jLabel2, hitLabel;
    private JPanel mainPanel;
    private int y1,  x1, deltaY, deltaX;
    public LabelVerschiebenDemo() {
        super("Label Verschieben Demo");
        setSize(400,300);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //JComponents erzeugen:
        mainPanel = new JPanel();
        jLabel1 = new JLabel("jLabel1");
        jLabel2 = new JLabel("jLabel2");
        //Layout:
        mainPanel.setLayout(null);
        mainPanel.add(jLabel1);
        jLabel1.setBounds(140, 90, 80, 14);
        mainPanel.add(jLabel2);
        jLabel2.setBounds(140, 150, 80, 14);
        getContentPane().add(mainPanel, BorderLayout.CENTER);
        //Listeners:
        mainPanel.addMouseMotionListener(new MouseMotionAdapter() {
            public void mouseDragged(final MouseEvent evt) {
                mainPanelMouseDragged(evt);
            }
        });
        mainPanel.addMouseListener(new MouseAdapter() {
            public void mousePressed(final MouseEvent evt) {
                mainPanelMousePressed(evt);
            }
            public void mouseReleased(final MouseEvent evt) {
                mainPanelMouseReleased(evt);
            }
        });
    }
    private void mainPanelMousePressed(final MouseEvent evt) {
        Component c = mainPanel.getComponentAt(evt.getPoint());
        if (c instanceof JLabel) {
            hitLabel = (JLabel) c;
            hitLabel.setBorder(new BevelBorder(BevelBorder.RAISED));
            deltaX = evt.getX() - hitLabel.getX();
            deltaY = evt.getY() - hitLabel.getY();
        }
    }
    private void mainPanelMouseDragged(final MouseEvent evt) {
        if (hitLabel != null) {
            int x = evt.getX() - deltaX;
            int y = evt.getY() - deltaY;
            hitLabel.setLocation(x, y);
            mainPanel.setComponentZOrder(hitLabel, 0);// JDK 1.5
            mainPanel.repaint();
        }
    }
    private void mainPanelMouseReleased(final MouseEvent evt) {
        if( hitLabel != null ){
            hitLabel.setBorder(null);
            mainPanel.repaint();
            hitLabel = null;
        }
    }
    public static void main(final String args[]) {new LabelVerschiebenDemo().setVisible(true);}
}
 
S

SlaterB

Gast
ok, es geht also darum, dass die Event dem MouseListener des JPanels nicht mehr erreichen,
stand ja mehr oder weniger auch in deinem ersten Post,

mich wundert, dass es überhaupt vorher ging, wenn das JLabel keinen Listener hat wird anscheinend bei übergeordneten Komponenten geschaut,

auf derartige Prozesse würde ich mich nie verlassen,
von mir würde daher jetzt ein Tipp kommen, vom JLabel aus die korrekten Kooridinaten im GesamtPanel auszurechnen
und die entsprechenden Operationen selber aufzurufen,
kann man bei mehrfacher Verwendung in Basisklassen verstecken,

aber will das gar nicht allzu sehr im Detail ausbreiten, die Idee dürfte klar sein
und du hoffst sicherlich auf einen einfachen Schalter a la 'leite Event auch an Parent weiter',
vielleicht kennt den jemand, sofern vorhanden
 
S

sabse2

Gast
Danke hab dein Idee soweit umgesetzt, dass ich es nicht mehr in dem Panel mache sondern ungefähr dem Label selbst überlasse.

nun komm ich aber wieder zu einem problem, und zwar wenn ich JMenuItem nun noch auf dem JLabel haben will, diese werden nicht angezeigt.

auf dem JLabel behandle ich MouseMoved,MouseEntered,MouseExited,MouseDragged,MouseReleased

gibt es hier vielleicht nun die möglichkeit bei MouseReleased
das entsprechende Abzufangen und in eine condition zu packen?
ungefähr wie
if(event.isPopUpTrigger()){
do something...
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
padde479 MenuItem MouseEvent/-Listener AWT, Swing, JavaFX & SWT 5
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G listener repaint() - verschiedene Darstellung AWT, Swing, JavaFX & SWT 24
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
J Key-Listener in Java AWT, Swing, JavaFX & SWT 37
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
M List Listener AWT, Swing, JavaFX & SWT 37
I AWT Listener während man in anderem Fenster ist AWT, Swing, JavaFX & SWT 4
U Funktionsweise Listener AWT, Swing, JavaFX & SWT 1
L TextField Listener AWT, Swing, JavaFX & SWT 13
K Nullpointer Combobox Listener AWT, Swing, JavaFX & SWT 2
L JavaFX Image im ImageView auf Scroll Listener reagieren AWT, Swing, JavaFX & SWT 5
Salo JTabel Selection listener Bsp. AWT, Swing, JavaFX & SWT 5
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
J Action Listener Rückgabewert AWT, Swing, JavaFX & SWT 14
MaxG. Swing JMenu einen Listener Hinzufügen AWT, Swing, JavaFX & SWT 25
L JavaFX Verbindung zwischen Beschreibung und Listener (Codebehind Klasse) AWT, Swing, JavaFX & SWT 4
T Swing Methode in Listener aufrufen AWT, Swing, JavaFX & SWT 3
S Swing Tabellen - Listener & richtige Row AWT, Swing, JavaFX & SWT 3
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
S Erste Schritte mit GUI - Fileverarbeitung, Listener,... AWT, Swing, JavaFX & SWT 10
M JButton - Listener AWT, Swing, JavaFX & SWT 1
R Swing Mehrere JTextFields mit einem Document Listener AWT, Swing, JavaFX & SWT 2
K JavaFX Focus Listener für gesamte Scene AWT, Swing, JavaFX & SWT 1
M Key Listener reagiert nicht AWT, Swing, JavaFX & SWT 4
F In Action Listener TextFields einlesen und prüfen. Abbruch bei falschen Eingaben. Wie mache ich das? AWT, Swing, JavaFX & SWT 2
M Listener funktioniert nicht AWT, Swing, JavaFX & SWT 7
S Swing JComboBox mit Listener aktualisieren AWT, Swing, JavaFX & SWT 13
elischa JFrame über mehrere JPanel und Listener AWT, Swing, JavaFX & SWT 17
llabusch Event Handling Listener spielt verrückt AWT, Swing, JavaFX & SWT 8
kaoZ Swing Architektonisches Problem / Listener / MVC AWT, Swing, JavaFX & SWT 14
H org.eclipse.swt.widgets.Scale MouseRelease listener AWT, Swing, JavaFX & SWT 1
MaDDin-94 Swing Listener reagiert nicht immer AWT, Swing, JavaFX & SWT 2
A JLabel im Listener färben AWT, Swing, JavaFX & SWT 11
M Key-,... Listener funktioniert nicht immer AWT, Swing, JavaFX & SWT 2
P Event Handling Listener beim öffnen von einem JPopupMenu AWT, Swing, JavaFX & SWT 3
A Listener für JGTextField AWT, Swing, JavaFX & SWT 2
J Programmierstil: Kommunikation Listener und GUI AWT, Swing, JavaFX & SWT 3
B JTable Renderer / Listener AWT, Swing, JavaFX & SWT 7
M Swing JList Listener AWT, Swing, JavaFX & SWT 20
K Action Listener implementieren über Objekt AWT, Swing, JavaFX & SWT 14
E Listener AWT, Swing, JavaFX & SWT 3
M SWING Listener ohne Wirkung AWT, Swing, JavaFX & SWT 2
P Listener Auswahl Tabelle AWT, Swing, JavaFX & SWT 6
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
J Swing dragging listener AWT, Swing, JavaFX & SWT 5
H Problem mit dem Action listener.... AWT, Swing, JavaFX & SWT 2
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
M Fenster schließen - Listener AWT, Swing, JavaFX & SWT 5
G SWT TreeViewer - drop listener austauschen AWT, Swing, JavaFX & SWT 2
S Action Listener in innerer Klasse ausführen. AWT, Swing, JavaFX & SWT 8
J Sinn eines Selection Listener AWT, Swing, JavaFX & SWT 5
M JList mit DefaultListModel und listener AWT, Swing, JavaFX & SWT 4
M comboBox Listener? AWT, Swing, JavaFX & SWT 2
T Listener in anderen Panel deaktivieren AWT, Swing, JavaFX & SWT 3
A Swing Suche Listener für beliebige Änderung an GUI Items/Controls AWT, Swing, JavaFX & SWT 8
T SWT: Listener auf einem Button reagiert nicht AWT, Swing, JavaFX & SWT 2
L Swing JTextField Content-Listener AWT, Swing, JavaFX & SWT 4
P AWT Wie kann mein listener den Inhalt eines anderen Textfelds ändern? AWT, Swing, JavaFX & SWT 10
M Ansätze zur Kombination mehrerer Listener für Interaktion AWT, Swing, JavaFX & SWT 19
C JLabel Listener auf Textänderung? AWT, Swing, JavaFX & SWT 5
M Mouse Wheel Listener reagiert mehrmals AWT, Swing, JavaFX & SWT 5
F SWT Button listener richtig erstellen AWT, Swing, JavaFX & SWT 2
El_Lobo Swing Problem bei Methodenaufruf in innerer Klasse bei Listener AWT, Swing, JavaFX & SWT 3
S Wem füge ich welchen Listener hinzu? AWT, Swing, JavaFX & SWT 4
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
T Callback vs. Event listener AWT, Swing, JavaFX & SWT 7
S Swing JTree und seine Listener... AWT, Swing, JavaFX & SWT 4
E JComboBox Listener AWT, Swing, JavaFX & SWT 2
AyKay SWT (alle) Listener bzw. ModifyEventListener entfernen AWT, Swing, JavaFX & SWT 2
S jTextField Listener AWT, Swing, JavaFX & SWT 7
E Listener, werte in andere Klasse übernehmen AWT, Swing, JavaFX & SWT 11
L Action listener in bestimmter spalte AWT, Swing, JavaFX & SWT 2
J AWT Action Listener etc. AWT, Swing, JavaFX & SWT 7
xehpuk Swing Listener für JPopupMenu AWT, Swing, JavaFX & SWT 3
F JCalendar mouseclick listener AWT, Swing, JavaFX & SWT 2
W AWT Listener bei TrayIcon AWT, Swing, JavaFX & SWT 2
K Swing Listener bei JPopupMenu AWT, Swing, JavaFX & SWT 9
E Swing JTextField Listener nach Update?! AWT, Swing, JavaFX & SWT 2
T TransformGroup Listener AWT, Swing, JavaFX & SWT 8
O Swing JTable Listener AWT, Swing, JavaFX & SWT 2
O Collection Listener AWT, Swing, JavaFX & SWT 6
L AWT Paint(g) im Listener aufrufen AWT, Swing, JavaFX & SWT 2
G JTree - Observer oder Listener? AWT, Swing, JavaFX & SWT 6
Avalarion SWT Listener auf Label oder Text Teile AWT, Swing, JavaFX & SWT 10
C Ermitteln ob JComponent einen Listener besitzt AWT, Swing, JavaFX & SWT 2
L JTextfield Listener AWT, Swing, JavaFX & SWT 3
C Listener Probleme AWT, Swing, JavaFX & SWT 6
N Listener für Variable AWT, Swing, JavaFX & SWT 4
C Swing Listener für TabPanel AWT, Swing, JavaFX & SWT 8
B Line aus Listener? AWT, Swing, JavaFX & SWT 11
G Model,Listener und background jobs AWT, Swing, JavaFX & SWT 4
1 JList - clearSelection nicht berücksichtigen im Listener AWT, Swing, JavaFX & SWT 7
I Swing Listener auf JPanel AWT, Swing, JavaFX & SWT 9
Dit_ MutableComboBoxModel | Listener fehlt ? AWT, Swing, JavaFX & SWT 6
T Swing JSlider und Adjustment-Listener wollen nicht so recht AWT, Swing, JavaFX & SWT 2
N Swing Textfield listener AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben