JTable neu laden

Z

ZentrumderMacht

Gast
hallo zusammen,

ich suche den Befehl womit ich die Daten der JTable löschen kann also komplett weg :) Damit ich neue Daten dort einspielen kann jemand eine Idee?!

Habe den Code auch parat ist nur sehr viel deswegen schreib ich dies so, hatte schon ein lösungsversuch dieser hat leider nicht geklappt:)
 

Michael...

Top Contributor
Verwende z.B. DefaultTableModel (oder eine abgeleitete Klasse) als Datenmodel, dann kann man per setDataVector(...) die Tabelle ganz einfach neu befüllen.
 

André Uhres

Top Contributor
ich suche den Befehl womit ich die Daten der JTable löschen kann also komplett weg :) Damit ich neue Daten dort einspielen
Du kannst einfach ein neues TableModel setzen: JTable#setModel(..).
Falls du das "DefaultTableModel" benutzen willst: es bietet viele nützliche Methoden zur Veränderung der Daten an. Zum Beispiel:
- setRowCount(0) löscht alle Zeilen
- addRow(..) fügt eine neue Zeile hinzu
Oder du baust dir ein eigenes TableModel mit geeigneten Methoden. Mehr darüber findest du in unseren FAQ (JTable Tutorial).
 
Z

ZentrumderMacht

Gast
mh, ne leite von Abstract Model ab:( naja ich zeig einfach mal den Code :

Also kurze erörterung :) , ich versuche mit der der Klasse AddVerantwortlicher eben ein neuen Datensatz in meine Datenbank zu bekommen, dies klappt auch :) jetzt dachte ich wenn der neue Datensatz drinsteht muss ich nur meine alte holeDaten Methode VerantwortlicherTableModel nehmen diese holt mir neu die Daten und speichert mir diese in meine tabelle, wie beim starten der Tabelle, dort klappt dies ja auch:(


Java:
public class VerantwortlicherTableModel extends AbstractTableModel {
	Object[][] objects = new Object[1][3];
	private StammdatenDelegate delegate = StammdatenDelegate.getInstance();
	ArrayList<VerantwortlicherEntity> list = new ArrayList<VerantwortlicherEntity>();

	private final static Logger log = Logger
			.getLogger(VerantwortlicherTableModel.class);
	private Object[][] data = new Object[][] {};

	int COL_POS_NAME = 0;
	int COL_POS_AKTIV = 1;
	int COL_POS_SORT = 2;

	int row = 0;

	public void holeDaten() {
		list = (ArrayList<VerantwortlicherEntity>) delegate
				.suchenallerVerantwortlicher();
		for (VerantwortlicherEntity entity : list) {
			addRow(entity, row);
			row++;
		}
		fireTableChanged(null);
	}

	public String getColumnName(int pos) {
		String[] cols = new String[] { "Name", "Aktiv", "Sotierung" };
		return cols[pos];
	}

	public int getRowCount() {
		return data.length;
	}

	public int getColumnCount() {
		return 3;
	}

	public boolean isCellEditable(int row, int column) {
		return true;
	}

	public void addRow(int position) {
		position = Math.max(0, Math.min(data.length, position));
		Object[][] newObjects = new Object[data.length + 1][];

		System.arraycopy(data, 0, newObjects, 0, position);
		System.arraycopy(data, position, newObjects, position + 1, data.length
				- position);

		newObjects[position] = new Object[getColumnCount()];
		data = newObjects;

		fireTableRowsInserted(position, position);
	}

	public void addRow(VerantwortlicherEntity entity, int positionRow) {

		addRow(positionRow);
		data[positionRow][COL_POS_NAME] = entity.getName();
		data[positionRow][COL_POS_AKTIV] = entity.getAkiv();
		data[positionRow][COL_POS_SORT] = entity.getSortierung();
	}

	public void setValueAt(Object value, int row, int col) {
		data[row][col] = value;
		fireTableCellUpdated(row, col);
	}

	@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
		return data[rowIndex][columnIndex];
	}

	public void speicherDaten() {
		int positionRow = 0;
		for (VerantwortlicherEntity entity : list) {
			entity.setName((String) data[positionRow][COL_POS_NAME]);
			if (data[positionRow][COL_POS_AKTIV].equals("true")) {
				entity.setAkiv(true);
			} else if (data[positionRow][COL_POS_AKTIV].equals("false")) {
				entity.setAkiv(false);
			}
			entity.setSortierung((Integer) data[positionRow][COL_POS_SORT]);
			positionRow++;
			delegate.speichernVerantwortlicher(entity);
		}
	}

	public void deleteRow(int position) {
		for (VerantwortlicherEntity entity : list) {
			if (data[position][COL_POS_NAME].equals(entity.getName())
					&& data[position][COL_POS_SORT].equals(entity
							.getSortierung())) {
				entity.setDeleted(true);
				delegate.speichernVerantwortlicher(entity);
				list.remove(position);
				fireTableRowsDeleted(position, position);
				break;
			}
		}
	}
}
Java:
public class VerantwortlicherModul extends AbstractModul {

