JTable Spalte unsichtbar machen

Status
Nicht offen für weitere Antworten.

Doomrunner

Mitglied
Hi,

ich möchte gerne eine Spalte des JTables unsichtbar machen. Mit column.setMaxWidth(0); geht das aber zum Beispiel nicht. In der Doku habe ich auch keine entsprechende Methode dafür gefunden.

Geht das überhaupt?

thx
 

Mick

Bekanntes Mitglied
Am elegantesten geht sowas mit Deinem eigenen TableModel, wo Du die Methode getValueAt() überschreibst.
Such mal hier im Forum, da gibt es schon was zum TableModel.

Grüße,
Mick
 

Doomrunner

Mitglied
Habe ich schon gemacht:

Code:
public Object getValueAt(int rowIndex, int columnIndex) {
            if(columnIndex != 1) { return (Object)((Vector)data.elementAt(rowIndex)).elementAt(columnIndex); }
            else { return ""; }
        }

Aber so bekomme ich einfach nur ne leere Spalte ausgegeben. Bringt also leider nix.
 

Mick

Bekanntes Mitglied
Ich glaub, Du musst setValueAt auch überschreiben.
Willst Du die Column dauerhaft nicht anzeigen? Oder nur manchmal?

Wenn gar nicht, dann kannst Du das Feld ja ganz aus Deiner Table raushalten.

Grüße,
Mick
 

Doomrunner

Mitglied
Ich will sie dauerhaft unsichtbar lassen. In meiner Datenstruktur muss sie aber drin sein.

Der Grund ist, dass ich die Tabelle mit Inhalten einer SQL-Datenbank fülle. Da hat jede Zeile ja eine ID. Diese ID brauche ich dann, wenn eine Zeile der Tabelle angeklickt wird. Ansonsten soll sie aber verdeckt bleiben.
 

Doomrunner

Mitglied
Hier mal meine bisherige Tabellenstruktur:

Code:
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.util.*;

class tabellenstruktur extends AbstractTableModel {                                      
        private Vector columnNames = new Vector();
        private Vector data = new Vector();
        private Vector ids = new Vector();
        
        public void addColumn(Object Spalte) {
            columnNames.addElement(Spalte);
        }
        
        public void addElement(Vector Spalten, int id) {
            data.addElement(Spalten);
            ids.addElement(""+id);
        }
        
        public int getColumnCount() {
            return columnNames.size();
        }
        
        public String getColumnName(int column) {
            return (String)columnNames.elementAt(column);
        }
        
        public int getRowCount() {
            return data.size();
        }
        
        public Object getValueAt(int rowIndex, int columnIndex) {
            return (Object)((Vector)data.elementAt(rowIndex)).elementAt(columnIndex);
        }
        
        public int getidAt(int rowIndex) {
            return Integer.parseInt((String)ids.elementAt(rowIndex));
        }
}
 

Mick

Bekanntes Mitglied
Ahhh, immer diese doppelten Vectoren. Wenn bei Dir eine Zeile einem Datensatz in der Datenbank entspricht, warum machst Du dann nicht eine Klasse Datensatz mit den Feldern Deiner Datenbank.
Und in Deinem TableModel benutzt Du einen Vector aus Datensätzen.

Das sieht dann in etwas so aus:

rowData ist der Vector aus Datensätzen, TableRow der Datensatz.



Code:
    /** return the value of specified cell */
    public Object getValueAt(int row, int col) {
        TableRow tableRow = (TableRow)rowData.elementAt(row);
        switch(col) {
            case 0: return tableRow.id;
            case 1: return tableRow.irgendwas;
            case 2: return tableRow.irgendwasanderes;

            default: {
                throw new IllegalArgumentException("bad column " + col);
            }
        }
    }

    /** set value at specified cell */
    public void setValueAt(Object value, int row, int column) {
        TableRow tableRow = (TableRow)rowData.elementAt(row);

        switch(column) {
            // ID
            case 0: tableRow.id = (String) value; break;
            case 1: tableRow.irgendwas = (String) value; break;
            case 2: tableRow.irgendwasanderes = (String) value; break;
        }

        // notify table that rows are updated
        this.fireTableRowsUpdated(row, row);
    }

Nur dass in Deinem Fall eben keine Column mit der ID angezeigt wird.

Immer ein bißchen mehr objektorientiert denken, dann wird auch der Code übersichtlicher und sprechender.


