Witam! Przychodzę z pytaniem, jak ustawić limit znaków dla JTextField? Dokładnie chce, aby max ich było 5 (XX:XX). Proszę o nie podawanie mi linków do stackoverflowa, bo szukałem tam, ale te przykłady były według mnie z kosmosu.
Jeżeli nie chcesz przykładu z kosmosu, który działa i jest poprawny, to dam ci prosty przykład nie z kosmosu, który działa, ale nie powinien być używany.
private void jTextField1KeyPressed(java.awt.event.KeyEvent evt)
{
if(jTextField1.getText().length()>5)
{
jTextField1.setText(jTextField1.getText().substring(0, 5));
}
}
ustawić tą metodę w listenerze dla danego JTextFielda. Mniejsza o to, że to paskudne, bo event listenery nie powinny zajmować się formatowaniem wejścia danych, może dziwnie zadziałać na niektórych systemach i (prawdopodobnie) nie ogarnie, gdy użytkownik coś wklei.
Pierwsze dwa rozwiązania stąd: https://stackoverflow.com/questions/10136794/limiting-the-number-of-characters-in-a-jtextfield byłyby lepsze, ale mówisz, że nie chcesz rzeczy z kosmosu.
ShookTea napisał(a):
Jeżeli nie chcesz przykładu z kosmosu, który działa i jest poprawny, to dam ci prosty przykład nie z kosmosu, który działa, ale nie powinien być używany.
private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { if(jTextField1.getText().length()>5) { jTextField1.setText(jTextField1.getText().substring(0, 5)); } }
ustawić tą metodę w listenerze dla danego JTextFielda. Mniejsza o to, że to paskudne, bo event listenery nie powinny zajmować się formatowaniem wejścia danych, może dziwnie zadziałać na niektórych systemach i (prawdopodobnie) nie ogarnie, gdy użytkownik coś wklei.
Pierwsze dwa rozwiązania stąd: https://stackoverflow.com/questions/10136794/limiting-the-number-of-characters-in-a-jtextfield byłyby lepsze, ale mówisz, że nie chcesz rzeczy z kosmosu.
Dobra, jednak zająłem się tymi pierwszymi dwoma. Nie chodziło mi o te.. Widziałem gdzieś indziej takie które miały baardzo dużo kodu ...
Zamiast JTextField
użyj JFormattedTextField
:
MaskFormatter mask = new MaskFormatter(*****); //pięć dowolnych znaków
MaskFormatter mask = new MaskFormatter(**:**); //pięć znaków, w środku dwukropek
jtf = new JFormattedTextField(mask);