![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.616
|
Also ... meine erste Frage in diesem Forum .. *g*
Ich stehe gerade so dermaßen auf dem Schlauch. Das ist fast nicht mehr schön. Zu wenig geschlafen, zu viel Stress .. keine Ahnung .. Folgendes Problem: Ich habe folgendes Interface Code:
public interface TableData
{
public static final Object[][] DATA = {
{"1", "2", "3", "4"},
{"5", "6", "7", "8"}
};
public static final String[] COLHEADS = {
"Spalte1", "Spalte2", "Spalte3", "Spalte4"
};
}
Ich möchte dies nun in einer Tabelle darstellen. Alles gar kein Problem, sofern ich einfach nur setValueAt() der Klasse JTable verwende. Okay. Ich möchte nun aber folgende Darstellung haben: Anstatt Code:
Spalte1 Spalte2 Spalte3 Spalte4 1 2 3 4 5 6 7 8 Code:
Spalte1 1 5 Spalte2 2 6 spalte3 3 7 Spalte4 4 8 Aber ich komme gar nicht bis zur Tabelle. Da ist irgendwie eine logische Denkblockade. Gehen wir mal davon aus, dass ich oben dargestelltes zweidimensionales Array habe. Ich "murkse" hier derzeit mit diesem Code rum .. der ist grottenschlecht, das weiß ich .. aber so etwas wie heute ist mir auch noch nicht passiert. Ich raff es einfach nicht *g* Code:
public class TableDemo implements TableData
{
public static void main( String[] args )
{
// Neues 2-dim. Array anlegen.
// Zeilen und Spalten werden durch das DATA-Array aus dem Interface "TableData"
// bestimmt
Object[][] neu = new Object[DATA[0].length][DATA.length+1];
int spalten = neu.length;
int zeilen = neu[0].length;
// Testausgabe
System.out.println("Spalten" + spalten );
System.out.println("Zeilen" + zeilen);
for( int i = 0; i < spalten; i++ )
{
// Start: Testausgabe
System.out.print( i + " | ");
// Zuweisung
neu[i][0] = COLHEADS[i];
for( int j = 1; j < zeilen-1; j++ )
{
// Fortführung: Testausgabe
System.out.print( "i,j" + i + "," + j + " " );
// Zuweisung
neu[i][j] = DATA[i][j];
}
// Ende: Testausgabe
System.out.println("");
}
// Array soll ausgegeben werden ... erst mal nicht so wichtig, da komme ich nämlich gar
// nicht hin
for( int i = 0; i < neu.length; i++ )
{
for( int j = 0; j < neu[0].length; j++ )
{
System.out.print( neu[i][j] + " ");
}
System.out.println("");
}
}
}
Code:
Spalten4 Zeilen3 0 | i,j0,1 1 | i,j1,1 java.lang.ArrayIndexOutOfBoundsException: 2 at [..].TableDemo.main(TableDemo.java:51) [..] Exception in thread "main" 2 | i,j2,1 Kann mir da mal irgendwer weiterhelfen? Ich verzweifel hier noch ... Ich danke Euch. Grüße Ben. |
|
|
|
|
|
Nach oben #2 |
|
Gast
Beiträge: n/a
|
Also, DATA ist ein 3er Array mit Unterarrays der Länge 5.
DATA.length ist also 3, DATA[0].length ist also 5. Jetzt weiß ich nicht was Du machen willst. Soll jetzt neu ein 4er Array mit der Länge 5 sein oder ein 3er Array der Länge 6? Du hast höchstwahrscheinlich beim Anlegen die Dimensionen vertauscht weil Splaten stehen bei Dir in der ersten Klammer und Zeilen in der zweiten, während beim Anlegen legst Du erst die Zeilen und dann die Spalten an?!? Anschließend läßt Du j von 1 bis n-1 laufen, also wird die Zeile 0 von DATA niemals ausgelesen.Zudem läuft der Zähler nur bis n-1 statt bis n. Das sind die Fehler die ich auf Anhieb entdecke. Viel Erfolg beim weitersuchen! |
|
|
|
Nach oben #3 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.616
|
hm. ja. ich geh auch gleich nach hause .. das wird hier ja heute nix mehr ..
deine aussagen kann ich nachvollziehen. was meinst du aber mit 4er-array (etc.)? neu sollte soviele zeilen haben, wie DATA spalten und so viele spalten, wie DATA zeilen +1. das "+1" kommt durch die spaltennamen, die ja noch hinzukommen müssen. verstehst du, was ich machen will? |
|
|
|
|
|
Nach oben #4 |
|
Gast
Beiträge: n/a
|
in dem Fall wirst Du zum transponieren i und j bei der Zuweisung vertauschen müssen (in etwa so
java Code:
Ausserdem hast Du einen Spaltentext zu wenig deklariert. Geändert von Ben (31.12.2005 um 15:34 Uhr). |
|
|
|
Nach oben #5 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.616
|
sorry. das mit dem spaltentext ist schon richtig. habe es oben editiert.
ic hwerde das gleich mal testen. wei o wei .. ich sollte heute abend früh ins bett gehen .. danke dir auf jeden fall. werde mich nochmals melden. |
|
|
|
|
|
Nach oben #6 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.616
|
mensch mensch mensch.
gerade nochmal hingesetzt und .. sorry .. ich bin total am ende ^^ ich hatte das problem chon vor wochen gelöst, aber nur den code nicht wiedergefunden und war nicht in der lage es nochmals zu rekonstruieren. aber nun gut ... jetzt hab ich ihn doch gefunden: Aufrufende Klasse: "TableDemo" Java Code:
Klasse: "TransposedTable" Java Code:
eventuell hilft es ja irgendwem weiter. grüße ben. edit: btw: der java-highlighter ist aber auch verbuggt .. |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Zend Framework - Probleme mit Zend_Controller_RewriteRouter bzw. Form der URLs | Ben | PEAR, PECL und Frameworks | 12 | 24.12.2006 17:17 |
| Suche Hilfe: Angebot und Nachfrage berechnen | ljungi | Plauderecke | 6 | 17.12.2006 22:10 |
| Array in Bezug auf ein anderes sortieren... | code5 | PHP-Programmierung | 2 | 15.05.2006 15:56 |
| Array: Undefined Index | Skinwalker | PHP-Programmierung | 10 | 29.03.2006 14:23 |
| Ein Array in ein Array schreiben | bacarni | PHP-Programmierung | 2 | 07.02.2006 14:24 |