Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107

    Come si fa il refresh di una JTable?

    Ragazzi ho un problema... STRANO!!
    In una GUI ho un array di JTable e due bottoni (previous e next) per scorrere l'array. Se modifico però il valore di una cella della tabella, anche se clicco su next o previous viene visualizzato il valore che ho appena inserito, quando invece non è riferito a quella JTable ma a quella appena modificata! Praticamente è come se avessi una sola tabella!!! Cioè non mi fa il refresh della tabella.
    La JTable che ho creato, che è in una classe Tabella, è inizializzata così:
    public Tabella[] tabella;
    tabella= new Tabella[5];
    Panel p=new Panel();
    for (int i=0; i<tabella.length; i++){
    tabella[i] = new Tabella(giocatore[i]);
    }
    p.add(tabella[count], BorderLayout.SOUTH);

    poi se clicco su PREVIOUS count=count-1 e se clicco su NEXT count++;

    Qualche idea?? Grazie!!
    Giovanni

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    JTable.tableChanged(TableModelEvent e). In TableModelEvent specquale riga o colonna è stata modificata.
    oppure usi il DefaultTableModel
    http://forum.java.sun.com/thread.jsp...hreadID=418866

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    Ti chiedo scusa ma non ho capito... non ho molta dimestichezza con le JTable... e poi questa riga di codice la devo mettere nella classe che contiene il costruttore della JTable o in quella che la visualizza?
    Giovanni

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    Se vi può essere d'aiuto vi inserisco il codice della tabella:

    public class Tabella extends JPanel {
    private boolean DEBUG = false;
    private Giocatore x;

    public Tabella(Giocatore x) {
    super(new GridLayout(1,0));
    this.x=x;

    String[] columnNames = {"","Punteggio"};

    Object[][] data = {bla bla bla... bla bla bla}

    final JTable table = new JTable(data, columnNames);
    table.setPreferredScrollableViewportSize(new Dimension(150, 310));
    if (DEBUG) {
    table.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    printDebugData(table);
    }
    });
    }

    //Create the scroll pane and add the table to it.
    JScrollPane scrollPane = new JScrollPane(table);

    //Add the scroll pane to this panel.
    add(scrollPane);
    }

    private void printDebugData(JTable table) {
    int numRows = table.getRowCount();
    int numCols = table.getColumnCount();
    javax.swing.table.TableModel model = table.getModel();

    System.out.println("Value of data: ");
    for (int i=0; i < numRows; i++) {
    System.out.print(" row " + i + ":");
    for (int j=0; j < numCols; j++) {
    System.out.print(" " + model.getValueAt(i, j));
    }
    System.out.println();
    }
    System.out.println("--------------------------");
    }
    Giovanni

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.