TableColumn (Java API): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
 
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Bild:JTable-Demo.gif|Ergebnis der kompilierten Quelldatei unter Windows XP]]
+
Eine '''{{JAPI|TableColumn}}''' stellt eine einzelne Spalte in einer [[JTable_(Java_API)|JTable]] dar. Eine ''TableColumn'' kann, muss aber nicht, spezielle Informationen zu der repräsentierten Spalte haben:
Eine ''TableColumn'' stellt eine einzelne Spalte in einer [[JTable_(Java_API)|JTable]] dar. Eine ''TableColumn'' kann, muss aber nicht, spezielle Informationen zu der repräsentierten Spalte haben:
 
 
* Den [[TableCellRenderer_(Java_API)|TableCellRenderer]] mit dem einzelne Zellen der Spalte gezeichnet werden.
 
* Den [[TableCellRenderer_(Java_API)|TableCellRenderer]] mit dem einzelne Zellen der Spalte gezeichnet werden.
 
* Den [[TableCellEditor_(Java_API)|TableCellEditor]] mit dem der Benutzer einzelne Zellen der Spalte verändern kann.
 
* Den [[TableCellEditor_(Java_API)|TableCellEditor]] mit dem der Benutzer einzelne Zellen der Spalte verändern kann.
Zeile 7: Zeile 6:
 
Die ''JTable'' erzeugt normalerweise ''TableColumns'' automatisch, sobald sie benötigt werden. Man kann dieses Verhalten aber mit der [[Methode_(Java)|Methode]]'' setAutoCreateColumnsFromModel'' abschalten, und jede Spalte selbst erzeugen. Das folgende Beispiel zeigt eine ''JTable'', deren ''TableModel'' drei Spalten vorgibt, die aber vier Spalten anzeigt.
 
Die ''JTable'' erzeugt normalerweise ''TableColumns'' automatisch, sobald sie benötigt werden. Man kann dieses Verhalten aber mit der [[Methode_(Java)|Methode]]'' setAutoCreateColumnsFromModel'' abschalten, und jede Spalte selbst erzeugen. Das folgende Beispiel zeigt eine ''JTable'', deren ''TableModel'' drei Spalten vorgibt, die aber vier Spalten anzeigt.
  
<code=java>package demo;
+
<syntaxhighlight lang="java">package demo;
  
 
import java.awt.BorderLayout;
 
import java.awt.BorderLayout;
Zeile 82: Zeile 81:
 
         return model;
 
         return model;
 
     }
 
     }
}</code=java>
+
}</syntaxhighlight>
 +
[[Bild:JTable-Demo.gif|Ergebnis der kompilierten Quelldatei unter Windows XP]]
 +
 
 +
{{Fragen stellen}}
 +
 
 +
=Weiterführende Artikel=
 +
*[[JTable (Java API) | JTable]]
 +
*[[TableModel (Java API) | TableModel]]
 +
*[[JTableHeader_(Java_API) | JTableHeader]]
 +
*[[TableColumnModel_(Java_API) | TableColumnModel]]
 +
*[[TableCellEditor_(Java_API)| TableCellEditor]]
 +
*[[TableCellRenderer_(Java_API)| TableCellRenderer]]
 +
*[[RowSorter_(Java_API)|RowSorter]]
 +
 
 +
*[[JTable (Tutorial) | JTable-Tutorial©]]
 +
 
 +
=Links=
 +
*[http://docs.oracle.com/javase/tutorial/uiswing/components/table.html Oracle Tutorial - How to Use Tables]
  
 
[[Kategorie:Java_API]]
 
[[Kategorie:Java_API]]
 
[[Kategorie:Swing]]
 
[[Kategorie:Swing]]
 +
[[Kategorie:JTable]]

Aktuelle Version vom 28. Mai 2019, 13:30 Uhr

Eine TableColumn stellt eine einzelne Spalte in einer JTable dar. Eine TableColumn kann, muss aber nicht, spezielle Informationen zu der repräsentierten Spalte haben:

  • Den TableCellRenderer mit dem einzelne Zellen der Spalte gezeichnet werden.
  • Den TableCellEditor mit dem der Benutzer einzelne Zellen der Spalte verändern kann.
  • Grössenangaben wie minimale/maximale und bevorzugte Grösse

Die JTable erzeugt normalerweise TableColumns automatisch, sobald sie benötigt werden. Man kann dieses Verhalten aber mit der Methode setAutoCreateColumnsFromModel abschalten, und jede Spalte selbst erzeugen. Das folgende Beispiel zeigt eine JTable, deren TableModel drei Spalten vorgibt, die aber vier Spalten anzeigt.

package demo;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.*;
 
public class JTableDemo{
    public static void main( String[] args ){
        // Die JTable initialisieren
        JTable table = new JTable();
        
        // Spalten sollen nicht automatisch erzeugt werden
        table.setAutoCreateColumnsFromModel( false );
        
        // Daten setzen
        table.setModel( createModel() );
        
        // Spalten bestimmen
        table.setColumnModel( createColumnModel() );
         
        // Tabelle anzeigen
        JFrame frame = new JFrame( "Demo" );
        frame.add( new JScrollPane( table ), BorderLayout.CENTER );
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.pack();
        frame.setVisible( true );
    }
    
    public static TableColumnModel createColumnModel(){
        // Ein Behälter für die Spalten erzeugen
        TableColumnModel columns = new DefaultTableColumnModel();
        
        // Die 4 Spalten erzeugen. Jede Spalte kann verschiedene
        // Eigenschaften haben.
        TableColumn c1 = new TableColumn( 0 );
        c1.setHeaderValue( "ColA" );
        c1.setPreferredWidth( 35 );
        c1.setMaxWidth( 50 );
        
        TableColumn c2 = new TableColumn( 1 );
        c2.setHeaderValue( "ColB" );
        c2.setPreferredWidth( 60 );
        c2.setMinWidth( 60 );
        c2.setMaxWidth( 120 );
        
        TableColumn c3 = new TableColumn( 2 );
        c3.setHeaderValue( "ColC" );
        c3.setPreferredWidth( 10 );
        c3.setResizable( false );
        
        // Die letzte Spalte zeigt stets dasselbe wie die 
        // zweitletzte Spalte, denn beide Spalten benutzen
        // dieselbe Model-Spalte als Datenquelle
        TableColumn c4 = new TableColumn( 2 );
        c4.setHeaderValue( "ColC-2" );
        c4.setPreferredWidth( 10 );
        
        columns.addColumn( c1 );
        columns.addColumn( c2 );
        columns.addColumn( c3 );
        columns.addColumn( c4 );
        
        return columns;
    }
    
    public static TableModel createModel(){
        DefaultTableModel model = new DefaultTableModel( 
                new Object[]{ "A", "B", "C" }, 0);
        
        model.addRow( new Object[]{ "C1", "C2", "C3" });
        return model;
    }
}

Ergebnis der kompilierten Quelldatei unter Windows XP


Fragen

Das Thema wurde nicht ausreichend behandelt? Du hast Fragen dazu und brauchst weitere Informationen? Lass Dir von uns helfen!

Wir helfen dir gerne!


Dir hat dieser Artikel gefallen? Oder Du hast Fehler entdeckt und möchtest zur Berichtigung beitragen? Prima! Schreibe einen Kommentar!

Du musst angemeldet sein, um einen Kommentar abzugeben.


Weiterführende Artikel

Links