Grüße,
Mick
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
J JTable filtern nach einer Spalte AWT, Swing, JavaFX & SWT 2
G JTable als fixierte Spalte in Scrollpane scrollt nicht mit... AWT, Swing, JavaFX & SWT 1
Bartertown JTable - Verschiedene Komponenten in einer Spalte unterbringen AWT, Swing, JavaFX & SWT 3
S Swing JTable zusätzliche Spalte mit einer Checkbox einfügen AWT, Swing, JavaFX & SWT 7
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
S JTable Spalte "normale" Breite? AWT, Swing, JavaFX & SWT 5
F JTable soll mit Buttons befüllt werden, aber nicht in jede Zelle einer Spalte AWT, Swing, JavaFX & SWT 3
GianaSisters Swing ComboBox im jTable (in bestimmter Zelle nicht über die ganze Spalte) AWT, Swing, JavaFX & SWT 4
N Swing JTable: Objekttyp einer Spalte nachträglich ändern AWT, Swing, JavaFX & SWT 6
A Swing Spalte in JTable ausblenden AWT, Swing, JavaFX & SWT 4
T JTable mit Renderer sortiert die gerenderte Spalte nicht richtig AWT, Swing, JavaFX & SWT 2
E Spalte in JTable löschen AWT, Swing, JavaFX & SWT 4
B JTable, Spalte nicht verschiebbar AWT, Swing, JavaFX & SWT 2
R JTable immer nur die letzte Spalte markiert.... AWT, Swing, JavaFX & SWT 4
S Swing JTable: in erster Spalte Image darstellen AWT, Swing, JavaFX & SWT 30
T JTable - Einzelne Spalte nicht sortieren? AWT, Swing, JavaFX & SWT 2
V JTable: Sortierung einer Spalte zum Programmstart? AWT, Swing, JavaFX & SWT 3
G JTable warten bis Spalte verschoben wurde AWT, Swing, JavaFX & SWT 2
R JTable: Zellen einer Spalte unterschiedlich befüllen AWT, Swing, JavaFX & SWT 2
G JTable in Spalte von anderer JTable nicht editierbar AWT, Swing, JavaFX & SWT 7
G Alle Werte einer Spalte in JTable zusammenrechnen AWT, Swing, JavaFX & SWT 2
J in JTable ganze Spalte editierbar machen AWT, Swing, JavaFX & SWT 17
J JTable ganze Spalte sperren AWT, Swing, JavaFX & SWT 6
C Spalte aus JTable löschen AWT, Swing, JavaFX & SWT 8
mabe83 Kontinuierlich verbleibende Zeit in JTable Spalte anzeigen AWT, Swing, JavaFX & SWT 2
P JTable:Sortierung nach der Zeit/Spalte mit Calendar-Objekten AWT, Swing, JavaFX & SWT 2
D JTable 1. Spalte fixieren AWT, Swing, JavaFX & SWT 3
E JTable nur die erste Spalte auswählbar? AWT, Swing, JavaFX & SWT 4
B JTable - Wechsel der Spalte bei TAB, RETURN oder Maus AWT, Swing, JavaFX & SWT 5
S Hintergrundfarbe in einer Spalte der JTable verändern AWT, Swing, JavaFX & SWT 3
A JTable: Zeit in Spalte ausgeben AWT, Swing, JavaFX & SWT 2
F JTable Spalte sortieren mit lauter JComboboxen ? AWT, Swing, JavaFX & SWT 15
S Checkbox oder String in JTable-Spalte AWT, Swing, JavaFX & SWT 4
U JTable Position der Spalte abfragen AWT, Swing, JavaFX & SWT 7
E JTable; Zeilen der ersten Spalte definieren? AWT, Swing, JavaFX & SWT 4
H JTable Text aus mehreren Zellen in einer Spalte kopieren? AWT, Swing, JavaFX & SWT 3
L Falsche Zeile gelöscht nach Spalte Sortierung in JTable AWT, Swing, JavaFX & SWT 2
L JTable (DefaultTableModel) nach Spalte sortieren-TableSorter AWT, Swing, JavaFX & SWT 2
S JTable Spalte hinzufügen AWT, Swing, JavaFX & SWT 3
J Spalte in JTable aus- und wieder einblenden AWT, Swing, JavaFX & SWT 10
Student JTable - eine fixe Spalte, der Rest scrollbar AWT, Swing, JavaFX & SWT 18
V JTable mit mehreren Componenten in einer Spalte ? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben