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

    problema listener su tasto TAB

    Ciao a tutti...non sono molto ferrato di grafica e quindi vi pongo questa domanda nella speranza che qualcuno mi dia una mano...sto sviluppando un applicazione java con Eclipse ed ho una finestra con delle jTExtArea , vorrei passare da una all'altra tramite il tasto TAB, in automatico non lo fa.
    -io mi sono comportato così, per passare da Text1 a Text2 ho creato un KeyListener che intercetta un KeyEvent su pressione di un tasto

    e all'interno del metodo
    jTextArea1KeyPressed(java.awt.KeyEvent evt){
    char c=evt.getChar();
    if(c==KeyEvent.VB_TAB){
    jTextArea2.grabfocus();
    }
    }

    funziona perfettamente...passa dalla text 1 alla 2...ilproblema sta quando con il pulsante che ho sotto vado a leggere quello che ho scritto nella text.
    Nel momento in cui leggo e trasformo il contenuto in intero con Integer.parseInt() mi lancia un eccezzione in quanto la stringa che leggo mi risulta "xxx " invece di "xxx"..praticamente considera anche il TAB...come posso risolvere questa cosa?

    PS: ho letto anche di un metodo component.FocusTravellersKeyEnabled(boolean b) che intercetta prima il TAB

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problema listener su tasto TAB

    Originariamente inviato da andreazeni
    ho una finestra con delle jTExtArea , vorrei passare da una all'altra tramite il tasto TAB, in automatico non lo fa.
    Lo spostamento del focus tramite TAB è già implementato per default. Se tu dici che non te lo fa .... allora c'è qualcosa che non quadra. O perlomeno ... bisognerebbe vedere cosa hai usato e fatto esattamente.
    Puoi postare un codice anche minimale che riproduce il problema?

    Originariamente inviato da andreazeni
    -io mi sono comportato così, per passare da Text1 a Text2 ho creato un KeyListener che intercetta un KeyEvent su pressione di un tasto

    e all'interno del metodo
    jTextArea1KeyPressed(java.awt.KeyEvent evt){
    char c=evt.getChar();
    if(c==KeyEvent.VB_TAB){
    jTextArea2.grabfocus();
    }
    }

    funziona perfettamente...
    Non è la soluzione migliore ... sicuramente l'hai già intuito. Se non vuoi far "passare" il tasto oltre (che vada ad inserire nella text area) puoi provare a fare consume() sull'evento.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie per la risposta...
    purtoppo sono al lavoro mentre il codice c'è l'ho nel portatile a casa, anch'io ero sicuro che lo faceva in automatico, però quando vado sulla text e clicco TAB me lo prende come carattere e non come spostamento automatico.
    Sulle text non ho fatto nulla di che, creazione , istanziazione, poi ho un pulsante che ne cattura il contenuto...se può essere d'aiuto la grafica è stata creata con NetBeans mentre il codice che sta sotto con Eclipse.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da andreazeni
    anch'io ero sicuro che lo faceva in automatico
    In generale sì, appunto.

    Originariamente inviato da andreazeni
    però quando vado sulla text e clicco TAB me lo prende come carattere
    Sì già è vero anche questo .... mi stavo dimenticando che con JTextArea per default TAB = carattere tab e non spostamento del focus (mentre invece per JTextField è il contrario).

    E in questa vecchia discussione infatti avevo postato una soluzione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    grazie...ho risolto

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.