Recentemente ho avuto uno strano problema con Java JTextField. Quando eseguo il seguente codice (vedi sotto), digitando uno "0" nel campo di testo si invia prima un'azione di incolla, quindi si digita "0". Ad esempio, se "testo" viene copiato negli Appunti, "testo0" viene digitato quando digito "0". Allo stesso modo, digitando un "4" si sostituisce il carattere precedente con un "4" (immagino che questa sia un'azione di cancellazione, quindi il "4" è digitato). Digitando "7" si cancella il campo di testo prima di digitare "7".Problemi di JTextField con il tastierino numerico
Ecco il codice:
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
JTextField text = new JTextField();
frame.add(text);
frame.setSize(500, 500);
frame.setVisible(true);
}
}
il problema si verifica su Red Hat Linux (accessibile tramite VNC da Windows XP); tutto funziona come previsto su Windows XP.
Aggiornamento: Nessun problema con il programma su Ubuntu. Ho anche provato a utilizzare diverse tastiere e visualizzatori VNC.
Update 2: Versioni Java
Per Red Hat:
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.7) (rhel-1.17.b17.el5-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
Per XP:
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode, sharing)
Aggiornamento 3: Provato in esecuzione il programma su tre differenti Red Hat macchine (tutte nello stesso gruppo al lavoro), e inoltre provato a eseguirlo da un diverso XP co mputer e riavvio.
Aggiornamento 4: Oggi sono arrivato al lavoro per scoprire che il problema era magicamente scomparso. Tuttavia, sarebbe davvero bello sapere perché il è accaduto in primo luogo in modo che io (e chiunque altro abbia incontrato questo strano problema) sappia come risolverlo in futuro.
strano ... suona come potrebbe essere un problema di mappatura della tastiera? Stupido, lo so, ma ti sei assicurato che il blocco del tastierino numerico sia attivo e funzioni come previsto in altre applicazioni con cappello rosso? – bcr
Il blocco del tastierino numerico è attivo e tutto funziona correttamente quando si digitano altri programmi. Ho anche provato a usare una tastiera diversa - senza fortuna. – lrAndroid
Trovato qualcosa qui: http://www.rvdavid.net/how-to-get-the-use-of-your-number-pad-back-in-ubuntu/ Ovviamente è Ubuntu, ma potrebbe essere qualcosa di simile nel tuo caso? – vaisakh