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

    Problema con jText area

    Salve a tutti...
    ho una applicazione che ad ogni pressione di un jbutton crea un thread che visualizza una JDialog:
    codice:
    public void showNode() 
            {
                Thread gr = new Thread(new ThreadNode());
                gr.start();
            }
    public class ThreadNode implements Runnable{
    
        public void run() 
            {
                GUISDNode Nodo = new GUISDNode(GUISDView.conto_nodi);
            }
        
    }
    Ora... in ognuna di queste JDialog c'è una jtextarea in cui redirigo l'output della console (semplici println). Il problema è che se creo due jDialog e nella prima premo un bottone per farmi stampare del testo, lo scrive nella jtextarea della seconda jdialog... Cosa posso fare?
    Spero di essere stato chiaro,
    Grazie in anticipo

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

    Re: Problema con jText area

    Originariamente inviato da robertopul
    Ora... in ognuna di queste JDialog c'è una jtextarea in cui redirigo l'output della console (semplici println). Il problema è che se creo due jDialog e nella prima premo un bottone per farmi stampare del testo, lo scrive nella jtextarea della seconda jdialog... Cosa posso fare?
    Ma il punto è che .... l'output su System.out è comunque una cosa "globale". Come faresti a redirigere questo output globale un po' in una textarea, un po' in un'altra ecc...??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    In effetti hai ragione... però... In una precedente implementazione anche se facevo append sulla jtextarea dalla prima jdialog... si aveva lo stesso comportamento...cioè mi faceva append sulla seconda Jdialog...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da robertopul
    In effetti hai ragione... però... In una precedente implementazione anche se facevo append sulla jtextarea dalla prima jdialog... si aveva lo stesso comportamento...cioè mi faceva append sulla seconda Jdialog...
    Se ti andasse bene fare la redirezione sulla dialog che è "attiva" ... si può fare e avrebbe perlomeno senso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Originariamente inviato da andbin
    Se ti andasse bene fare la redirezione sulla dialog che è "attiva" ... si può fare e avrebbe perlomeno senso.
    il fatto è che se apro 10 dialog, da qualsiasi di esse faccio append mi scrive nell'ultima aperta... come se quella attiva fosse sempre l'ultima... non riesco a capire perchè... in c# avrei usato un singleton per riferirmi all'istanza corrente... Qui ho provato ma non va... idee?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da robertopul
    il fatto è che se apro 10 dialog, da qualsiasi di esse faccio append mi scrive nell'ultima aperta... come se quella attiva fosse sempre l'ultima... non riesco a capire perchè...
    Scusa eh ma partiamo dall'inizio: quando parli di "redirigo l'output della console", io ovviamente penso al fatto che da qualche parte fai un:

    System.setOut(tuoPrintStream);

    Ci siamo? Questa è una impostazione "globale", lo standard-output è uno solo.

    Ok. Cosa fai e c'è "dietro" quel tuoPrintStream? Da qualche parte ricevi i pezzi di output. A chi li mandi? Se vuoi che più textarea ricevano lo stesso output allora chiaramente devi tenerti una "lista" di riferimenti alle N textarea. In modo che i testi vengano "appesi" in tutte le textarea.

    Ci siamo? Se invece vuoi che l'output vada solo nella textarea relativa alla dialog "attiva" si può anche fare ma richiede una architettura un pochino diversa (e nemmeno troppo complicata).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    lascia stare la redirezione. Vorrei abbandonare questa pista. Immagina che in una frame ho un bottone che ad ogni volta che viene premuto genera un thread che apre una dialog con dentro, tra le altre cose, una textarea. Ecco ogni dialog è l'interfaccia grafica di un nodo in una rete. Vorrei usare la textarea di ogni nodo per visualizzare notifiche di servizio come ricezione di messaggi etc... Quindi ogni textarea deve scrivere in append roba mandata dal proprio thread...
    Se non ti è chiaro qualche punto provo a spiegartelo meglio... In ogni caso ti ringrazio per l'aiuto!

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da robertopul
    Quindi ogni textarea deve scrivere in append roba mandata dal proprio thread...
    E allora è sufficiente che ogni thread (quello che hai usato per definire il lavoro del thread: estensione di Thread o implementazione di Runnable) abbia un riferimento o diretto alla textarea o indiretto alla dialog in modo da invocarci un metodo che passerà poi il testo alla textarea.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    puoi farmi un esempietto stupido? Non sono sicuro di aver capito bene cosa mi suggerisci
    Grazie!

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da robertopul
    puoi farmi un esempietto stupido? Non sono sicuro di aver capito bene cosa mi suggerisci
    Come hai definito il "lavoro" del thread? Implementazione di Runnable o estensione di Thread? Mostra il codice.

    Ma comunque, a grandi linee, tieni in questa tua classe il riferimento alla JTextArea (che è correlata alla dialog, al tuo "nodo" e al thread stesso).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.