2012-03-26 21 views
0

Zur Initialisierung:Aktualisierung JTable Datum

Vector<Vector> rowdata = new Vector<Vector>(); 
Vector columnname = new Vector(); 
JTabel result = new JTable(rowdata, columnname); 
JScrollPane sqlresult = new JScrollPane(result); 

Im späteren Teil I Werte zuweisen in rowdata und columnname Vektor. Wie zeigt man neue Werte in JTable auf GUI?

Zusätzlich ..

result.repaint(); 

..und ..

((DefaultTableModel)result.getModel()).fireTabelDataChanged() 

..seem nichts zu tun.

+0

Warum Sie eine JScrollPane "SQLResult" nennen? – NeeL

+0

'JTabel Ergebnis = neue JTable (rowdata, columnname);' Das würde nicht kompilieren. Verschwenden Sie nicht Ihre Zeit (und wichtiger noch meine), indem Sie "etwas wie" den verwendeten Code posten. Um schneller Hilfe zu bekommen, schreiben Sie eine [SSCCE] (http://sscce.org/). –

+0

JTable (Vector rowdata, Vector columnname) ist ein Konstruktor, der in der JTable-Klasse definiert ist. Wieso würde es nicht kompilieren? Auf meinem Computer kann es kompiliert werden. – bluestar

Antwort

1

rowdata und columnname werden für die Initialisierung von JTable verwendet, nachdem die Komponente JTable existiert, müssen Sie JTable.getColumnModel() und JTable.getModel() verwenden, um Spalten oder Zeilen hinzuzufügen.

Oder JTable.addColumn(TableColumn aColumn) wenn Sie nur eine Spalte hinzufügen möchten. Look here, wenn Sie wissen möchten, wie Sie eine Zeile nach einem Beispiel hinzufügen.

+0

Vielen Dank. Ich werde gehen und lernen, wie man eine Reihe hinzufügt !! – bluestar

3

1) verwenden DefaultTableModel für JTable

2) Spalte Klasse

3) in Zeile (n) DefaultTableModel.addRow (myVector) definieren;

zum Beispiel

import java.awt.*; 
import java.awt.event.*; 
import java.util.Random; 
import javax.swing.*; 
import javax.swing.border.LineBorder; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.table.TableCellRenderer; 

public class DefaultTableModelDemo { 

    public static final String[] COLUMN_NAMES = { 
     "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" 
    }; 
    private DefaultTableModel model = new DefaultTableModel(COLUMN_NAMES, 0); 
    private JTable table = new JTable(model); 
    private JPanel mainPanel = new JPanel(new BorderLayout()); 
    private Random random = new Random(); 

    public DefaultTableModelDemo() { 
     JButton addDataButton = new JButton("Add Data"); 
     JPanel buttonPanel = new JPanel(); 
     buttonPanel.add(addDataButton); 
     addDataButton.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       addDataActionPerformed(); 
      } 
     }); 
     model = new DefaultTableModel(COLUMN_NAMES, 0) { 

      private static final long serialVersionUID = 1L; 

      @Override 
      public Class getColumnClass(int column) { 
       return getValueAt(0, column).getClass(); 
      } 
     }; 
     table = new JTable(model) { 

      private static final long serialVersionUID = 1L; 

      @Override 
      public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { 
       Component c = super.prepareRenderer(renderer, row, column); 
       if (isRowSelected(row) && isColumnSelected(column)) { 
        ((JComponent) c).setBorder(new LineBorder(Color.red)); 
       } 

       return c; 
      } 
     }; 
     mainPanel.add(new JScrollPane(table), BorderLayout.CENTER); 
     mainPanel.add(buttonPanel, BorderLayout.SOUTH); 
    } 

    private void addDataActionPerformed() { 
     for (int i = 0; i < 5; i++) { 
      Object[] row = new Object[COLUMN_NAMES.length]; 
      for (int j = 0; j < row.length; j++) { 
       row[j] = random.nextInt(5); 
      } 
      model.addRow(row); 
     } 
    } 

    public JComponent getComponent() { 
     return mainPanel; 
    } 

    public static void main(String[] args) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       JFrame frame = new JFrame("DefaultTableModelDemo"); 
       frame.getContentPane().add(new DefaultTableModelDemo().getComponent()); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 
}