Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Pafi Visualizza il messaggio
    1. System.setIn(buttonContinua.getIn()); viene fatto nel costruttore della Finestra(che estende JFrame).
    Non mi è chiaro se qui sei nel main thread o nel EDT. Nel main generalmente è "buona" prassi (io lo faccio sempre) usare il solito invokeLater per avviare la creazione della interfaccia utente già fin da subito nel EDT.
    Comunque questo punto è meno importante.

    Quote Originariamente inviata da Pafi Visualizza il messaggio
    2. Il metodo pressEnter(), al cui interno viene chiamato il nextLine(), viene chiamato decisamente nel main thread, poichè fa parte del codice relativo al programma senza grafica.
    Questo sì, è più importante. E vuol dire che l'approccio dei piped input/output tecnicamente può funzionare.

    Quote Originariamente inviata da Pafi Visualizza il messaggio
    quando premo il pulsante innesco un "doppio Enter", ossia do il segnale a DUE pressEnter consecutivi.
    Già ... riguardando meglio il codice che hai scritto mi pare ovvio!

    stdinStream.println("\n");

    O fai stdinStream.print("\n");
    Oppure fai stdinStream.println();

    Altrimenti se fai un mix è naturale che Scanner "veda" 2 newline (nota: è una cosa interna e non è documentata nel javadoc ma in Scanner il pattern del newline è "\r\n|[\n\r\u2028\u2029\u0085]", quindi accetta sia CR+LF che CR che LF).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    11
    Quote Originariamente inviata da andbin Visualizza il messaggio
    (nota: è una cosa interna e non è documentata nel javadoc ma in Scanner il pattern del newline è "\r\n|[\n\r\u2028\u2029\u0085]", quindi accetta sia CR+LF che CR che LF).
    Non credo di capire cosa intendi, ma mi informerò in rete senza scomodarti oltre

    Quote Originariamente inviata da andbin Visualizza il messaggio
    Già ... riguardando meglio il codice che hai scritto mi pare ovvio!

    stdinStream.println("\n");

    O fai stdinStream.print("\n");
    Oppure fai stdinStream.println();

    Altrimenti se fai un mix è naturale che Scanner "veda" 2 newline
    Non l'avrei mai scoperto. Sarei potuto morire cercando questo errore mascherato Ti ringrazio infinitamente, sia per l'aiuto che per la pazienza che hai portato. Ora il progetto è quasi terminato, devo solo fare un po' di refactoring e cancellare tutte le millemila righe di codice "vecchio" che ho lasciato lì, commentate, in attesa di chissà cosa

    Grazie ancora e tanti saluti

    PS: Devo in qualche modo segnalare che la questione è stata risolta?

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.