Avatar billede Slettet bruger
20. marts 2002 - 09:58 Der er 13 kommentarer og
1 løsning

Keyboard ændring.

Er det muligt at ændre værdierne på tasteturets taster?
F.eks. således at a bliver 1 eller k.
Jeg har forsøgt at finde en java.class. Men så vidt jeg har kunne se findes der ingen keyboard .class der giver denne mulighed.
Avatar billede quaid Nybegynder
20. marts 2002 - 10:05 #1
Ved ikke om du kan lave outputtet om, men du kan jo nemt lave noget kode så programmet opfatter inputtet fra tastaturet som det du ønsker.
QD::
Avatar billede disky Nybegynder
20. marts 2002 - 13:09 #2
Ja det kan du sagtens, du indsætter en keyListener, som fanger taste trykket og sender det videre som du ønsker.
Avatar billede Slettet bruger
20. marts 2002 - 13:39 #3
Yes. Det kan jeg godt se. Og det er ikke noget problem at lave en keyboard .class på denne måde.
Men er det dos/windows som afgør hvordan java forstår input fra tastaturet?
Dvs. har java ikke selv en keyboard class?
Avatar billede disky Nybegynder
20. marts 2002 - 20:49 #4
Det er JVM'en der håndterer dette, og den kan du ikke ændre i
Avatar billede Slettet bruger
22. marts 2002 - 08:29 #5
Tak. Det er da et konkret svar.
Men hvis jeg så anvender en switch løsning, hvordan kan jeg så anvende ASCII code.
Case \u0041 char = \u0042; break...
eller er der bedre metoder?
Avatar billede disky Nybegynder
22. marts 2002 - 08:38 #6
Hvis du kun har få taster der skal ændres er en switch en god løsning, har du mange ville jeg personligt bruge en lookup table, f.eks. en HashMap da den er noget hurtigere (mener jeg)
Avatar billede quaid Nybegynder
22. marts 2002 - 08:47 #7
Har engang lavet en switch hvor jeg skulle simulere et keyboard på en touch skærm, og det var rigeligt hurtigt.
QD::
Avatar billede Slettet bruger
22. marts 2002 - 08:59 #8
Men hvad med ASCII koden?
Fanger f.eks. keyListener ASCII koden eller karakteren.
Som jeg ser det har det indflydelse på omfanget af programmet idet shift kommandoen kan komme i spil hvis det er ASCII koden der bruges mens programmet skal en omvej hvis det er tegnet a A.
Avatar billede disky Nybegynder
22. marts 2002 - 09:01 #9
quaid:
Ja men stadigvæk langsomere end en hashmasp :)


willi10:
Jeg mener det er ascii koden, men ting som shift osv. bliver også modtaget.

Det du gør er at du lytter på key up og key down, hvis shift bliver trykket ned husker du det indtil du får at vide den er sluppet igen, derved kan du se om brugeren ønsker små eller store bogstaver.
Avatar billede quaid Nybegynder
22. marts 2002 - 09:06 #10
Disky:
Enig, hashing er lyn-hurtig. :)
QD:
Avatar billede quaid Nybegynder
22. marts 2002 - 09:09 #11
Og nej! ikke altid! Hvis din switch fangede key inputtet på første test, så ville de være lige hurtige, men forskellen ville være stor hvis den først fangede den i bunden af switchen :)
QD::
Avatar billede disky Nybegynder
22. marts 2002 - 09:24 #12
lige netop :)

Dog har jeg set compilere som faktisk bruger hashmaps til at løse en switch med :)
Avatar billede codemon Nybegynder
22. marts 2002 - 12:14 #13
kunne det være en løsning at udskifte System.in's InputStream med sin egen hjemmelavede.

Altså noget ala.

class MyInputStream extends java.io.InputStream
{
  InputStream standardSystemIn = System.in;

  // override read metoderne
  int read()
  {
    // disky's hashmap kunne selvfølgelig benyttes her
    int result = standardSystemIn.read();
    if (result == '.')
      result = ',';
    return result;
    .
    .
    .
Avatar billede Slettet bruger
07. april 2002 - 13:02 #14
Jeg har ikke glemt spørgsmålet. Men kan blot ikke få det til at virke. Prøver idag.
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