Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396

    button CONNETTI applet-chat

    Ciao a tutti, ho realizzato questa applet funzionante per un client chat:

    codice:
    public class cliente extends javax.swing.JApplet {
    
        /** Initializes the applet cliente */
        public void init() {
            try {
                java.awt.EventQueue.invokeAndWait(new Runnable() {
                    public void run() {
                        initComponents();
    //corpo client
     try {
             Socket skt = new Socket(jTextField1.getText(),1234);
             BufferedReader in = new BufferedReader(new
                InputStreamReader(skt.getInputStream()));
             System.out.print("Received string: '");
             jTextArea1.append("Stringa ricevuta:'");
    
             while (!in.ready()) {}
             System.out.println(in.readLine()); // Read one line and output it
    
             System.out.print("'\n");
             in.close();
          }
          catch(Exception e) {
             System.out.print("Whoops! It didn't work!\n");
             jTextArea1.append("non funziona");
          }
    //fine corpo client
                    }
                });
            } catch (Exception ex) {
                ex.printStackTrace();
            }
    
        }
    Adesso vorrei sapere come poter far partire il //corpo client dopo la pressione del tasto
    CONNETTI denominato "jButton1"

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    non c'è nessuno che sa rispondermi???
    Potete almeno dirmi se in questo sito posso trovare una lista di metodi java, almeno quelli più noti?
    Così magari trovo anche il metodo per far eseguire delle operazioni dopo la pressione di un bottone.

    Grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    so che devo inserirci un actionListner-Event... ma non so come.
    Nessuno ha suggerimenti?

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

    Moderazione

    Originariamente inviato da Salinas
    Nessuno ha suggerimenti?
    Un suggerimento è questo: quando posti del codice, postalo indentato e all'interno dei tag CODE. Faciliti la lettura a chi prova a darti una mano e, probabilmente, ottieni più risposte.

    E' tutto scritto nel Regolamento interno.


    Correggo io il tuo post.


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396

    stampa testo in entrata

    Ok, grazie.
    Cmq nel frattempo ho risolto da solo il mio problema.
    Adesso ne ho un altro.
    Il server ed il client comunicano bene, solo vorrei far stampare nell'area di testo quello che si mandano.
    ho provato con questo codice ma mi da valore null:
    codice:
             while (!in.ready()) {}
             System.out.println(in.readLine()); // Read one line and output it
             jTextArea1.append("Stringa ricevuta:" + in.readLine() + "/n");

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

    Re: stampa testo in entrata

    Originariamente inviato da Salinas
    Ok, grazie.
    Cmq nel frattempo ho risolto da solo il mio problema.
    Adesso ne ho un altro.
    Il server ed il client comunicano bene, solo vorrei far stampare nell'area di testo quello che si mandano.
    ho provato con questo codice ma mi da valore null:
    codice:
             while (!in.ready()) {}
             System.out.println(in.readLine()); // Read one line and output it
             jTextArea1.append("Stringa ricevuta:" + in.readLine() + "/n");
    E' ovvio che ti dia null:
    codice:
             while (!in.ready()) {}
    
             // Qui leggi l'informazione dalla Socket e la stampi a video
             // ma l'informazione, dopo la lettura, viene consumata, persa, buttata via
             System.out.println(in.readLine()); // Read one line and output it
    
             // Qui stai leggendo una seconda stringa... che probabilmente non esiste
             // perchè il server ne invia una sola (letta prima e buttata via)
             jTextArea1.append("Stringa ricevuta:" + in.readLine() + "/n");
    in.readLine() legge una riga di testo da uno stream. Quando un'informazione viene letta da uno stream, lo stream "la cancella" (ovvero, si posiziona in modo da leggere il resto dello stream, che può anche essere vuoto), perchè deve far posto per il resto. Quindi, se vuoi stampare in due posti diversi la stringa che hai letto, la devi memorizzare da qualche parte:

    codice:
             while (!in.ready()) {}
    
             String rigaLetta = in.readLine();
             System.out.println( rigaLetta );
             jTextArea1.append("Stringa ricevuta:" + rigaLetta + "/n");

    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Grazie, funziona.
    Ma in questo modo se inserisco altri messaggi stampa anche quelli o sempre lo stesso?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    Il testo da me visualizzato lo inserisco manualmente nel codice.
    Adesso verrei che fosse inviato dall'utente inserendolo nella jTextArea2 e a seguito della pressione del tasto "invio" venga mandato al cliente.

    Questo è il mio codice:

    codice:
    class ser implements ActionListener {
          public void actionPerformed(ActionEvent b1) {
          String data = "ciao"; // questa è la stringa da me impostata
          String testo = jTextArea2.getText(); //questa è quella che vorrei mandare
    
          try {
             ServerSocket srvr = new ServerSocket(1234);
             Socket skt = srvr.accept();
             System.out.print("Server has connected!\n");
             jTextArea1.append("Server connesso!\n");
             PrintWriter out = new PrintWriter(skt.getOutputStream(), true);
             System.out.print("Sending string: " + data + "\n");//manda messaggio
             jTextArea1.append("Mandando la stringa: " + data + "\n");
             out.print(data);
             out.close();
             skt.close();
             srvr.close();
          }
          catch(Exception e) {
             System.out.print("Whoops! It didn't work!\n");
             jTextArea1.append("non funziona");
          }
       }
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    nessuno sa aiutarmi???

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.