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

    Gestire i popup in java

    Volevo aggiungere un popup ad una JTextField e ho risolto usando questo codice:

    http://www.simplesoft.it/gestire-la-...ava-swing.html

    ma volevo sapere se con java 1.7 esistevano dei metodi più veloci per fare questo da implementare nei miei prossimi programmi. A me interessa un semplice "Copia, Taglia, Incolla, Cancella". Il grande andbin in un'altra discussione consigliava di usare .setComponentPopupMenu() ma sfogliando Google non sono riuscito a capire cosa dare in pasto a questo metodo così mi sono ripiegato sull'uso di questo classe da istanziare all'occorrenza proposta da simplesoft.

    Inoltre il comando cancella non funziona e non capisco perché... gli altri si ma cancella no...

    A presto e grazie
    Ultima modifica di giannino1995; 24-01-2014 a 00:22
    Più pratica in futuro...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    un'altra discussione consigliava di usare .setComponentPopupMenu() ma sfogliando Google non sono riuscito a capire cosa dare in pasto a questo metodo
    Il metodo setComponentPopupMenu è stato introdotto in Java 5 e serve principalmente per non dover implementare tutti i meccanismi a basso livello con gli eventi del mouse (cosa che era necessaria prima di Java 5). Il metodo riceve un JPopupMenu cioè appunto il menù di popup.

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    ma volevo sapere se con java 1.7 esistevano dei metodi più veloci per fare questo
    Sfruttando le action predefinite in javax.swing.text.DefaultEditorKit è possibile fare una implementazione "ridicolmente" breve:

    codice:
    JTextField textField = ...........
    
    JPopupMenu textContextMenu = new JPopupMenu();
    textContextMenu.add(new DefaultEditorKit.CopyAction());
    textContextMenu.add(new DefaultEditorKit.CutAction());
    textContextMenu.add(new DefaultEditorKit.PasteAction());
    		
    textField.setComponentPopupMenu(textContextMenu);

    (nota: va importato javax.swing.text.DefaultEditorKit )

    E copia/taglia/incolla funzionano perfettamente. L'unico difetto è che con solo questo codice restano le diciture che sono "cablate" nelle action e che non sono il massimo .....
    Basterebbe fare un piccolo metodo statico che riceve la Action, setta la proprietà NAME con putValue e restituisce la Action.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie andbin. La nuova soluzione è più immediata ma se uno non sa personalizzarla non riesce ad utilizzarla. Sul mio manuale il discorso popup non è stato affrontato, a mio avviso una grave mancanza.
    Più pratica in futuro...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    ma se uno non sa personalizzarla non riesce ad utilizzarla.
    Per le action, è sufficiente guardare sul javadoc Action e/o AbstractAction per capire come funzionano.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.