automatische Anzahl der Spalten ermitteln -> geht nicht

Hein_nieH

Bekanntes Mitglied
Hallo,
ich habe eine JTabel erstellt, bei der nach klicken auf einen Spaltenkopf, das Erscheinungsbild des Spaltenkopfes sich ändern soll.
Hierzu benutze ich zwei Renderer, einen Renderer für das Standarderscheinungsbild und ein Renderer für das Erscheinungsbld nach Selektion einer Spalte.
Die hierzu erstellte Klasse funktioniert auch soweit.
Nur ein Problem besteht, was für mich nicht verständlich ist:
Im Kontruktor wird eine Referenz der Tabelle übergeben.
Wenn ich aus der Referenzvariable die Anzahl der Spalten ermitteln will erhalte ich als Anzahl "0".
Als Ersatzlösung habe ich die Anzahl der Spalten fest (hier columnCount=9) definiert.
Hat jemand eine Idee, warum die automatische Spaltenanzahl mit 0 quittiert wird?


Java:
    class TableHeaderMouseListener__1 extends MouseAdapter
    {
        //Der selekte Tabellenkopf ist während der selektion farbig darzustellen
        private JTable table;
        private int columnCount;
        private Boolean [] arrColumnSelected;
              
        public TableHeaderMouseListener__1(JTable table)
        {
            this.table = table;
            //columnCount=this.table.getColumnModel().getColumnCount();//FIXME liefert 0
            columnCount=9; //Ersatzloesung __________
            arrColumnSelected = new Boolean[columnCount];
            for (int i=0; i<columnCount; i++)
            {
                arrColumnSelected[i]=false;
            }
        }//Konstruktor
      
        public void mouseClicked(MouseEvent event)
        {
            Point point = event.getPoint();
            int column = table.columnAtPoint(point);
            //JOptionPane.showMessageDialog(table, "Column count -> " + columnCount);            //debug
            //JOptionPane.showMessageDialog(table, "Column header #" + column + " -> " + str);    //debug
            this.arrColumnSelected[column] = !this.arrColumnSelected[column];
          
            TableColumn tblcol=table.getColumnModel().getColumn(column);
            if ( this.arrColumnSelected[column]==true )
                tblcol.setHeaderRenderer( new MyTableCellRendererHeadSelected() );
            else
                tblcol.setHeaderRenderer( new MyTableCellRendererHead() );
        }//mouseClick
    }//TableHeaderMouseListener__1

Der Aufruf des Listernes erfolgt so:
Java:
table.getTableHeader().addMouseListener(new TableHeaderMouseListener__1(table));

Über eine Antwort würde ich mich freuen.

Gruss Hein_nieH
 

Hein_nieH

Bekanntes Mitglied
Moinsen.

