TableCellRenderer

Status
Nicht offen für weitere Antworten.

JamesDean

Mitglied
Hallo ich habe eine Tabelle mit einem modell welches mir ein resultset von einer datenbank holt. soweit sogut die tabelle zeigt mit alle spalten des resultsets an. gibt es die mögligkeit mittels cellrenderer spalten ganz auszublenden und wenn wie geht das ?

mfg
 

André Uhres

Top Contributor
Code:
package tableDemo;
/*
 * SpaltenAusblenden2.java
 */
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class SpaltenAusblenden2 extends JFrame {
    private JTable table = new JTable();
    private  JToolBar toolBar = new JToolBar();
    private   DefaultTableModel model;
    /** Dies sind die Daten der Tabelle*/
    private  Vector daten = new Vector();
    /** Spaltennamen */
    private Vector spaltenNamen = new Vector();{
        spaltenNamen.addElement("0");
        spaltenNamen.addElement("1");
        spaltenNamen.addElement("2");
        spaltenNamen.addElement("3");
    }
    public SpaltenAusblenden2() {
        setTitle("Spalten ausblenden");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        model = new DefaultTableModel(daten, spaltenNamen);
        table.setModel(model);
        getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
        for( int i=0; i<4; i++ ){
            final JCheckBox spalteX = new JCheckBox("Spalte "+i);
            spalteX.setSelected(true);
            final int splt = i;
            spalteX.addActionListener(new ActionListener() {
                public void actionPerformed(final ActionEvent evt) {
                    if(spalteX.isSelected()){
                        table.getColumnModel().getColumn(splt).setMinWidth(15);
                        table.getColumnModel().getColumn(splt).setMaxWidth(2147483647);
                        table.getColumnModel().getColumn(splt).setPreferredWidth(100);
                    }else{
                        table.getColumnModel().getColumn(splt).setMinWidth(0);
                        table.getColumnModel().getColumn(splt).setMaxWidth(0);
                    }
                }
            });
            toolBar.add(spalteX);
        }
        getContentPane().add(toolBar, BorderLayout.NORTH);
        setSize(400,300);
        setLocationRelativeTo(null);
        model.addRow(new Object[]{null,null,null,null});
        model.setValueAt("test0",0,0);
        model.setValueAt("test1",0,1);
        model.setValueAt("test2",0,2);
        model.setValueAt("test3",0,3);
    }
    public static void main(final String args[]) {new SpaltenAusblenden2().setVisible(true);}
}
EDIT 08.06.2007: Ich habe das jetzt so abgeändert:
es wird nicht mehr über das Model ausgeblendet, sondern mit TableColunm#setMinWidth(0) und TableColunm#setMaxWidth(0).
Die usprüngliche Version ist noch hier zu sehen: http://forum.java.sun.com/thread.jspa?forumID=57&threadID=687798
 

JamesDean

Mitglied
Besten Dank für die schnelle Antwort.

und mit dem renderer kann man es nicht ausblenden ? ich möchte es ungern über das modell ändern. deswegen die frage ob es auch mit dem renderer geht die spaltenbreite auf null setzen oder so etwas ähnliches.

mfg
und schönes wochenende
 

Mag1c

Top Contributor
Hi,

nuja, das wäre doch mal ein Versuch wert:

Code:
table.getColumnModel().getColumn(3).setMaxWidth(0);

Gruß
Mag1c
 

JamesDean

Mitglied
danke,

werd es morgen mal ausprobieren muss jetzt los bierchen trinken ;-) also grüße an alle fachmänner...
 

André Uhres

Top Contributor
Ich glaube nicht, dass das Problem über den Renderer gelöst werden kann.
Aber es gibt noch die Möglichkeit über das Spaltenmodell "tabelle.getColumnModel()" eine Spalte
zu entfernen und wieder hinzuzufügen. Zum Beispiel:
Code:
...
                    TableColumn entfernt = spaltenModell.getColumn(2);
                    spaltenModell.removeColumn(entfernt);
...
                    spaltenModell.addColumn(entfernt);
                    spaltenModell.moveColumn(spaltenModell.getColumnCount()-1, 2);
                    entfernt = null;
...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B TableCellRenderer rendert Integer/Boolean Felder nicht AWT, Swing, JavaFX & SWT 4
M Swing TableCellRenderer elegant anpassen AWT, Swing, JavaFX & SWT 3
D Swing Mit TableCellRenderer einzelne Zellen markieren AWT, Swing, JavaFX & SWT 3
O Swing TableCellRenderer und JComboBox AWT, Swing, JavaFX & SWT 4
C Swing TableCellRenderer: setText() vs. setIcon() AWT, Swing, JavaFX & SWT 5
E Swing TableCellRenderer für alle Splaten setzen?! AWT, Swing, JavaFX & SWT 3
M gleicher TableCellRenderer für mehrere unterschiedliche Tabellen AWT, Swing, JavaFX & SWT 5
A Swing TableCellRenderer ändert die Zeilenfarbe zu spät AWT, Swing, JavaFX & SWT 3
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
U TableCellRenderer: Problem mit Timestamp/Date AWT, Swing, JavaFX & SWT 2
U TableCellRenderer UND prepareRenderer AWT, Swing, JavaFX & SWT 12
C Swing TableCellRenderer AWT, Swing, JavaFX & SWT 10
U TableCellRenderer und setBackground AWT, Swing, JavaFX & SWT 20
H Swing TableCellRenderer für verschiedene Spalten AWT, Swing, JavaFX & SWT 11
C Swing Problem mit TableCellRenderer in Verbindung mit TableRowSorter AWT, Swing, JavaFX & SWT 2
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 3
R JTable - TableCellRenderer - BufferedImage AWT, Swing, JavaFX & SWT 9
S TableCellRenderer: JLabel-Background in JPanel AWT, Swing, JavaFX & SWT 7
R JTable mit TableCellRenderer AWT, Swing, JavaFX & SWT 10
R JTable - TableCellRenderer AWT, Swing, JavaFX & SWT 2
D TableCellRenderer rendert einfach nicht! AWT, Swing, JavaFX & SWT 4
S TableCellRenderer setForeground AWT, Swing, JavaFX & SWT 5
I Problem mit TableCellRenderer AWT, Swing, JavaFX & SWT 3
K TableCellRenderer Problem AWT, Swing, JavaFX & SWT 3
F TableCellRenderer wie umsetzen? AWT, Swing, JavaFX & SWT 2
D JTable TableCellRenderer AWT, Swing, JavaFX & SWT 2
J JTable und TableCellRenderer AWT, Swing, JavaFX & SWT 2
G TableCellRenderer Background variiert darstellen AWT, Swing, JavaFX & SWT 3
P TableCellRenderer mit einem TableRowSorter AWT, Swing, JavaFX & SWT 4
D TableCellRenderer PRoblem AWT, Swing, JavaFX & SWT 3
G TableCellRenderer soll ganze ausgewählte Zeile markieren AWT, Swing, JavaFX & SWT 2
S TableCellRenderer deaktivieren AWT, Swing, JavaFX & SWT 13
S JTree mal anders (TableCellRenderer) AWT, Swing, JavaFX & SWT 6
S TableCellRenderer, Performance AWT, Swing, JavaFX & SWT 9
M Objekt in TableCellRenderer packen, warum ein Fehler? AWT, Swing, JavaFX & SWT 2
T TableCellRenderer Problem AWT, Swing, JavaFX & SWT 6
B TableCellRenderer + JComboBoxen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben