J'ai une interface graphique avec plusieurs éléments sur lesquels je viens de passer et sur le dernier élément que j'ai spécifié (qui est la zone de texte) je veux faire un événement si je presse onglet .Java- Keylistener sur Tab ne fonctionne pas
Cela fonctionne parfaitement bien que j'ai écrit mon code avec le bouton d'entrée, mais pas avec le bouton de tabulation et je ne peux pas savoir pourquoi.
fenêtre GUI Mon:
Voici mon code:
textArea_beschreibung.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_TAB){
String dauervar = input_dauer.getText(); //auslesen von benutzername
String beschreibungvar = textArea_beschreibung.getText(); //auslesen von benutzername
String projektvar = (String)comboBox_projekt.getSelectedItem();
String aktivitvar = (String)comboBox_aktivitaet.getSelectedItem();
String datumvar = input_datum.getText();
SimpleDateFormat df1 = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = df1.parse(datumvar);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
long epoch = date.getTime();
String numberAsStringUnixTImestamp = String.valueOf(epoch/1000);
String [ ] datenarray = {"a","b","c","d","e","f"};
datenarray[0] = numberAsStringUnixTImestamp;
datenarray[1] = dauervar;
datenarray[2] = beschreibungvar;
datenarray[3] = projektvar;
datenarray[4] = aktivitvar;
datenarray[5] = usernamevar;
String JsonArray = "{ \"" + "datum" + "\":\"" + datenarray[0] + "\", \"" + "dauer" + "\":\"" + datenarray[1] + "\", \"" + "beschreibung" + "\":\"" + datenarray[2] + "\", \"" + "projektname" + "\":\"" + datenarray[3] + "\", \"" + "kategorie" + "\":\"" + datenarray[4] + "\", \"" + "username" + "\":\"" + datenarray[5] + "\" }";
input_datum.setText(reportDate);
if(check_datum.isSelected()){
CustomDateFinal[0] = datumvar;
input_datum.setText(CustomDateFinal[0]);
}
input_dauer.setText(USERDefTimeJSON);
textArea_beschreibung.setText("");
comboBox_projekt.requestFocus();
try {
SimplePingPong.httpRequestVoid(JsonArray,"unused","werte");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
Lorsque vous appuyez sur la touche TAB - obtenez-vous toujours l'événement et juste 'e.getKeyCode() == KeyEvent.VK_TAB' ne renvoie pas true? Waht ist la valeur de getKeyCode alors? – laune
quand j'appuie sur la tabulation, il saute juste à l'élément suivant. Je ne suis pas sûr non plus mais je l'ai fait de la même manière avec la clé VK_ENTER et ça fonctionne parfaitement. La zone de texte est également non, onger présente dans la politique de traversée mais saute toujours à l'élément suivant –
OK, regardez dans setDefaultFocusTraversalKeys de java.awt.KeyboardFocusManager. Vous devrez redéfinir cet ensemble pour éviter que TAB agisse comme la touche de fonction de traversée vers l'avant. (En tant qu'utilisateur, je serais quelque peu irrité par le comportement que vous voulez implémenter.) – laune