auch table,getColumnCount() liefert 0.
irgend wie unlogisch aber ich muss mich wohl damit abfinden :-(
Meine Absicht war es diesen Listener universell einzusetzen, ohne manuell (Hilfslösung) die Spaltenanzahl angeben zu müssen.

Gruss Hein_neiH
 

Hein_nieH

Bekanntes Mitglied
Moinsen,

hier ein Codeausschnitt ...
Java:
public ShowGUI()
    {
        String pathTest = System.getProperty("user.dir") + "\\DVD_Archiv.xml";
        File myFile = new File(pathTest);
        if ( myFile.exists() )
        {
            this.standardFilePath = pathTest;
        }
            //getJarPath
       
        action = new ActionGUI(frame,standardFilePath);
       
        //Panel Centre -> Darszellung Tabelle
        JPanel panelCentre=new JPanel();
        panelCentre.setLayout(new GridLayout(1,1)); //Grid Layout passt Groesse der enthaltenene Objekte IMMER an
       
        //Panel South -> Statusleiste / Statusinformationen
        JButton buttonOK=new JButton("Show XML");
        buttonOK.addActionListener(new ButtonListenerDateiOpen());
        labelPath.setText("");
        labelPath.setBackground(new Color(225,225,110));
       
        JPanel panelSouth=new JPanel();
        panelSouth.setLayout(new FlowLayout(FlowLayout.RIGHT,20,10));//hgap, vgap
        panelSouth.add(labelPath);
        panelSouth.add(buttonOK);
           
        //Tabelle definieren
        table.setModel(myTableModel);
        table.setColumnModel(myTableColumnModel);
        table.setDefaultRenderer(Object.class, new MyTableCellRenderer());
        table.getTableHeader().setDefaultRenderer(new MyTableCellRendererHead());
        table.getTableHeader().addMouseListener(new TableHeaderMouseListener__1(table));///////
        table.setShowHorizontalLines(false);
        table.setGridColor(Color.LIGHT_GRAY);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

Die entscheidende Zeile dürfte sein:
table.getTableHeader().addMouseListener(new TableHeaderMouseListener__1(table));///////

Vielleicht gibt es ja doch noch eine Lösung :)


Gruss Hein_nieH
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Swing Pane im SplitPane automatische Größe aktivieren AWT, Swing, JavaFX & SWT 0
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
I JAVAFX - CSS - automatische Property- und Methoden-Vorlagen in Eclipse AWT, Swing, JavaFX & SWT 17
Neumi5694 Swing Gridbaglayout - automatische Anpassung verhindern AWT, Swing, JavaFX & SWT 1
F Textfeld Währungszahlen und automatische Aktualisierung AWT, Swing, JavaFX & SWT 14
S Swing Warum funktioniert der automatische Zeilenumbruch mit arabischen Zeichen beim JTextPane nicht AWT, Swing, JavaFX & SWT 3
J ungewollt-automatische Größenänderung von JLabel AWT, Swing, JavaFX & SWT 5
S automatische Zeilenhöhen Anpassung bei JTable AWT, Swing, JavaFX & SWT 2
A Automatische anpassung im NullLayout AWT, Swing, JavaFX & SWT 10
N JEditorPane und automatische Scrollposition AWT, Swing, JavaFX & SWT 2
B Automatische Größenanpassung AWT, Swing, JavaFX & SWT 7
K Automatische Skalierung von GUI Elementen (Java Swing) AWT, Swing, JavaFX & SWT 2
N automatische Auswahl einer JComboBox AWT, Swing, JavaFX & SWT 6
C Automatische Screenshots + Analyse des Bildes AWT, Swing, JavaFX & SWT 5
L Layout automatische Anpassung umgehen? AWT, Swing, JavaFX & SWT 5
aze GridLayout: Keine automatische Ausdehnung AWT, Swing, JavaFX & SWT 2
A AWT Automatische Weiterleitung? AWT, Swing, JavaFX & SWT 13
M Automatische Anpassung eines JPanels in einem JFrame AWT, Swing, JavaFX & SWT 6
L JTable automatische Spaltenbreite AWT, Swing, JavaFX & SWT 2
G JPanel automatische Größ AWT, Swing, JavaFX & SWT 4
C JSplitPane automatische Veränderung verbieten. AWT, Swing, JavaFX & SWT 3
T Automatische Grössenanpassung JPanel / JScrollpane AWT, Swing, JavaFX & SWT 3
G GridBagLayout - automatische Größenanpassung AWT, Swing, JavaFX & SWT 3
L jTextField mit automatische Suchfunktion? AWT, Swing, JavaFX & SWT 2
A Automatische Scrollbalken bei einem JFrame AWT, Swing, JavaFX & SWT 8
G LayoutManager Beliebige Anzahl von Panels für LayoutManager AWT, Swing, JavaFX & SWT 3
H TableView mit variabler Anzahl Spalten AWT, Swing, JavaFX & SWT 2
D Swing JSlider Tip Anzahl AWT, Swing, JavaFX & SWT 3
Hijo2006 Anzahl der Excelzeilen AWT, Swing, JavaFX & SWT 1
L Swing Variable Anzahl an JButtons AWT, Swing, JavaFX & SWT 7
Kandum obj_JMenu.addMenuListener - variable Anzahl an JMenus / menulistenern & frame.setTitle() dynamisch AWT, Swing, JavaFX & SWT 7
K SWT DataBinding, Anzahl der Zeilen aktualisieren AWT, Swing, JavaFX & SWT 4
K AWT begrenzte anzahl paint aufrufe AWT, Swing, JavaFX & SWT 6
M Anzahl Frames in Taskleiste AWT, Swing, JavaFX & SWT 2
R Swing unbegrenzte Anzahl vonEinträgen in JList AWT, Swing, JavaFX & SWT 2
DEvent Swing JTextField Anzahl an sichtbaren Zeichen AWT, Swing, JavaFX & SWT 4
Y JTable mit großer Anzahl von Datensätzen AWT, Swing, JavaFX & SWT 3
G Swing JTextArea mit fester Anzahl Spalten! AWT, Swing, JavaFX & SWT 10
T Anzahl Event Listeners AWT, Swing, JavaFX & SWT 4
O Anzahl der Zeilen im TableViewer AWT, Swing, JavaFX & SWT 12
G JList mit einer großen Anzahl an Einträgen AWT, Swing, JavaFX & SWT 15
Airwolf89 Swing Anzahl der Tabellenspalten dynamisch setzen AWT, Swing, JavaFX & SWT 2
T entsprechende Anzahl an jCheckboxen in einer jTable AWT, Swing, JavaFX & SWT 5
M Problem mit Festsetzen der Anzahl ein reihen in einer JTable AWT, Swing, JavaFX & SWT 11
M Komponenten einer unbestimmten Anzahl und MouseListener AWT, Swing, JavaFX & SWT 4
J jTextarea Anzahl Zeichen in einer Zeile begrenzen AWT, Swing, JavaFX & SWT 2
S JList gibt nach Sortierung mit Collections keine Anzahl mehr AWT, Swing, JavaFX & SWT 3
B random anzahl an jTextFieldern einfügen AWT, Swing, JavaFX & SWT 2
J Große Anzahl von Comboboxen in Tabelle darstellen AWT, Swing, JavaFX & SWT 2
G Tabelle mit variabler Anzahl an Zeilen AWT, Swing, JavaFX & SWT 3
M JList mit unbestimmter Anzahl Panels füllen AWT, Swing, JavaFX & SWT 4
X JTable --> Anzahl der Spalten ändern AWT, Swing, JavaFX & SWT 8
S Anzahl ActionEvents (Strings in eine ArrayList einfügen) AWT, Swing, JavaFX & SWT 4
Encera TableView Zeilen als Spalten im SceneBuilder AWT, Swing, JavaFX & SWT 0
W JavaFX JavaFX - Spalten auf ganze SpreadsheetView verteilen AWT, Swing, JavaFX & SWT 16
ralfb1105 JavaFX Dynamisch TableView Spalten erstellen AWT, Swing, JavaFX & SWT 4
L JavaFX Gridpane mit gleich großen Spalten AWT, Swing, JavaFX & SWT 23
K TreeTableView (cellFactory) - wie Daten in Spalten einfügen AWT, Swing, JavaFX & SWT 0
R Swing JTable : Header der Spalten ergänzen mit caption (wie bei html-table) AWT, Swing, JavaFX & SWT 2
S JComboBox mit mehreren Spalten? AWT, Swing, JavaFX & SWT 6
D Swing Bestimmte Berechnung von Spalten durchführen und dann die Zeilen nach bestimmten Kriterien einfärben AWT, Swing, JavaFX & SWT 5
K JavaFX Spalten der Tabellen verschieben AWT, Swing, JavaFX & SWT 2
W JTable erstellen und Spalten sortieren AWT, Swing, JavaFX & SWT 2
I JTable Spalten automatisch dem Inhalt anpassen! AWT, Swing, JavaFX & SWT 6
O Swing Spalten-Position nach verschieben AWT, Swing, JavaFX & SWT 6
M JTable mit wechselnden Spalten - sehr Langsam AWT, Swing, JavaFX & SWT 5
O Swing JTable spalten sollen Links stehen AWT, Swing, JavaFX & SWT 5
T Spaltengröße einzelner Spalten in Gridlayout festlegen AWT, Swing, JavaFX & SWT 3
M Swing JTable - Umsortieren einzelner Spalten unterbinden AWT, Swing, JavaFX & SWT 6
D Problem mit 3-Spalten Layout AWT, Swing, JavaFX & SWT 17
J Swing JTable: Komplette Zeile aber ohne Spalten markieren AWT, Swing, JavaFX & SWT 11
B JFileChooser breite der Spalten? AWT, Swing, JavaFX & SWT 5
P Liste mit Icons und mehreren Spalten AWT, Swing, JavaFX & SWT 7
B JTable Zeilen und Spalten selektieren AWT, Swing, JavaFX & SWT 5
G LayoutManager Layout für Spalten AWT, Swing, JavaFX & SWT 8
I jList mit Spalten AWT, Swing, JavaFX & SWT 3
C [Swing] JList JText 2 Spalten Modell prozentual verteilen AWT, Swing, JavaFX & SWT 2
D JTabel: Überschrift, Abstand zwischen Tabellen, Spalten-Farbe ändern AWT, Swing, JavaFX & SWT 2
B Swing GridLayout.add über 2 Spalten? AWT, Swing, JavaFX & SWT 7
M Sortierung und Vertauschen von Spalten in JTable AWT, Swing, JavaFX & SWT 6
F Spalten in JTable immer am rechten Tabellenrand AWT, Swing, JavaFX & SWT 3
B Swing JTable Spalten namen AWT, Swing, JavaFX & SWT 10
E Swing JTable Spalten ausblenden?! AWT, Swing, JavaFX & SWT 3
T jTable und farbige Spalten AWT, Swing, JavaFX & SWT 18
P GridBagLayout - zwei Spalten mit gleicher Größe AWT, Swing, JavaFX & SWT 11
B Swing JTable mit scrollbalken anhand von Spalten AWT, Swing, JavaFX & SWT 3
B Swing JTable Spalten merken AWT, Swing, JavaFX & SWT 6
E JTable nach mehreren Spalten sortieren AWT, Swing, JavaFX & SWT 14
B SWT SWT Tree mit mehreren Spalten AWT, Swing, JavaFX & SWT 3
F Swing J(X)Table Spalten umsortieren NUR im View (Wie finde ich eine Spalte nach Name?) AWT, Swing, JavaFX & SWT 3
H Swing TableCellRenderer für verschiedene Spalten AWT, Swing, JavaFX & SWT 11
J Swing JComboBox mit mehreren Spalten AWT, Swing, JavaFX & SWT 4
D Layout 2 unterschiedliche spalten AWT, Swing, JavaFX & SWT 7
S Swing JTable: Spalten mit relativer Breite im ungleichmäßigen Verhältnis AWT, Swing, JavaFX & SWT 2
G Tabelle Spalten unsichtbar machen AWT, Swing, JavaFX & SWT 5
D JTable Viewport - Ausgabe der sichtbaren Spalten AWT, Swing, JavaFX & SWT 2
K JTable Spalten nicht verschieben AWT, Swing, JavaFX & SWT 2
G JTable fixierte Spalten AWT, Swing, JavaFX & SWT 2
G TableModel mit anderen Spalten AWT, Swing, JavaFX & SWT 4
G JTable: Spalten & Zellen fixieren wie in Excel AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben