0
GUI를 가지고 있는데 마지막 요소 인 (텍스트 영역 인) 특정 탭을 통해 Tab 키를 누르면 이벤트를 만들 수 있습니다. .Java-Keylistener on Tab 작동하지 않는다
입력 버튼을 사용하여 코드를 작성했지만 탭 버튼이 아니기 때문에 완벽하게 작동합니다. 이유를 찾을 수 없습니다.
내 GUI 창 : 나는 그것이를 만들고 싶어
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();
}
}
}
});
Tab 키를 누르면 여전히 이벤트가 발생하고'e.getKeyCode() == KeyEvent.VK_TAB'가 true를 반환하지 못합니다. 그렇다면 getKeyCode의 값은? – laune
탭을 누르면 다음 요소로 바로 이동합니다. 나는 어느 쪽 인지도 모르지만 나는 VK_ENTER 키로 같은 방식으로했는데 완벽하게 작동한다. 텍스트 영역도 아니요, 통과 정책에있는 onger가 여전히 다음 요소로 이동합니다. –
OK, java.awt.KeyboardFocusManager의 setDefaultFocusTraversalKeys를 확인하십시오. TAB이 순회 순회 기능 키로 작동하지 않도록하려면이 집합을 다시 정의해야합니다. (사용자로서 구현하려는 동작에 다소 짜증이납니다.) – laune