Java - limit znaków w JTextField.

0

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.

0

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.

0
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 ...

0

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);

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