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

    [JAVA] Agganciare un JPopupMenu a una JTextField

    Ciao di nuovo a tutti, ho un problemino grafico con un popup menu.

    Sto facendo una specie di JSearchField in cui quando l'utente inizia a scrivere
    si apre un popup menu sotto in cui compaiono tutte le parole che contengono la
    stringa che sta inserendo, filtrando mano mano la lista.

    Devo ancora fare il metodo che fa ciò ma non dovrei aver problemi con quello.
    Ora mi sto dedicando a fare in modo che il JPopupMenu sia esattamente allineato a sinistra
    con la Jtextfield ma quello che si verifica è un errore di posizionamento, ma non capisco perchè..

    Quando visualizzo, il keylistener assocciato alla JTextfield, fa la
    .show(this,GetX(),GetY());

    dove this è la JSearchField che eredita da JTextfield.

    Ringrazio

  2. #2
    Guarda, io ho fatto una cosa simile e ti dico che posizione e dimensioni della popup (che io ho implementato estendendo JDialog) le setto così:

    Codice PHP:
    int popupWidth getTextField().getWidth();
    int popupHeight 170;  //valore fisso nel mio caso
    int popupLocationX getTextField().getLocationOnScreen().x;
    int popupLocationY getTextField().getLocationOnScreen().getTextField().getHeight();
    setPreferredSize(new Dimension(popupWidthpopupHeight));
    setLocation(popupLocationXpopupLocationY); 
    credo che tu possa adattarlo al caso tuo.
    Al mio segnale... scatenate l'inferno!

  3. #3
    Originariamente inviato da R@ve M@ster
    Guarda, io ho fatto una cosa simile e ti dico che posizione e dimensioni della popup (che io ho implementato estendendo JDialog) le setto così:
    ...
    credo che tu possa adattarlo al caso tuo.
    grazie provo subito a vedere se funziona perchè ora come ora
    mi si sposta di un sacco e non svolge praticamente la funzione visiva che volevo
    Speriamo funzioni hehe
    grazie


    1.27 --- 23 Aug 2010
    Appena provato e...........FUNZIONA!!!
    ora non mi resta che implementare la ricerca/sfoltimento
    e sistemare un po' di cosette

  4. #4
    Hehe credevo fosse più semplice, ma mi trovo con un problemino quando valuto i tasti della JTextField..

    come faccio ad evitare che quando premo SPACE o BACKSPACE il KeyTyped del Keylistener non lo veda?

    mi spiego meglio, cose del tipo:

    public void keyTyped(KeyEvent e){
    if(!(e.getKeyCode()==KeyEvent.VK_SPACE))
    System.out.println("It's not a space");
    else
    System.out.println("It's a space")
    }

    NON funzionano.....
    e allora non so come valutarlo hehe
    devo forse usare getKeyChar?

    in poche parole vorrei che quando il tasto premuto è uno spazio non si faccia nulla,
    se è un backspace si valuta la stringa, meno l'ultimo carattere,
    in tutti gli altri casi si valuta la stringa contenuta + il carattere da immetter...


    EDIT:
    Come non detto
    A chi dovesse servire una cosa simile, consultando la documentazione,
    ho visto che quando si usa il keyTyped bisogna usare il getKeyChar e non è possibile
    usare costanti come VK_UP, VK_LEFT,......
    Quindi per risolvere il mio problema con lo spazio ad esempio basterà metter un

    if(e.getKeyChar()!=' '){
    //ciò che voglio svolgere
    }

    ...ma il backSpace allora come si può risovere?? :master:
    (mi sto accorgendo che programmare con la febbre altina limita un pochino il cervello hehe)

  5. #5
    devi usare keyReleased non keyTyped (evitando così di fare anche il controllo sul backspace dato che la stringa arriva già modificata)
    Al mio segnale... scatenate l'inferno!

  6. #6
    mm ora provo, scusami se ti rompo spesso,
    ma oggi è da qualche giorno che la febbre non mi lascia in pace
    e mi perdo anche in cavolate

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 © 2025 vBulletin Solutions, Inc. All rights reserved.