Avatar billede nicklasj Nybegynder
03. september 2008 - 22:50 Der er 8 kommentarer

Begræns input i textfield og auto focus næste

Jeg 4 tekstfields som hver indeholder de fire dele i et cprnr, altså dd mm åå xxxx.
Hvordan gør jeg sådan at focus automatisk bliver flyttet fra t1 over til t2 når der er indtastet de første 2 cifre i cpr nummeret? Og er det muligt at begrænse et textfield, så der kun er mulighed for brugeren, at taste eksempelvis 2 cifre ind i et textfield?

Håber der er nogen der har en hurtig og nem løsning :)
Avatar billede erikjacobsen Ekspert
03. september 2008 - 22:53 #1
Det er nu ikke noget du skal bruge Java til. Javascript formentlig.

Det sidste er nemt: <input type="text" ... size="2">
Avatar billede nicklasj Nybegynder
03. september 2008 - 23:08 #2
Hmmm, nu har jeg aldrig brugt Javascripts før, så er det ikke muligt at kode det i java?
Avatar billede arne_v Ekspert
04. september 2008 - 00:39 #3
erik>

Jeg tror faktisk at nicklas sidder og koder i Java Swing ikke i HTML / JavaScript.

:-)
Avatar billede arne_v Ekspert
04. september 2008 - 00:40 #4
nicklas>

Selvfølgelig kan du det.

Jeg gætter på at du skal have en listener af en slags på feltet og så lade den
skifte fokus hvis feltet er færdigt.
Avatar billede erikjacobsen Ekspert
04. september 2008 - 08:43 #5
Ja, det ku' jo være ;)
Avatar billede nicklasj Nybegynder
04. september 2008 - 09:50 #6
Ok, det er jeg glad for at jeg kan :)

Og jeg havde lidt tænkt på at jeg nok skulle bruge en listener, men hvordan gør jeg det? Har ikke lige prøvet at kode sådan en før. Hvordan skal den formes og hvor skal den ligge?

Nogle eksempler?
Avatar billede arne_v Ekspert
05. september 2008 - 04:37 #7
Sådan noget har jeg ikke forstand på, men her er en metode:

import java.awt.AWTException;
import java.awt.GridLayout;
import java.awt.Robot;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class AutoMover extends JFrame implements DocumentListener {
    private JTextField tf1;
    private JTextField tf2;
    private JTextField tf3;
    private JTextField tf4;
    public AutoMover() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new GridLayout(1,4));
        tf1 = new JTextField();
        getContentPane().add(tf1);
        tf1.getDocument().addDocumentListener(this);
        tf2 = new JTextField();
        getContentPane().add(tf2);
        tf2.getDocument().addDocumentListener(this);
        tf3 = new JTextField();
        getContentPane().add(tf3);
        tf3.getDocument().addDocumentListener(this);
        tf4 = new JTextField();
        getContentPane().add(tf4);
        pack();
    }
    @Override
    public void changedUpdate(DocumentEvent e) {
        // nothing
       
    }
    @Override
    public void insertUpdate(DocumentEvent e) {
        if(e.getDocument().getLength() >= 2) {
            try {
                Robot robot = new Robot();
                robot.keyPress(KeyEvent.VK_TAB);
            } catch (AWTException e1) {
            }
        }
    }
    @Override
    public void removeUpdate(DocumentEvent e) {
        // nothing
       
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame f = new AutoMover();
                f.setVisible(true);
            }
        });
    }
}
Avatar billede arne_v Ekspert
28. oktober 2008 - 23:41 #8
all set ?
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