Avatar billede code0.dk Nybegynder
23. december 2001 - 14:34 Der er 11 kommentarer og
2 løsninger

Reager på brugerinput

Hej. JEg vil høre om der er nogle der kan fortælle mig omkring java og brugerinput. Hvis jeg nu vil have skrevet en liste på skærmen
1. gør noget
2. gør noget andet
3. gør noget tredie

og så herefter vil have programmet til at vente til at der bliver trykket på enten (1,2 eller 3) og når der så bliver gjort dette så køre en metode der er knyttet dertil. Jeg har før brugt Turbo pascall og der var det ret let at lave dette med en \"for\" løkke - meeen hvordan ...... laves dette i Java ???
Håber du/i kan hjælpe
Avatar billede lsimony Nybegynder
23. december 2001 - 14:37 #1
Du kan lave en while-løkke, der kører indtil korrekt input, hvorefter inputet bliver checket i et case-statement.
Avatar billede code0.dk Nybegynder
23. december 2001 - 14:45 #2
kan du ikke komme med et eksempel - da jeg ikke helt ved hvordan man laver noget med input i Java ??
Avatar billede stig3 Mester
23. december 2001 - 14:48 #3
Det er noget med ActionListener
Avatar billede stig3 Mester
23. december 2001 - 14:52 #4
Avatar billede code0.dk Nybegynder
23. december 2001 - 15:01 #5
Det link du har skrevet omhandler Swing - og dette skal laves uden swing - ActionListener osv. hører vel kun med til swing
Avatar billede code0.dk Nybegynder
23. december 2001 - 15:01 #6
Det jeg skal lave skal være i ren tekst format
Avatar billede stig3 Mester
23. december 2001 - 17:27 #7
Hvis det er en dosprompt dit program kører i skal du nok bruge en BufferedReader:
http://java.sun.com/j2se/1.4/docs/api/index.html
Avatar billede stig3 Mester
23. december 2001 - 17:29 #8
BufferedReader in
  = new BufferedReader(new InputStreamReader(System.in));
Avatar billede greybeard Nybegynder
23. december 2001 - 19:46 #9
import java.io.*;

class Menu
{
  public static void main( String[] argv ) throws IOException
  {
    char input ;
    System.out.println( \"1. menupunkt\" );
    System.out.println( \"2. menupunkt\" );
    System.out.println( \"3. menupunkt\" );
   
    do
    {
      input = (char)System.in.read();
    } while (input != \'1\' && input != \'2\' && input !=\'3\');
  }
}

problemet er at alt, hvad brugeren taster også kommer på skærmen.
Avatar billede greybeard Nybegynder
23. december 2001 - 19:57 #10
I Pascal definer du jo også dit eget outputvindue. I Java bruger du et systemvindue.
Hvis du skal gøre det rigtigt, kommer du vist ikke uden om at bruge java.awt eller javax.swing.
Du kan nøjes med et vindue med et textfield, men du slipper ikke uden om eventhåndtering.
Faktisk er det nok nemmere at lave med en knap til hvert menupunkt.
Avatar billede code0.dk Nybegynder
04. januar 2002 - 10:37 #11
Greybeard>> det eksempel du er kommet med - det virker ikke ????
Avatar billede code0.dk Nybegynder
12. januar 2002 - 21:04 #12
Det var liiiidt mere kompliceret at lave end det du skriver greybeard - men det var rigtigt at man skulle bruge en System.in.read()
hvis det skulle virke så skal man også lave en
try{
    System.in.read() osv. osv.
]

catch (Java.IOException){}
osv. men du ledte mig på det rigtige spor så jeg går med til at give dig 40 point :)
code0.dk
Avatar billede greybeard Nybegynder
12. januar 2002 - 23:43 #13
Tja, det er ikke nødvendigt på mit system, men sålænge du fik løst dit problem.

Takker
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