editiert, aber immer noch nicht am ziel .. :-(
----------
Hi,
also ich bin anscheinend schon im Wochenende. :roll:
Ich habe eine Tabelle, die ich folgendermaßen mit Inhalt fülle.
Die beiden Arrays werden dann an im Konstruktor übergeben:
So. Ich will jetzt die Tabelle transponieren.
Dazu habe ich folgende Methode geschrieben bzw. versucht zu schreiben:
Wenn ich Testausgabe nun laufen lasse erhalte ich folgende Ausgabe:
und folgende Fehlermeldung:
Ich erhalte jetzt einen Fehler in Zeile 79:
Das 'j' ist falsch. Aber ich weiß nicht, wie ich das machen kann, dass in der ersten Spalte eben die ehemaligen Spaltennamen stehen.
ich habe nun noch eine kleine Änderung hinzugefügt.
Die Abbruchbedigungen innerhalb der beiden verschachtelten FOR-Schleifen haben sich geändert, wobei die innere nicht sicher ist .. also anders ausgedrückt: Fehlerpotential ist vorhanden.
Eventuell hilft das hier noch zur Verdeutlichung:
Vorher:
Nachher:
Ich hoffe, dass das eventuell noch etwas weiterhilft.
Danke ..
----------
Hi,
also ich bin anscheinend schon im Wochenende. :roll:
Ich habe eine Tabelle, die ich folgendermaßen mit Inhalt fülle.
Code:
String[] columnNames = { "Spalte1",
"Spalte2",
"Spalte3" };
int spaltenzahl = columnNames.length;
int zeilenzahl = 5;
Object[][] rowData = new Object[zeilenzahl][spaltenzahl];
for (int i = 0; i < zeilenzahl; i++ )
{
for ( int j = 0; j < spaltenzahl; j++ )
{
rowData[i][j] = "Zelle " + i + "," + j;
}
}
Die beiden Arrays werden dann an im Konstruktor übergeben:
Code:
MyTableModel dataModel = new MyTableModel( columnNames, rowData );
So. Ich will jetzt die Tabelle transponieren.
Dazu habe ich folgende Methode geschrieben bzw. versucht zu schreiben:
Code:
public void transponiere()
{
int lengthRowData = m_dataModel.getRowCount();
int lengthColumnTop = m_dataModel.getColumnCount();
Object[] transpColumnTop = new Object[lengthRowData + 1];
Object[][] transpRowData = new Object[lengthColumnTop - 1][lengthRowData + 1];
transpColumnTop[0] = m_dataModel.getColumnName(0);
// transponiertes columnTop-Array füllen
for( int i = 0; i < lengthColumnTop; i++ )
{
transpColumnTop[i+1] = m_dataModel.getValueAt( i, 0 );
}
// transponiertes rowData-Array füllen
for (int i = 0; i < (lengthColumnTop-1); i++ )
{
System.out.println( "i:" + i + "\n --- ");
for ( int j = 0; j < lengthRowData; j++ )
{
System.out.println( "j:" + j + "\n --- ");
if( i == 0 )
{
System.out.println( "transpRowData[i][j]: (j,i)/("+j+","+i+")" + transpRowData[i][j]);
transpRowData[i][j] = m_dataModel.getColumnName( j );
}
else
{
System.out.println( "(j,i)/("+j+","+i+")" + m_dataModel.getValueAt( j, i ) );
transpRowData[i][j] = m_dataModel.getValueAt( j, i );
}
System.out.println( "---");
}
}
//*
// Testausgabe
for (int i = 0; i < lengthRowData; i++ )
{
for ( int j = 0; j < lengthColumnTop; j++ )
{
System.out.println(transpRowData[i][j] );
}
} //*/
}
Wenn ich Testausgabe nun laufen lasse erhalte ich folgende Ausgabe:
i:0
---
j:0
---
transpRowData[j]: (j,i)/(0,0)Spalte1
---
j:1
---
transpRowData[j]: (j,i)/(1,0)Spalte2
---
i:1
---
j:0
---
(j,i)/(0,1)Zelle 0,1
---
j:1
---
(j,i)/(1,1)Zelle 1,1
---
i:2
---
j:0
---
(j,i)/(0,2)Zelle 0,2
und folgende Fehlermeldung:
ArrayIndexOutOfBoundsException: 3
Ich erhalte jetzt einen Fehler in Zeile 79:
Code:
transpRowData[i][j] = m_dataModel.getColumnName( j );
Das 'j' ist falsch. Aber ich weiß nicht, wie ich das machen kann, dass in der ersten Spalte eben die ehemaligen Spaltennamen stehen.
ich habe nun noch eine kleine Änderung hinzugefügt.
Die Abbruchbedigungen innerhalb der beiden verschachtelten FOR-Schleifen haben sich geändert, wobei die innere nicht sicher ist .. also anders ausgedrückt: Fehlerpotential ist vorhanden.
Eventuell hilft das hier noch zur Verdeutlichung:
Vorher:
Code:
Spalte1 Spalte2 Spalte3
(0,0) (0,1) (0,2)
(1,0) (1,1) (1,2)
(2,0) (2,1) (2,2)
(3,0) (3,1) (3,2)
(4,0) (4,1) (4,2)
Nachher:
Code:
Spalte1 (0,0) (1,0) (2,0) (3,0) (4,0)
Spalte2 (0,1) (1,1) (2,1) (3,1) (4,1)
Spalte3 (0,2) (1,2) (2,2) (3,2) (4,2)
Ich hoffe, dass das eventuell noch etwas weiterhilft.
Danke ..