Zum Inhalt springen

JTable -> row hinzufügen


bigredeyes

Empfohlene Beiträge

Hi

Mit welchem Model arbeitest Du ?

Das Model des JTables hälst alle Daten. Demnach musst Du diesem Model und nicht dem JTable die neuen Daten übergeben.

Wenn dieses Model die Methode dafür nicht hat so schreibe Dir ein eigenes. Ist recht einfach, Du erbst einfach von dem AbstractTableModel und implementierst die erforderlichen Methoden

Daten hälste am einfachsten in nem Vector oder so und hier kannste nun auch die Methode addRow (Daten) einfügen

Gruß Erbeere

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Erbeere

Hi

Mit welchem Model arbeitest Du ?

Das Model des JTables hälst alle Daten. Demnach musst Du diesem Model und nicht dem JTable die neuen Daten übergeben.

Wenn dieses Model die Methode dafür nicht hat so schreibe Dir ein eigenes. Ist recht einfach, Du erbst einfach von dem AbstractTableModel und implementierst die erforderlichen Methoden

Daten hälste am einfachsten in nem Vector oder so und hier kannste nun auch die Methode addRow (Daten) einfügen

Gruß Erbeere

Könnte mir vielleicht irgendwer mal einen Beispielcode geben? Ich habe bisher immer nur ein neues JTable erstellt, wenn sich die Daten geändert haben oder wenn neue hinzugekommen sind... Bitte, bitte!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nur so zum Beispiel.

zuerst das:

------------------

m_dataModel = new MyTableModel(m_RowCount , m_ColCount);

m_table=new JTable(m_dataModel);

dann:

------------------

package Cindypkg;

import java.util.Vector;

import javax.swing.table.AbstractTableModel;

import java.util.ArrayList;

import java.lang.Throwable;

import javax.swing.event.TableModelEvent;

import javax.swing.JCheckBox;

public class MyTableModel extends AbstractTableModel

{

public MyTableModel(final int rowCount, final int columnCount)

{

m_rowCount =rowCount;

m_columnCount=columnCount;

/**

* Zellen initialisieren

*/

mv_cells=new Vector(rowCount);

for(int row=0;row<m_rowCount ;row++)

{

Vector tmpV=new Vector(columnCount);

Boolean b =new Boolean(false);

tmpV.add(0,B);

for(int col=1;col<m_columnCount;col++)

{

tmpV.add(col,"");

}

mv_cells.add(row,tmpV);

}

m_columnName=new String[m_columnCount];

}

public void addRow()

{

Vector tmpRow=new Vector();

Boolean b =new Boolean(false);

tmpRow.add(0,B);

for(int i=1;i<m_columnCount;i++)

{

tmpRow.add(i,"");

}

m_rowCount++;

mv_cells.setSize(m_rowCount );

mv_cells.add(m_rowCount-1 ,tmpRow);

/*this.fireTableChanged(new TableModelEvent(this ,m_rowCount-1 ,

m_rowCount , ALL_COLUMNS, INSERT));

*/

}

public int getColumnCount()

{

return m_columnCount;

}

public int getRowCount()

{

return m_rowCount ;

}

public Object getValueAt(int row, int col)

{

if(row<0 || row>mv_cells.size() ||

col<0 || col>((Vector)mv_cells.get(row)).size())

{

//error

return "";

}

else

{

return ((Vector)mv_cells.get(row)).elementAt(col);

}

}

public String getColumnName(int columnIndex)

{

return m_columnName[columnIndex];

}

public boolean isCellEditable(int rowIndex,

int columnIndex)

{

return true;

}

public void setValueAt(Object aValue, int rowIndex,

int columnIndex)

{

if(rowIndex <0 || columnIndex <0)

{

//error

}

else

{

/**

* setting value

*/

((Vector)mv_cells.get(rowIndex)).setElementAt(aValue ,columnIndex );

}

}

public void setColumnName(String name,int columnIndex)

{

m_columnName[columnIndex]=name;

}

public Class getColumnClass(int columnIndex)

{

if(columnIndex == 0)

{

return Boolean.class;

}

return String.class;

}

public void conclude()

{

if (true)

{

//closeConnection();

}

m_concluded = true;

}

/**

* Members

*/

private String[] m_columnName;

private Vector mv_cells;

private int m_columnCount;

private int m_rowCount;

private boolean m_concluded = false;

private String m_tableName = null;

private String[] m_columnTitles ;

private String m_url = null;

private String m_driverName = null;

private String m_user = null;

private String m_passwd = null;

private boolean m_doDbUpdateImmediately = true;

private boolean m_forceGivenTable = false;

private boolean m_readOnly = false;

private boolean m_tableChanged = false;

private XMLCls m_XMLObj;

private String m_pfad;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...