Creare piu label con ciclo for

di il
7 risposte

Creare piu label con ciclo for

Salve ragazzi vorrei un grande aiuto da voi espertissimi
vi spiego : vorrei creare piu label con il ciclo for..
in sintesi ho un button , ho una text
quello che vorrei che il programma deve fare e il seguente
inserisco il nome e lui mi stampa il primo nome e cosi via con tutto il resto del ciclo for... io lo fatto cosi :
ha dimenticavo uso eclipse kepler
Button btnNewButton = new Button(finestra, SWT.NONE);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {

for (int i=0;i<5;i++)
{

label.setText(text.getText()+" "+(i+1));
text.setText("");----- se ho inserito questo codice e per
cancellare nella text pero il for dopo non scrive piu


}

}
});
credo che il for e scritto bene il resto non so
vi ringrazio

7 Risposte

  • Re: Creare piu label con ciclo for

    Ciao,
    il codice deve essere scritto tra i tag
    altrimenti è illeggibile.
    Scusami se te lo dico ma studia anche un po l'italiano prima della programmazione...errori madornali e frasi che si capiscono a malapena.
    Terzo: perché usi le librerie SWT? per iniziare avrei usato le Swing per poi passare a SWT dopo aver acquisito una certa manualità.
    Sull'errore:
    
    label.setText(text.getText()+" "+(i+1));
    text.setText("");
    
    certo cancelli ciò che ci sta dentro al text quindi dalla seconda iterazione label non stamperà nulla se non 1,2,3,4

    devi assegnare al text un'altra variabile.
    Io non so dove hai memorizzate questi nomi, ma sarebbe più indicato metterli dentro un'array.

    Ciao
  • Re: Creare piu label con ciclo for

    Senti grazie per la risposta, sei stato veramente gentile, scusami se ho digitato qualche carattere errato e qualche frase insensata però sai sto da una settimana su questa cosa e purtroppo non ci sono riuscito ancora. L'ho provato anche a crearlo con l'array prima del tuo consiglio ma nulla da fare , probabilmente stampa tutto sulla stessa posizione, per caso sai come creare una label diversa da quella che ho postato? grazie ancora
  • Re: Creare piu label con ciclo for

    Che vuol dire "sai come creare una label diversa da quella che ho postato"?
  • Re: Creare piu label con ciclo for

    Volevo dirti io l'ho creata in questo modo:

    for (int i=0;i<5;i++)
    {
    Label label = new Label(finestra,SWT.NONE);
    label.setText(text.getText()+" "+(i+1));
    label.setBounds(10,100, 130,90);
    } in questo modo manda a video solo il primo testo,

    creandolo con array lo creato in quest'altro modo
    Label [] label1 = new Label[100];
    for (int i=0;i<5;i++)
    {
    Label label = new Label(finestra,SWT.NONE);
    label1=label;
    label.setText(text.getText()+" "+(i+1));
    label.setBounds(10,100, 130,90);
    }ma il risultato non cambia
    mi chiedevo, se esistesse un altro modo per creare label.
  • Re: Creare piu label con ciclo for

    Passami tutta la classe che hai creato, vedo che posso fare...
    inoltre ti avverto: io di libreria SWT ne conosco poco e niente l'ho usata solo per l'apertura della finestra di outlook in modo nativo senza ricorrere al metoto open della classe Desktop(molto rozzo), con uno snippet che ho trovato in rete.
    Quindi in caso userei Swing.

    Ciao.
  • Re: Creare piu label con ciclo for

    Ecco a te e grazie di vero cuore


    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;
    import org.eclipse.swt.widgets.Label;
    public class prova1 {

    public Shell finestra;
    public Text text ;
    public Label label ;
    /**
    * Launch the application.
    * @param args
    */
    /**
    * Open the window.
    */
    public void open() {
    Display display = Display.getDefault();
    createContents();
    finestra.open();
    finestra.layout();
    while (!finestra.isDisposed()) {
    if (!display.readAndDispatch()) {
    display.sleep();
    }
    }
    }

    /**
    * Create contents of the window.
    * @wbp.parser.entryPoint
    */
    protected void createContents() {
    finestra = new Shell();
    //finestra.setSize(1000, 500);
    finestra.setBounds(1, 1, 1000, 500);
    finestra.setText("prova seconda");


    text = new Text(finestra, SWT.BORDER);
    text.setBounds(9, 54, 76, 21);

    Button btnNewButton = new Button(finestra, SWT.NONE);
    btnNewButton.addSelectionListener(new SelectionAdapter() {
    @Override
    public void widgetSelected(SelectionEvent e) {
    Label [] label1 = new Label[100];

    for (int i=0;i<5;i++)
    {
    Label label = new Label(finestra,SWT.NONE);
    label.setText("\n"+text.getText()+" "+(i+1));
    label1=label;

    label.setBounds(SWT.DEFAULT ,SWT.DEFAULT, 130,900);

    label.pack();
    text.setText("");

    }

    }
    });
    btnNewButton.setBounds(9, 23, 75, 25);
    btnNewButton.setText("PREMI");

    }
    }
  • Re: Creare piu label con ciclo for

    Perdonami,
    ma fatico a capire cosa debba fare il tuo programma.
    Spiega meglio e ti invito a cominciare a studiare da un libro perché quello che hai copiato da Internet non ti permetterà di capire molto del mondo della programmazione.
    Ciao.
Devi accedere o registrarti per scrivere nel forum
7 risposte