	/** Creates new form TestPanel */
	public VerantwortlicherModul() {

		initComponents();
		init();
		setName("Verantwortlicher");
		verantwortlicherTable.holeDaten();
		zahlerhochsetzen(1);
	}

	void init() {
		verantwortlicherTable.setAutoCreateRowSorter(true);
		int anzahlSpalten = verantwortlicherTable.getRowCount() - 1;
		jLabel2.setText((new Integer(anzahlSpalten)).toString());
		verantwortlicherTable.getModel().addTableModelListener(
				new TableModelListener() {

					public void tableChanged(TableModelEvent e) {
						jtabletablechanged(e);
					}
				});

	}

	/**
	 * This method is called from within the constructor to initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is always
	 * regenerated by the Form Editor.
	 */
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {
		java.awt.GridBagConstraints gridBagConstraints;

		jLabel1 = new javax.swing.JLabel();
		jLabel2 = new javax.swing.JLabel();
		jPanel1 = new javax.swing.JPanel();
		jScrollPane2 = new javax.swing.JScrollPane();
		verantwortlicherTable = new VerantwortlicherTable();
		jButton1 = new javax.swing.JButton();
		jButton2 = new javax.swing.JButton();
		jComboBox1 = new javax.swing.JComboBox();
		_tfxMandant = new javax.swing.JLabel();

		setLayout(new java.awt.GridBagLayout());

		jLabel1.setText("Anzahl Datensätze: ");
		gridBagConstraints = new java.awt.GridBagConstraints();
		gridBagConstraints.gridx = 0;
		gridBagConstraints.gridy = 7;
		gridBagConstraints.gridwidth = 2;
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
		gridBagConstraints.insets = new java.awt.Insets(0, 4, 4, 0);
		add(jLabel1, gridBagConstraints);

		jLabel2.setText("0");
		gridBagConstraints = new java.awt.GridBagConstraints();
		gridBagConstraints.gridx = 2;
		gridBagConstraints.gridy = 7;
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 4, 0);
		add(jLabel2, gridBagConstraints);

		jScrollPane2.setViewportView(verantwortlicherTable);

