Dopuszczenie wpisywania tylko liczb w JTextField

0

Hej,
Znalazlem w internecie taka funkcje pozwalajaca jedynie na wpisywanie liczb w JTextField.

textFieldInput.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
super.keyTyped(e);
char c=e.getKeyChar();
if(((c<'0')||(c>'9'))&&(c!=KeyEvent.VK_BACK_SPACE)){
e.consume();
}
}
});

Nie rozumiem za bardzo do czego sluzy warunek (c!=KeyEvent.VK_BACK_SPACE), poniewaz bez niego kod dziala tak samo (a tak sie przynajmniej wydaje). Czyu ktos bedzie tak mily i mi to wytlumaczy?
Pozdrawiam

0

Wygląda na warunek „nie wciśnięto backspace”. Całość oznacza od 0 do 9 i nie backspace. acz nie jestem jakoś super przekonany, co autor miał na myśli

0

Czasem kod obsługi klawiszy się uzależnia od Backspace (w dowolnych językach), bo jest to jedyny kod sterujący z powszechnie używanych, który jest 8bitowy, czyli przypada w zakres znaków.
Klawisze funkcyjne jak np Del (prawda, że w skutkach podobny do BS?) to już kod klawisza nie będący znakiem, zwykle osiągany w bibliotece w inny sposób, przez inną funkcję.
W tym przypadku nieosiągalny przez char c=e.getKeyChar();

Uczysz się tego dla siebie czy do szkoły? Jeżeli dla siebie to zastanów się raz jeszcze, swing i generalnie gui w Javie jest bez przyszłości i szkoda na to czasu i energii — szprotki_w_oleju 2022-02-20 16:20

Kontakt ze Swingiem nie robi krzywdy, to środowisko z ciekawymi i w moim pojęciu zdrowymi praktykami obiektowymi. Dla wielu ostatnie takie przed sraniem setek adnotacji na oślep.

1 użytkowników online, w tym zalogowanych: 0, gości: 1