Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    vi prego aiutatemi in java grazie..

    ciao a tutti!!volevo chiedere se qualcuno di voi ha mai fatto una classe menu in java..non mi serve un menù grafico ma grezzo, utilizzando il prompt dei comandi..qualcuno può darmi un idea o passarmi il codice??vi rigrazio anticipatamente!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: vi prego aiutatemi in java grazie..

    Originariamente inviato da fabiranni
    utilizzando il prompt dei comandi..qualcuno può darmi un idea o passarmi il codice??
    Scusa .... quali sono i tuoi dubbi o meglio dire .... quale è la difficoltà?? Sai almeno come gestire input/output sulla console?
    Stampi il menù con dei System.out.println(), poi richiedi all'utente la operazione (qui ci possono essere diverse strade: tramite BufferedReader oppure ad esempio tramite Scanner) e in base alla scelta esegui un certo metodo. Tutta la gestione del menù sarà in un loop, da cui si esce solo se l'utente sceglie una certa voce del menù.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    esempio di menu..

    io devo fare una classe menu..ora ti riporto il codice di esempio che però non posso utilizzare..
    package prog.io.menuTesto;


    public class VoceMenu
    {

    private char scelta;
    private String descrizione;

    public VoceMenu(char scelta, String descrizione)
    {
    this.scelta = scelta;
    this.descrizione = descrizione;
    }

    public String getDescrizione()
    {
    return descrizione;
    }

    public char getCarattereScelta()
    {
    return scelta;
    }
    -----------------------------------------------------------------------------------------
    ackage prog.io.menuTesto;

    import java.util.Arrays;
    import prog.io.ConsoleInputManager;
    import prog.io.ConsoleOutputManager;

    // Referenced classes of package prog.io.menuTesto:
    // MenuInconsistenteException, VoceMenu

    public class Menu
    {

    private ConsoleOutputManager out;
    private ConsoleInputManager in;
    private VoceMenu menu[];
    private String cornice;
    private char carattereCornice;

    public Menu(VoceMenu menu[], ConsoleInputManager in, ConsoleOutputManager out)
    {
    if(menu.length == 0)
    {
    throw new MenuInconsistenteException("Menu privo di voci.");
    }
    for(int i = 0; i < menu.length; i++)
    {
    for(int j = i + 1; j < menu.length; j++)
    {
    if(menu[i].getCarattereScelta() == menu[j].getCarattereScelta())
    {
    throw new MenuInconsistenteException("Ci sono pi\371 voci del menu con il medesimo carattere di scelta.");
    }
    }

    }

    int lunghezzaCornice = 0;
    for(int i = 0; i < menu.length; i++)
    {
    if(menu[i].getDescrizione().length() > lunghezzaCornice)
    {
    lunghezzaCornice = menu[i].getDescrizione().length();
    }
    }

    carattereCornice = '-';
    char a[] = new char[lunghezzaCornice += 5];
    Arrays.fill(a, carattereCornice);
    cornice = new String(a);
    this.in = in;
    this.out = out;
    this.menu = menu;
    }

    public char presenta()
    {
    return presenta("--- Scelta > ");
    }

    public char presenta(String prompt)
    {
    out.println(cornice);
    for(int i = 0; i < menu.length; i++)
    {
    out.println((new StringBuilder(" ")).append(menu[i].getCarattereScelta()).append(" - ").append(menu[i].getDescrizione()).toString());
    }

    char c;
    do
    {
    c = in.readChar(prompt);
    } while(!cerca(c));
    out.println();
    return c;
    }

    private boolean cerca(char c)
    {
    int i;
    for(i = menu.length - 1; i >= 0; i--)
    {
    if(c == menu[i].getCarattereScelta())
    {
    break;
    }
    }

    return i != -1;
    }
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    55
    Infatti.. Pigrizia pura!

    codice:
      // Legge una stringa da tastiera
      private static String leggi(){
        InputStreamReader reader = new InputStreamReader (System.in);
        BufferedReader tastiera = new BufferedReader (reader);
        boolean errore;
        String lettura = "";
        do{
          errore = false;
          try{
            lettura = tastiera.readLine();
          }catch(IOException E){
            errore = true;
          }
        }while(errore);
        return lettura;
      }
    
      /*
       * Legge una stringa da tastiera e restituisce il primo carattere
       * Se la stringa è vuota restituisce uno spazio 
       */
      private static char leggiScelta(){
        String input = leggi();
        if (input.length() > 0)
          return input.charAt(0);
        else
          return ' ';    
      }
    
      //Pulisce lo schermo
      private static void clearScreen(){
        String sistOp = System.getProperty("os.name");
        if (sistOp.toLowerCase().indexOf("windows") != -1)
           //Su windows non ho ancora capito come fare!
          for(int i = 0; i < 200; i++)
            System.out.println("\n");
        else
          System.out.println("\033[2J"); //Funziona sui sistemi Unix-like
      }
    
    public static void main(String argv[]){
        char scelta = '';
        do{
          clearScreen();
          System.out.println("******* Menù principale *******");
          System.out.println("Cosa vuoi fare?");
          System.out.println("1. Voce 1");
          System.out.println("2. Voce 2");
          System.out.println("3. Uscire");
          scelta = leggiScelta();
          switch(scelta){
            case '1':
              faiCiòCheVuoi();
              break;
            case '2':
              faiCiòCheVuoi2();
              break;
          }
        }while(scelta != '4');
    }
    Voilà, tratto da un mio programmino..
    C'è anche un grezzo clearscreen, visto che fra i milioni di classi e metodi presenti in java non hanno pensato di metterlo..

    EDIT: non avevo visto l'ultimo post, ma devi indentarlo decentemente se vuoi che lo legga! Poi non so gli altri!
    E usa titoli migliori ;-)

  5. #5

    grandissimo!

    grazie mille Tenebral!!eh che ho un progetto bello grosso e il tempo scarseggia..grazie mille davvero!

  6. #6

    ma devi indentarlo decentemente se vuoi che lo legga

    non ho capito cosa intendi..comunque io ho windows per quanto riguarda la pulizia dello schermo funziona solo con linux??

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: ma devi indentarlo decentemente se vuoi che lo legga

    Originariamente inviato da fabiranni
    per quanto riguarda la pulizia dello schermo funziona solo con linux??
    Sì, quella System.out.println("\033[2J"); scrive una "sequenza di escape" ECMA-48 che è riconosciuta sui sistemi Linux. Sui Windows no, in generale (funzionava una volta quando si caricava nel vecchio DOS il ANSI.SYS).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    55
    Non so se quel grazie fosse ironico o meno, ma in tal caso, non puoi pretendere che il tempo scarseggi solo per te. Indentare un codice costa poco (e magari finché lo indenti, leggendolo, trovi anche da te soluzione al problema) e rende la lettura molto più rapida. ;-)

    Quel clearscreen pulisce sia su Windows che su Linux, ma su Windows lo fa artificiosamente stampando 200 righe vuote.

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    @fabiranni: i titoli delle discussioni vanno dati sensatamente, come espressamente richiesto dal regolamento. Se ti serve aiuto su un menu, scrivi che ti serve aiuto su un menu.

    Modifico io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10

    ok

    scusa ma sono nuovo e mi sono iscritto oggi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.