		jButton1.setText("Einfügen");
		jButton1.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jButton1ActionPerformed(evt);
			}
		});

		jButton2.setText("Löschen");
		jButton2.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jButton2ActionPerformed(evt);
			}
		});

		javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(
				jPanel1);
		jPanel1.setLayout(jPanel1Layout);
		jPanel1Layout
				.setHorizontalGroup(jPanel1Layout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								javax.swing.GroupLayout.Alignment.TRAILING,
								jPanel1Layout
										.createSequentialGroup()
										.addComponent(
												jScrollPane2,
												javax.swing.GroupLayout.DEFAULT_SIZE,
												639, Short.MAX_VALUE)
										.addPreferredGap(
												javax.swing.LayoutStyle.ComponentPlacement.RELATED)
										.addGroup(
												jPanel1Layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.TRAILING,
																false)
														.addComponent(
																jButton1,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																Short.MAX_VALUE)
														.addComponent(
																jButton2,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																92,
																Short.MAX_VALUE))
										.addContainerGap()));
		jPanel1Layout
				.setVerticalGroup(jPanel1Layout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								jPanel1Layout
										.createSequentialGroup()
										.addContainerGap()
										.addGroup(
												jPanel1Layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING)
														.addComponent(
																jScrollPane2,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																362,
																javax.swing.GroupLayout.PREFERRED_SIZE)
														.addGroup(
																jPanel1Layout
																		.createSequentialGroup()
																		.addComponent(
																				jButton1)
																		.addPreferredGap(
																				javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																		.addComponent(
																				jButton2)))
										.addContainerGap(
												javax.swing.GroupLayout.DEFAULT_SIZE,
												Short.MAX_VALUE)));

		gridBagConstraints = new java.awt.GridBagConstraints();
		gridBagConstraints.gridx = 0;
		gridBagConstraints.gridy = 1;
		gridBagConstraints.gridwidth = 22;
		gridBagConstraints.gridheight = 6;
		gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
		gridBagConstraints.weightx = 500.0;
		gridBagConstraints.weighty = 500.0;
		add(jPanel1, gridBagConstraints);

		jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(
				new String[] { "Walbusch" }));
		gridBagConstraints = new java.awt.GridBagConstraints();
		gridBagConstraints.gridx = 1;
		gridBagConstraints.gridy = 0;
		gridBagConstraints.gridwidth = 2;
		gridBagConstraints.insets = new java.awt.Insets(3, 0, 3, 0);
		add(jComboBox1, gridBagConstraints);

		_tfxMandant.setText("Mandant");
		gridBagConstraints = new java.awt.GridBagConstraints();
		gridBagConstraints.gridx = 0;
		gridBagConstraints.gridy = 0;
		gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
		gridBagConstraints.insets = new java.awt.Insets(7, 11, 8, 10);
		add(_tfxMandant, gridBagConstraints);
	}// </editor-fold>

	private void jtabletablechanged(TableModelEvent e) {
		if (verantwortlicherTable.getSelectedRow() + 1 == verantwortlicherTable
				.getRowCount()) {
			verantwortlicherTable.addRow(verantwortlicherTable.getRowCount());
			zahlerhochsetzen(1);
		}
	}

	public void zahlerhochsetzen(int anzahl) {
		jLabel2.setText((new Integer(verantwortlicherTable.getRowCount()
				- anzahl)).toString());
	}

	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
		int position;
		position = verantwortlicherTable.getSelectedRow();
		verantwortlicherTable.addRow(position);
		AddVerantwortlicher verantwortlicher = new AddVerantwortlicher();
	}
	
	public void setzeDaten(){
		verantwortlicherTable.holeDaten();
	}

	private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
		int position;
		position = verantwortlicherTable.getSelectedRow();
		verantwortlicherTable.deleteRow(position);
		zahlerhochsetzen(2);
	}

	// Variables declaration - do not modify

	private javax.swing.JLabel _tfxMandant;
	private javax.swing.JButton jButton1;
	private javax.swing.JButton jButton2;
	private javax.swing.JComboBox jComboBox1;
	private javax.swing.JLabel jLabel1;
	private javax.swing.JLabel jLabel2;
	private javax.swing.JPanel jPanel1;
	private javax.swing.JScrollPane jScrollPane2;
	private VerantwortlicherTable verantwortlicherTable;

	// End of variables declaration

	// *******************************************************************
	// Implementiert Modul
	// *******************************************************************
	public void open() {

	}

	public void aktualisieren() {

	}

	public void speichern() {
		verantwortlicherTable.speicherDaten();
	}

	public void deactivate() {
		super.deactivate();

	}

	public void setModus() {

	}
Java:
public class AddVerantwortlicher extends javax.swing.JFrame {
	int position;
	private StammdatenDelegate delegate = StammdatenDelegate.getInstance();

	/** Creates new form addVerantwortlicher */
	public AddVerantwortlicher() {
		initComponents();
		setVisible(true);
		setSize(500, 200);
	}

	/**
	 * This method is called from within the constructor to initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is always
	 * regenerated by the Form Editor.
	 */
	public void positionsuebergabe(int pos) {
		position = pos;
	}

	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

		jButton1 = new javax.swing.JButton();
		jButton2 = new javax.swing.JButton();
		_tfxName = new javax.swing.JLabel();
		_tfxsotiernummer = new javax.swing.JLabel();
		_tfxaktiv = new javax.swing.JLabel();
		jTextField1 = new javax.swing.JTextField();
		jTextField2 = new javax.swing.JTextField();
		jCheckBox1 = new javax.swing.JCheckBox();

		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

