PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JTable - Spalten verschieben und besonderer Header



Sym
28-07-2006, 10:30
Hallo,

vielleicht könnt ihr mir helfen.

1. Ich habe eine JTable und ein eigenes Model. Spalten können verschoben werden. Wunderbar. Allerdings geben die Spaltenpositionen Prioritäten an, sprich, verschiebe ich die Spalte, verändere ich die Priorität. Nur leider komme ich nicht an die Spaltenposition. Wie setzt man das um? Am liebsten wäre mir eine Variante im TableModel.

2. Ich habe einen Header in der Table. Allerdings möchte ich bei ein paar Spaltenheadern noch einen besonderen Header überwegsetzen. Weiß jemand, wie man das lösen könnte?

Sym
30-07-2006, 07:20
Hmm, hat keiner eine Ahnung/Idee?

OpOs
30-07-2006, 10:47
hallo

1. das TableColumnModel bietet dir die beiden funktionen getColumnIndex() und getColumn(). ansonsten kannst du auch noch 'nen TableColumnModelListener dranhaengen, der dann den event columnMoved abfaengt. dein TableColumnModel kannst du dir direkt von der jtable holen

2.versteh ich das richtig, dass das so aussehen soll?
+-------+-------+
| A | B |
+---+---+---+---+
| 1 | 2 | 3 | 4 |
+---+---+---+---+
| | | | |
sollen die spalten 1,2,3... nur innerhalb der A,B...-spalten bzw nur die A,B spalten untereinander verschiebbar sein, oder willst du die 1,2,3...-spalten frei bewegen? im 1. fall, kannst du einfach 'ne jtable mit 1 zeile nehmen und als darstellungskomponente jeweils 'ne jtable angeben, im 2. fall wirst du dir wohl deinen eigenen JTableHeader implementieren muessen...

Sym
31-07-2006, 10:56
Ok, Teil 1 ist klar. Bei Teil 2 ist mir nicht klar, wie ich eine "Darstellungskomponente" setze, sprich, wie füge ich eine JTable in eine JTable ein?

OpOs
31-07-2006, 11:48
das zauberwort heisst "TableCellRenderer"...

du erstellst eine JTable mit deinem ueberheader und genau 1. zeile. dann ueberschreibst du die renderer-komponente (default sind JLables) und gibst eine JTable zurueck. so kannst du JTables beliebig ineinanderschachteln... (theoretisch, hab's noch nich ausprobiert...)

Sym
31-07-2006, 12:47
Ok, danke.

Ist wohl doch mehr Arbeit, als gedacht. So einfach ist es nämlich nicht, die Tabellen zu verschachteln. ;)

Dieser Link (http://www-st.inf.tu-dresden.de/SalesPoint/v3.1/faq/SwingExamples/html/jtable.html) hilft.