---
title: "JTable"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/47474-jtable"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "niels"
published: "2002-07-08T10:50:32.000Z"
updated: "2002-07-08T10:50:32.000Z"
replies: 0
views: 237
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/47474-jtable"
---

# JTable

## #1 — niels, 2002-07-08T10:50Z

Har gjort en utökning av en JTable. I tabellen visas innehållet som finns i en AccountCollection. När en ändring har gjort i denna så skulle jag vilja ha en metod(reload) som jag kan anropa för att ladda om tabellen. Någon som vet hur jag gör detta??

```
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;

class AccountTable extends JPanel {
	
	private JTable table;
	private AccountDataModel accountModel;
	private AccountCollection theAccounts;
	private BankFrame myFrame; //Used to refer to buttons edit and delete via 'setButtonState' function.
	
	AccountTable(AccountCollection theAccounts, BankFrame frame) {
		
	    this.theAccounts = theAccounts;
	    this.myFrame = frame;
	    
	    setLayout(new BorderLayout());
	    
	   	accountModel = new AccountDataModel();
		table = new JTable(accountModel);
		
		//Only allow users to select one account at a time:
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		
		ListSelectionModel rowSM = table.getSelectionModel();
        rowSM.addListSelectionListener(new ListSelectionListener() {
			public void valueChanged(ListSelectionEvent e) {
				if(e.getValueIsAdjusting()) return;	
					ListSelectionModel listSM = (ListSelectionModel)e.getSource();
				if(listSM.isSelectionEmpty()) {
					myFrame.setButtonState(false);
				} else {
					myFrame.setButtonState(true);
				}
			}			
		});
		
	    JScrollPane scrollPane = new JScrollPane(table);
	    table.setPreferredScrollableViewportSize(new Dimension(500, 80));

	    add(scrollPane, BorderLayout.CENTER);

  	}
  	
  	public void reload() {
  		//???
  	}
    	
  	class AccountDataModel extends AbstractTableModel  {
  		
  		String columns[] = {"ID", "Type", "Balance", "Interest"};
  		String rows[][]; 
		
		private int nColumns; 
		private int nRows;
		
		public AccountDataModel() {
			rows = new String[theAccounts.count()][4];
			for(int i = 0; i<theAccounts.count(); i++) {
				Account x = theAccounts.getAccount(i); 
				String tmp[] = {x.getAccountID(), x.getType(), x.getBalanceStr(), x.getInterestStr()};
				rows[i] = tmp;
			}
			nColumns = columns.length;
			nRows = rows.length;
		}
		
		
		public int getColumnCount() {
			return nColumns;
		}
		
		public int getRowCount() {
			return nRows;
		}
		
		public Object getValueAt (int row, int column) {
			return rows[row][column];
		}
		
		public String getColumnName (int columnIndex) {
			return columns[columnIndex];
		}
		
		public void setValueAt (Object aValue, int row, int column) {
			String cellValue;
			if (aValue instanceof String) {
				cellValue = (String)aValue;
			} else {
				cellValue = aValue.toString();
			}
			rows[row][column] = cellValue;
			fireTableCellUpdated(row, column);
		}
		
		public boolean isCellEditable(int row, int column) {
			return false;
		}

  	}
  	
}
```

Permalänk: https://www.webforum.nu/p/47474

---

Tråden på webben: https://www.webforum.nu/amne/java/47474-jtable