		jButton1.setText("Anlegen");
		jButton1.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jButton1ActionPerformed(evt);
			}
		});

		jButton2.setText("Beenden");
		jButton2.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jButton2ActionPerformed(evt);
			}
		});

		_tfxName.setText("Name:");

		_tfxsotiernummer.setText("Sotiernummer:");

		_tfxaktiv.setText("Aktiv:");

		jTextField1.setText("");

		jTextField2.setText("");

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout
				.setHorizontalGroup(layout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								layout
										.createSequentialGroup()
										.addContainerGap()
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING)
														.addComponent(
																_tfxsotiernummer)
														.addComponent(_tfxName)
														.addComponent(_tfxaktiv))
										.addPreferredGap(
												javax.swing.LayoutStyle.ComponentPlacement.RELATED)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING)
														.addGroup(
																layout
																		.createSequentialGroup()
																		.addGap(
																				131,
																				131,
																				131)
																		.addComponent(
																				jButton1,
																				javax.swing.GroupLayout.DEFAULT_SIZE,
																				92,
																				Short.MAX_VALUE)
																		.addPreferredGap(
																				javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																		.addComponent(
																				jButton2))
														.addComponent(
																jCheckBox1)
														.addGroup(
																layout
																		.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.TRAILING,
																				false)
																		.addComponent(
																				jTextField2,
																				javax.swing.GroupLayout.Alignment.LEADING)
																		.addComponent(
																				jTextField1,
																				javax.swing.GroupLayout.Alignment.LEADING,
																				javax.swing.GroupLayout.DEFAULT_SIZE,
																				143,
																				Short.MAX_VALUE)))
										.addContainerGap()));
		layout
				.setVerticalGroup(layout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								layout
										.createSequentialGroup()
										.addContainerGap()
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.BASELINE)
														.addComponent(
																jTextField1,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.PREFERRED_SIZE)
														.addComponent(_tfxName))
										.addPreferredGap(
												javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.BASELINE)
														.addComponent(
																_tfxsotiernummer)
														.addComponent(
																jTextField2,
																javax.swing.GroupLayout.PREFERRED_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.PREFERRED_SIZE))
										.addPreferredGap(
												javax.swing.LayoutStyle.ComponentPlacement.RELATED)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.LEADING)
														.addGroup(
																layout
																		.createSequentialGroup()
																		.addGap(
																				18,
																				18,
																				18)
																		.addGroup(
																				layout
																						.createParallelGroup(
																								javax.swing.GroupLayout.Alignment.BASELINE)
																						.addComponent(
																								jButton2)
																						.addComponent(
																								jButton1)))
														.addGroup(
																layout
																		.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.BASELINE)
																		.addComponent(
																				jCheckBox1)
																		.addComponent(
																				_tfxaktiv)))
										.addContainerGap(32, Short.MAX_VALUE)));

		pack();
	}// </editor-fold>

	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

		VerantwortlicherModul modul = new VerantwortlicherModul();
		VerantwortlicherEntity entity = new VerantwortlicherEntity();
		if (!jTextField1.equals("")) {
			entity.setName(jTextField1.getText().trim());
		}
		if (!jTextField2.equals("")) {
			int intZahl = Integer.parseInt(jTextField2.getText().trim());
			entity.setSortierung(intZahl);
		}
		if (!jCheckBox1.equals(true)) {
			entity.setAkiv(true);
		}

		else if (!jCheckBox1.equals(false)) {
			entity.setAkiv(false);
		}
		delegate.speichernVerantwortlicher(entity);
		modul.setzeDaten();
	}

	private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
		setVisible(false);
	}

	/**
	 * @param args
	 *            the command line arguments
	 */
	public static void main(String args[]) {
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				new AddVerantwortlicher().setVisible(true);
			}
		});
	}

	// Variables declaration - do not modify
	private javax.swing.JLabel _tfxName;
	private javax.swing.JLabel _tfxaktiv;
	private javax.swing.JLabel _tfxsotiernummer;
	private javax.swing.JButton jButton1;
	private javax.swing.JButton jButton2;
	private javax.swing.JCheckBox jCheckBox1;
	private javax.swing.JTextField jTextField1;
	private javax.swing.JTextField jTextField2;
	// End of variables declaration

}
 

