PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JTable einzelne Spalte nicht editierbar



nahum
14-08-2010, 18:54
Hallo zusammen

Ich bin immer noch mit meiner JTabel beschäftigt. Meine Tablle hat 9 Spalten mit unteschiedlichen Breiten aber alle mit Strings drin. Nun soll aber die letzte Spalte nicht editierbar sein. Ich arbeite mit einem SpaltenModell, bei diesem finde ich aber nichts dergleiche. Wie mach ich das? Ist dies eine Funktion der JTable selbst oder muss ich hier sogar mit dem CellEditor arbeiten?

Hier mal ein Code Beispiel:

//create columnmodel for column prtnumber
TableColumn tcPrtNumber = new TableColumn(row,(pLayout.getWidth_Pixel()[row]));
tcPrtNumber.setHeaderValue(TABLEHEADER[row]);
tcPrtNumber.setPreferredWidth((pLayout.getWidth_Pi xel()[row])+ pLayout.getmColumn_0_GBC().insets.left + pLayout.getmColumn_0_GBC().insets.right);
tcPrtNumber.setMinWidth((pLayout.getWidth_Pixel()[row])+ pLayout.getmColumn_0_GBC().insets.left + pLayout.getmColumn_0_GBC().insets.right);
tcPrtNumber.setResizable(false);
row++;

Schon mal herzlichen Dank im Voraus.

Grüsse

Nahum

John W
14-08-2010, 20:47
Du benötigst ein TableModel, du kannst z.B. das hier verwenden:


public class MainTableModel
extends DefaultTableModel
{
public int getColumnCount()
{
return 9;
}

public boolean isCellEditable(int r, int c)
{
return c != 8;
}
}

Das übergibst du dem Konstruktor der JTable.
Folgende Imports sind dann noch nötig:


import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;