Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 69
  1. #1
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446

    [JAVA]Swing creare una Stringa dinamica

    Salve a tutti,ho l'esigenza di creare una finestra in swing in cui inserire una stringa dinamica.Ovvero c'è praticamente un contatore che cresce da 0 a xxx e vorrei che fosse possibile visualizzarlo in una finestra,ovviamente però nella stessa riga.Sono riuscito senza problemi a creare diverse righe e far andare il contatore così:


    Il numero è 0
    Il numero è 1
    Il numero è 2
    Il numero è 3

    e così via ora vorrei che la stringa divenisse dinamica così da poter lasciare "il numero è" e far cambiare solo il numero.

    Spero di essermi spiegato bene

    Saluti!

  2. #2
    Utilizza due JLabel affiancate... una col testo statico "il numero è", l'altra col solo valore del contatore che aggiorni quando vuoi.
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    Originariamente inviato da R@ve M@ster
    Utilizza due JLabel affiancate... una col testo statico "il numero è", l'altra col solo valore del contatore che aggiorni quando vuoi.
    si il fatto è che proprio non so come creare un jlabel dinamico che aggiorni il contatore

  4. #4
    Devi settare il testo della JLabel cambiandone periodicamente il valore... Per fare ciò devi utilizzare i Thread. Ad esempio:
    codice:
    class tCounter extends Thread {
          public int count = 1;
    
          public void run() {
              while (count < 50) {
                  try {
                      sleep(1000);
                  } catch (InterruptedException e) { }
                jLabel1.setText(String.valueOf(count));
                count++;
            }
    
        }    
    }
    Questa classe la metti all'interno della tua Form dove hai la jLabel1.
    Al mio segnale... scatenate l'inferno!

  5. #5
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class lol {

    static JFrame j = new JFrame();



    public static void main( String arg[] )
    {
    j.setTitle("Xyz");
    j.setBounds(10,10,300,200);
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    j.setVisible(true);


    class tCounter extends Thread {
    label = new JLabel();

    public int count = 1;

    public void run() {
    while (count < 50) {
    try {
    sleep(1000);
    } catch (InterruptedException e) { }

    label.setText(String.valueOf(count));
    count++;
    j.getContentPane().add(label);
    }

    }
    }

    }
    }


    dove sbaglio?

  6. #6
    1) la definizione della classe tCounter deve essere esterna al main
    2) all'interno del main devi dichiarare un oggetto tCounter e richiamare il metodo start su questo.
    3) l'add(label) va fatto nel main prima di rendere visibile la jlabel e non in tCounter
    Al mio segnale... scatenate l'inferno!

  7. #7
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    si scusa ti avevo postato il vecchio codice:

    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class lol {

    static JFrame j = new JFrame();



    public static void main( String arg[] )
    {
    j.setTitle("Xyz");
    j.setBounds(10,10,300,200);
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    j.setVisible(true);
    j.getContentPane().add(label);

    tCounter myCounter = new tCounter();
    myCounter.run();

    }

    class tCounter extends Thread {

    label = new JLabel();

    public int count = 1;

    public void run() {
    while (count < 50) {
    try {
    sleep(1000);
    } catch (InterruptedException e) { }

    label.setText(String.valueOf(count));
    count++;

    }

    }
    }

    }

    questo è quello modificato completo ma da lo stesso errore

  8. #8
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    nessuno?

  9. #9
    devi richiamare myCounter.start() non myCounter.run(),
    Al mio segnale... scatenate l'inferno!

  10. #10
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    giorno rave,sbaglio ancora qualcosa,sempre lo stesso errore:

    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class lol {

    static JFrame j = new JFrame();



    public static void main( String arg[] )
    {
    j.setTitle("Xyz");
    j.setBounds(10,10,300,200);
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    j.setVisible(true);
    j.getContentPane().add(label);

    tCounter myCounter = new tCounter();
    myCounter.start();

    }

    class tCounter extends Thread {

    label = new JLabel();

    public int count = 1;

    public void run() {
    while (count < 50) {
    try {
    sleep(1000);
    } catch (InterruptedException e) { }

    label.setText(String.valueOf(count));
    count++;

    }

    }
    }

    }

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.