Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    29

    Passaggio stringhe di testo a Jframe

    Salve a tutti,
    stavo cercando di far il risultato (string) di una funzione in una classe A ad un Jframe (classe B) in modo da far cambiare dinamicamente un Jlabel presente in essa tramite la funzione setText. Ho provato sia ad usare la setText direttamente in A, sia con una funzione in B chiamata dalla classe A, ma in entrambi i casi non ho ottenuto risultati... Qualcuno sa aiutarmi?
    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Puoi mostrare il codice che stai utilizzando?

    Oltre al chiamare un metodo passando la stringa, l'altra soluzione è utilizzare Observer ed Observable, in modo che quando cambia il contenuto della stringa venga aggiornato il label.
    Teoricamente dovrebbe funzionare. Comunque con il codice magari si capisce perchè non chiami la classe direttamente dal jframe per mostrare poi il risultato.

    Inoltre, che devi realizzare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    29
    Devo realizzare una sorta di agenda che legga e scriva su un database, quindi voglio che dopo aver effettuato un'operazione (magari dopo aver cliccato su un pulsante "esegui") si apra un nuovo JFrame in cui appaia un messaggio che dica se l'operazione è stata completata oppure meno.
    Avevo provato sia una soluzione del genere (dove testLabel è il nome del Jlabel nella classe messaggi):

    codice:
    package control;
    import boundary.messaggi;
    
    
    public class classeTest {
        
        public void eseguiTest(){
            messaggi newMess = new messaggi();
            newMess.setVisible(true);
            newMess.testLabel.setText("prova");
        }
    }
    Sia quella di inserire una funzione direttamente nella classe messaggi (chiamata poi dalla prima classe), del tipo :

    codice:
    public void stringTest(String test){
            messaggi prova = new messaggi();
            prova.testLabel.setText(test);
        }
    Ma il problema è che con queste soluzioni, non mi riconosce la variabile testLabel

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Ah ok, la cosa allora sembra diversa da come l'avevo intesa io.
    Domanda: visto che si tratta del mostrare solo un messaggio, perchè andare a scomodare un JFrame quando si può utilizzare JOptionPane.showMessageDialog()? In questo caso sarebbe tutto più semplice...


    Sulla correttezza di quella sintassi comunque c'è molto da dire (dipende lo specificatore di accesso di testLabel ad esempio), sarebbe necessario dare uno sguardo alla classe messaggi. Una soluzione migliore in questo caso è creare in messaggi un metodo tipo "setText()" che chiamerai come:

    codice:
    messaggi.setText("testo");
    e setText sia dichiarata come:
    codice:
    void setText(String s) {
      testLabel.setText(s);
    }
    Ma se lo scopo è mostrare un messaggio sullo stato di un operazione, la scelta migliore è sicuramente un JOptionPane.
    Dagli un occhio: http://docs.oracle.com/javase/tutori...ts/dialog.html

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    29
    Si quella del JOptionPane è sicuramente la soluzione migliore :P Sono ancora alle prime armi con java quindi non ne ero a conoscenza! Grazie mille

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.