title image


Smiley Re: Spaltennamen einer JTable ändern
Hallo Jörg,





hab mich wohl etwas doof ausgedrückt. Das Ändern der Spaltennamen klappt bei mir mit der von Dir genannten Methode wunderbar, aber halt nur, in dem ich ein eigenes Spaltenmodell erzeuge. Denn dazu muss ich ja schließlich eigene Spaltenobjekte anlegen. Aber durch das Verwenden des Spaltenmodells geht auch die zweite Spalte flöten.



Folgender Code (hier als Eclipse-Projekt zu haben) erzeugt den in meinem ersten Beitrag von mir beschriebenen Effekt ganz genau:



import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;



import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.table.AbstractTableModel;

import javax.swing.table.DefaultTableColumnModel;

import javax.swing.table.TableColumn;



public class TableTest

{

public static void main(String[] args)

{

// Fenster



JFrame f = new JFrame("Tabellenframe für Jörg von Krüschi :-D");

f.setSize(350,200);

f.setLocation(30,30);

f.addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e) { System.exit(0); } });



// Tabellenmodell



TableModel tm = new TableModel();

tm.data = new String[][] { { "A" , "B" } , { "C" , "D" } , { "E" , "F" } };



// Spaltenmodell



DefaultTableColumnModel cm = new DefaultTableColumnModel();

TableColumn tc;

tc = new TableColumn();

tc.setHeaderValue("key");

cm.addColumn(tc);

tc = new TableColumn();

tc.setHeaderValue("value");

cm.addColumn(tc);



// Tabelle



JTable t = new JTable(tm,cm);

Container c = f.getContentPane();

c.setLayout(new BorderLayout());

c.add(new JScrollPane(t),BorderLayout.CENTER);



f.setVisible(true);



}

}



class TableModel extends AbstractTableModel

{

public Object[][] data;



public int getRowCount()

{

return data!=null ? data.length : 0;

}



public int getColumnCount()

{

return 2;

}



public Object getValueAt(int rowIndex, int columnIndex)

{

return data[rowIndex][columnIndex];

}

}



Und siehe dort, die zweite Spalte wird gar nicht beachtet:







?????????????????



Entfernt man aus dem Konstruktoraufruf der JTable das Spaltenmodell, werden die Spalten ordnungsgemäß angezeigt.



Wie gesagt gehe ich den Umweg über's Spaltenmodell nur, um die Spaltennamen setzen zu können. Wenn das auch anders geht -- her damit.





Danke & Gruß

Christian


________________________________________________________________

Je mehr wir wissen, um so tiefer schweigen wir und um so hoffnungsloser vereinsamen wir.
José Ortega y Gasset
________________________________________________________________
Mikroseite / Heimseite


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: