[JAVA] Numpad '' . " veranderen naar " , "

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Topicstarter
Ik ben bezig met het maken van een kleine financiële applicatie.
Hierin worden dus veel valuta's ingevuld.
Daarom leek het mij handig om zoveel mogelijk met het numpad te laten werken, en de punt hierop af te laten vangen en te vervangen door een ", ".
Is dit mogelijk? En wat is de beste manier?
Ik maak nu gebruik van een JFormattedTextField met daarop een NumberFormatter(NumberFormat.getNumberInstance(Locale.FRANCE);).

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 22-09 14:14

Matis

Rubber Rocket

Je kan toch ook in je keyhandler een ander karakter doorsturen naar de applicatie?

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Topicstarter
Hoe werkt dat precies dan? Ik kan namelijk niets hierover vinden?
Of zijn dat key bindings?

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Topicstarter
Ik heb het gevonden.
Op de volgende manier:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
tAmmount.getInputMap().put(KeyStroke.getKeyStroke('.'),action);

class MyAction extends AbstractAction{
    /**
     * 
     */
    private static final long serialVersionUID = -2350100524285527257L;
    public MyAction(){
        super("Insert Comma");
    }
    @Override
    public void actionPerformed(ActionEvent arg0) {
        JTextComponent c =  (JTextComponent) arg0.getSource();
        
        try{
            c.getDocument().insertString(c.getCaretPosition(), ",", null);
            
        }
        catch(Exception e){
            
        }
        
    }
    
}

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Je zou ook (en dit lijkt me handiger) de hele inhoud van de invoer pas kunnen bewerken nadat de gebruiker alles ingevuld heeft, ipv key events afhandelen. Nu kun je bijvoorbeeld ook gewoon een cijfer met drie komma's invoeren, of de punt invullen door middel van copy / paste of de andere punt op het toetsenbord.

Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Topicstarter
Ja daar had ik ook naar gekeken, echter heb ik er nu een NumberFormatter op staan, en dan werkt dat niet.

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Voordat je de NumberFormatter erop loslaat eerst zelf een validatie / formatter erop loslaten die de . vervangt met , (en eventuele andere input opschoont)? Ik weet niet of dat mogelijk is (denk het wel) of handig, het is alweer een tijdje geleden dat ik met Java GUIs gewerkt heb.

[ Voor 28% gewijzigd door YopY op 24-02-2010 11:48 ]

Pagina: 1