Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di userfra
    Registrato dal
    Jul 2001
    Messaggi
    1,418

    [JAVA] Swing creare una tabella

    Ciao a tutti, come faccio a creare una tabella, strutturata in questo modo:

    2 campi
    x record a seconda del risultato di ciclo for, per esempio supponiamo 30


    ????


    Idee....



    thank's
    -------------------------------------------------
    Il fumo nuoce gravemente alla salute

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    La visualizzazione di ogni campo come viene fatta?
    Tramite una JLabel? E poi, quanto puo' essere grande il contenuto di un campo?

    Comunque direi che potresti costruire un array di JLabel pari a 2 volte il numero di record che ottieni dalla query, e metterle in un JPanel, puo' andare?
    Ciao,
    Lorenzo

  3. #3
    Utente di HTML.it L'avatar di userfra
    Registrato dal
    Jul 2001
    Messaggi
    1,418
    no io ho
    String[] columnNames = {"campo","campo2"};
    Object[][] cells = {...};



    table = new JTable(cells, columnNames);


    solo che nelle celle vorrei inserire questo ciclo

    dove praticamente i = campo
    e dove io utilizzo ad esempio System.out.println(i+" Lun");
    deve essere campo2, come posso fare?

    for (int i=1; i<=data.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {
    data.set(Calendar.DAY_OF_MONTH, i);

    if (data.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY){
    System.out.println(i+" Lun");
    }else if (data.get(Calendar.DAY_OF_WEEK) == Calendar.TUESDAY){
    System.out.println(i+" Mar");
    }else if (data.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY){
    System.out.println(i+" Mer");
    }else if (data.get(Calendar.DAY_OF_WEEK) == Calendar.THURSDAY){
    System.out.println(i+" Gio");
    }else if (data.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY){
    System.out.println(i+" Ven");
    }else if (data.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
    System.out.println(i+" Sab");
    }else if (data.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
    System.out.println(i+" Dom");
    }
    -------------------------------------------------
    Il fumo nuoce gravemente alla salute

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    Potresti spiegarti un po' meglio?
    Questo e' quello che ho capito io:
    tu vuoi creare una tabella con due colonne e n righe, dove n e' il giorno del mese (quindi variabile da 1 a 31).
    Poi fai un ciclo da 1 a n, e guardi a che giorno della settimana corrisponde il giorno n.
    Ma che cosa devi inserire nei due campi?!?
    Comunque l'array cells puoi inizializzarlo cosi'
    Object cells = Object[n][2];
    Un ciclo for scorre i giorni
    codice:
    for(int i=1, max = data.getActualMaximum(Calendar.DAY_OF_MONTH); i <= max; i++) { 
    data.set(Calendar.DAY_OF_MONTH, i); 
    int day = data.get(Calendar.DAY_OF_WEEK);
    
    switch(day) {
    case Calendar.MONDAY:
                  cells[n][1] = Lun
                  cells[n][2] = campo2
                  break;
    case Calendar.TUESDAY:
                  cells[n][1] = Mar'
                  cells[n][2] = campo2
                  break;
    case Calendar.WEDNESDAY:
                  cells[n][1] = Mer
                  cells[n][2] = campo2
                  break;
    case Calendar.THURSDAY:
                  cells[n][1] = Gio
                  cells[n][2] = campo2
                  break;
    case Calendar.FRIDAY:
                  cells[n][1] = Ven
                  cells[n][2] = campo2
                  break;
    case Calendar.SATURDAY:
                  cells[n][1] = Sab
                  cells[n][2] = campo2
                  break;
    case Calendar.SUNDAY:
                  cells[n][1] = Dom
                  cells[n][2] = campo2
                  break;
    default:
                  break;
    }
    una cosa simile puo' andare?
    Ciao,
    Lorenzo

  5. #5
    Utente di HTML.it L'avatar di userfra
    Registrato dal
    Jul 2001
    Messaggi
    1,418
    ciao, si in effetti mi sono spiegato male, praticamente vorrei fare una tabella dove nella prima colonna mi viene stampato il numero (1,2,3...) mentre nella seconda il giorno della settimana(Lun,Mar,...)
    -------------------------------------------------
    Il fumo nuoce gravemente alla salute

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    Allora ti basta modificare leggermente il ciclo che ho postato prima.
    in cell[n][1] ci metti n e in cell[n][2] ci metti il giorno della settimana. Prova e vedi se cosi' ti puo' andar bene.
    Ciao,
    Lorenzo

  7. #7
    Utente di HTML.it L'avatar di userfra
    Registrato dal
    Jul 2001
    Messaggi
    1,418
    Originariamente inviato da lelefante
    La visualizzazione di ogni campo come viene fatta?
    Tramite una JLabel? E poi, quanto puo' essere grande il contenuto di un campo?

    Comunque direi che potresti costruire un array di JLabel pari a 2 volte il numero di record che ottieni dalla query, e metterle in un JPanel, puo' andare?
    Per costruire un array di JLabel, è giusto fare in questo modo?

    JLabel testlabel[] = new JLabel[5];

    for(int i=0;i<5;i++)
    testlabel[i].setText("Elemento "+String.valueOf(i));
    -------------------------------------------------
    Il fumo nuoce gravemente alla salute

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    Si, e' corretto. Inoltre fai senza mettere String.ValueOf(i), puoi mettere direttamente "Elemento" + i.
    Ciao,
    Lorenzo

  9. #9
    Utente di HTML.it L'avatar di userfra
    Registrato dal
    Jul 2001
    Messaggi
    1,418
    Originariamente inviato da lelefante
    Si, e' corretto. Inoltre fai senza mettere String.ValueOf(i), puoi mettere direttamente "Elemento" + i.

    solo che quando aggiungo il componente al Content mi da questo errore:

    test.java:55: cannot resolve symbol
    symbol : method add (java.lang.String,javax.swing.JLabel[])
    location: class java.awt.Container
    getContentPane().add(BorderLayout.CENTER, testlabel);
    ^
    1 error


    perché?
    -------------------------------------------------
    Il fumo nuoce gravemente alla salute

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    315
    Perche' non puoi inserire tutto l'array di JLabel, devi fare un ciclo e inserire i singoli oggetti dell'array.
    Ciao,
    Lorenzo

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.