Foermchen82

Top Contributor
Füg doch einfach deinem Model den neuen Datensatz hinzu und feuere im Model das entsprechende Event, welches sagt, dass daten eingefügt wurden. Das heißt glaub ich: fireTableDataInserted() oder so ähnlich. Dann aktualisiert sich die Tabelle
 
Z

zentrumder

Gast
deswegen such ich grad eine andere Lösung aber wenn du mir ein beispiel geben könntest wie ich ein weiteren wert an die Tabelle hinzufügen kann dann bin ich dafür offen:)
 

Michael...

Top Contributor
Ich würde die Klasse zwar von DefaultTableModel erben lassen.
Aber in Deinem Fall musst Du quasi nur Dein Array data auf das neue Datenarray referenzieren lassen und anschliessend fireTableChanged aufrufen.
 

Michael...

Top Contributor
Hab mir Deinen Code mal genauer angeschaut.
Warum verwendest Du nicht gleich die Liste als Datenmodel anstatt sie in ein Array zu zwängen, das würde auch das Hinzufügen und Entfernen von Zeilen erleichtern.

Mit folgenden zwei Zeilen könnstest Du deine Tabelle leeren bzw. ja nach Array neu befüllen:
Java:
data = new Object[][] {};
fireTableDataChanged();
 
Z

zentrum

Gast
wie verwende ich bitte eine Liste als Datenmodell?!....

Tut mir leid, wegen so dummen fragen aber verstehe es eben besser an beispielen als wenn mir da son etlich langer Text hingelegt wird:(

^^
 

Foermchen82

Top Contributor
du legst dir ein eigenes TableModel an mit der Liste als Attribut.
In der SetValueAt und GetValueAt Methode kannst du dann ganz bequem per Row-Index auf das entsprechende Listenelement zugreifen.
Und wenn du Elemente Löschst oder Hinzufügst bekommst du bei ner Liste keiner IndexOutOfBounds
 

Michael...

Top Contributor
Hier mal ein rudimentäres Datenmodel mit einer Liste:
Java:
public class PersonenTableModel extends AbstractTableModel {
	private ArrayList<Person> list = new ArrayList<Person>();

	public void setData(ArrayList<Person> list) {
		this.list = list;
		fireTableDataChanged();
	}

	public String getColumnName(int pos) {
		switch (pos) {
		case 0:
			return "Name";
		case 1:
			return "Vorname";
		default:
			return null;
		}
	}

	public int getRowCount() {
		return list.size();
	}

	public int getColumnCount() {
		return 2;
	}

	public boolean isCellEditable(int row, int column) {
		return true;
	}

	public void setValueAt(Object value, int row, int column) {
		Person person = list.get(row);
		switch (column) {
		case 0:
			person.setName(value.toString());
			break;
		case 1:
			person.setVorname(value.toString());
			break;
		default:
			return;
		}
		fireTableCellUpdated(row, column);
	}

	public Object getValueAt(int row, int column) {
		Person person = list.get(row);
		switch (column) {
		case 0:
			return person.getName();
		case 1:
			return person.getVorname();
		default:
			return null;
		}
	}
}
Die Klasse Person könnte dann so aussehen:
Java:
	public class Person {
		private String name, vorname;

		public Person(String name, String vorname) {
			this.name = name;
			this.vorname = vorname;
		}

		public String getName() {
			return this.name;
		}

		public String getVorname() {
			return this.vorname;
		}

		public void setName(String name) {
			this.name = name;
		}

		public void setVorname(String name) {
			this.vorname = vorname;
		}
	}
 
Z

zentrum

Gast
also hab das jetzt versucht so umzusetzten wie beschrieben, die bezüglich hätte ich noch eine Frage:

bei
Java:
public void setValueAt(Object value, int row, int column) {
	VerantwortlicherEntity person = list.get(row);
    switch (column) {
    case 0:
        person.setName(value.toString());
        break;
    case 1:
    	person.setAkiv((boolean) value);
        break;
    case 2:
    	person.setSortierung((Integer)value);
    default:
        return;
    }
    fireTableCellUpdated(row, column);
}
}
natürlich ist Case 1 falsch, wisst ihr zufällig wie ich das problem löse


