Avatar billede netspinner Nybegynder
19. maj 2006 - 14:52 Der er 1 kommentar og
1 løsning

Begrænset længde på karakterinput i et JTextField?

Hej,
Jeg vil høre om det er muligt at skrive en lille metode, der begrænser brugeren i at indtaste mere end f.eks. 6 karakterer i et JTextField? Dvs. at JTextField'et stopper efter der er indtastet 6 karakterer.
Avatar billede mikkelbm Nybegynder
19. maj 2006 - 21:32 #1
Jeg har ikke selv prøvet det før, men jeg faldt over følgende - og det virker:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.text.*;

class Testing extends JFrame
{
  public Testing()
  {
    setLocation(400,300);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    JPanel jp = new JPanel();
    JTextField tf = new JTextField(5);
    tf.setDocument(new TextFieldLimiter(3));
    jp.add(tf);
    getContentPane().add(jp);
    pack();
  }
  public static void main(String[] args){new Testing().setVisible(true);}
}

class TextFieldLimiter extends PlainDocument
{
  int maxChar = -1;
  public TextFieldLimiter(int len){maxChar = len;}
  public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
  {
    if (str != null && maxChar > 0 && this.getLength() + str.length() > maxChar)
    {
      java.awt.Toolkit.getDefaultToolkit().beep();
      return;
    }
    super.insertString(offs, str, a);
  }
}
Avatar billede netspinner Nybegynder
19. maj 2006 - 21:51 #2
Super, det kan godt bruges
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester