Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] come spostare una JLabel dalla sua posizione

    E' più complicato dal titolo..

    Premetto che ci sono tutta la mattina...

    Io ho semplicemente una serie di JLabel sopra un JPanel
    vorrei cliccare con il mouse premuto sopra una di queste e traspostarla in giro per il pannello completa di movimento della Label ...poi rilasciare il mouse ed ecco la nuova posizione della label.

    il problema è che quando passo sopra la JLabel il mouse listener non è più quello del Panel ma quello della JLabel ma devo conoscere le coordinate nel pannello..

    Tra l'altro non sono più sicuro di quale Evento del Mouse[Motion|]Adapter devo usare per gestire gli eventi anche perchè a quale Componente devo riferirmi?

    Spero di non essere stato troppo complicato

    Qualcuno ha un suggerimento?
    Grazie
    Andrea

  2. #2

    Re: [JAVA] come spostare una JLabel dalla sua posizione

    Originariamente inviato da pirasterize
    E' più complicato dal titolo..

    Premetto che ci sono tutta la mattina...

    Io ho semplicemente una serie di JLabel sopra un JPanel
    vorrei cliccare con il mouse premuto sopra una di queste e traspostarla in giro per il pannello completa di movimento della Label ...poi rilasciare il mouse ed ecco la nuova posizione della label.

    il problema è che quando passo sopra la JLabel il mouse listener non è più quello del Panel ma quello della JLabel ma devo conoscere le coordinate nel pannello..

    Tra l'altro non sono più sicuro di quale Evento del Mouse[Motion|]Adapter devo usare per gestire gli eventi anche perchè a quale Componente devo riferirmi?

    Spero di non essere stato troppo complicato

    Qualcuno ha un suggerimento?
    Grazie
    Andrea
    Si, usare questo metodo di conversione delle coordinate:
    codice:
     SwingUtilities.convertPoint(Component source,Point aPoint,Component dest);
    Consulta la doc,ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3

    grazie della risposta !!

    Grazie..
    Non ho capito una cosa:
    mi vengono convertite le cordinate del mouse all'interno della label (supp. 30x50)----->
    con le cordinate supponiamo del pannello su cui è posizionato?

    cioè da 30x50 a 800x600 per esempio?

    quindi su un pezzo di codice del genere:

    private void Point_MousePressed(java.awt.event.MouseEvent evt) {

    Point p;

    p = SwingUtilities.convertPoint(this.getParent(), evt.getX(), evt.getY() , this);

    this.x = p.x;
    this.y = p.y;
    this.repaint();
    }


    dovrebbe andare?

  4. #4

    Re: grazie della risposta !!

    Originariamente inviato da pirasterize
    Grazie..
    Non ho capito una cosa:
    mi vengono convertite le cordinate del mouse all'interno della label (supp. 30x50)----->
    con le cordinate supponiamo del pannello su cui è posizionato?

    cioè da 30x50 a 800x600 per esempio?

    quindi su un pezzo di codice del genere:

    private void Point_MousePressed(java.awt.event.MouseEvent evt) {

    Point p;

    p = SwingUtilities.convertPoint(this.getParent(), evt.getX(), evt.getY() , this);

    this.x = p.x;
    this.y = p.y;
    this.repaint();
    }


    dovrebbe andare?
    Dipende da cos'è this...comunque si, le coordinate vengono convertite dal riferimento cartesiano del pannello di origine a quello del pannello di destinazione.Fai prove con delle println e ti levi ogni dubbio.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5

    ok pace

    ok grazie
    ma ho risolto non era una mousepressed ma mousedragged da implementare e poi la setBounds per riaggiornare la posizione prima della repaint

    grazie
    Andrea

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.