sonst sieht meine Klasse so aus:

Java:
public class VerantwortlicherTableModel extends AbstractTableModel {
	Object[][] objects = new Object[1][3];
	private StammdatenDelegate delegate = StammdatenDelegate.getInstance();
	ArrayList<VerantwortlicherEntity> list = new ArrayList<VerantwortlicherEntity>();

	public void holeDaten() {
		list = (ArrayList<VerantwortlicherEntity>) delegate
				.suchenallerVerantwortlicher();
		setData(list);
	}
	
	public void setData(ArrayList<VerantwortlicherEntity> list) {
	    this.list = list;
	    fireTableDataChanged();
	}

	int COL_POS_NAME = 0;
	int COL_POS_AKTIV = 1;
	int COL_POS_SORT = 2;

	int row = 0;

	
	public void speicherDaten() {
		delegate.speichernVielerVerantwortlicher(list);
	
	}

	
	public void deleteRow(int position) {
		
	}

public String getColumnName(int pos) {
    switch (pos) {
    case 0:
        return "Name";
    case 1:
        return "Sotiernummer";
    case 2:
    	return "aktiv";
    default:
        return null;
    }
}

public int getRowCount() {
    return list.size();
}

public int getColumnCount() {
    return 3;
}

public boolean isCellEditable(int row, int column) {
    return true;
}

public void setValueAt(Object value, int row, int column) {
	VerantwortlicherEntity person = list.get(row);
    switch (column) {
    case 0:
        person.setName(value.toString());
        break;
    case 1:
    	person.setAkiv((boolean) value);
        break;
    case 2:
    	person.setSortierung((Integer)value);
    default:
        return;
    }
    fireTableCellUpdated(row, column);
}

public Object getValueAt(int row, int column) {
	VerantwortlicherEntity person = list.get(row);
    switch (column) {
    case 0:
        return person.getName();
    case 1:
        return person.getAkiv();
    case 2:
    	return person.getSortierung();
    default:
        return null;
    }
}
}
 
Z

zentrum

Gast
noch eine frage wenn ich ein neues Entity hinzufügen geht dies so, dass klappt auch
Java:
	public void anlegenDatensatz(){
		VerantwortlicherEntity entity = new VerantwortlicherEntity();
		entity.setName("");
		entity.setAkiv(false);
		entity.setSortierung(0);
		list.add(entity);
		fireTableDataChanged();
	}

aber kann ich ihm auch sagen das ich es an eine gewisse Stelle will also z.b. ich lese aus mit getselecetedRow() und das -1 ?!
 
Z

zentrum

Gast
also das Problem mit dem an eine gewisse stelle einfügen habe ich gelöst:)

jetzt nur noch dies mit dem case fall :) bitte um hilfe
 
Z

zentrum

Gast
wenn ich dies so probiere sagt er mir :
Java:
case 1:
			person.setAkiv((boolean) value);
			break;

Cannot Cast from object to boolean...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
G Objekte in und aus einer JTable laden AWT, Swing, JavaFX & SWT 5
D Swing JTable in Datei speichern und laden AWT, Swing, JavaFX & SWT 3
R JTable nur sichtbaren Bereich laden AWT, Swing, JavaFX & SWT 12
R Swing JTable, werte speichern und laden AWT, Swing, JavaFX & SWT 25
A JTable neu laden AWT, Swing, JavaFX & SWT 2
P jTable mit Model lässt sich nicht neu laden AWT, Swing, JavaFX & SWT 5
V Daten ins JTable laden bei Start der GUI AWT, Swing, JavaFX & SWT 6
E CSV datei in jtable laden AWT, Swing, JavaFX & SWT 4
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
D Swing JTable Renderer Grafikfehler AWT, Swing, JavaFX & SWT 0
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
K Swing JTable updaten AWT, Swing, JavaFX & SWT 9
thet1983 Swing MySQL >> JTable AWT, Swing, JavaFX & SWT 5
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben