jTable mit selektierbaren aber nicht editierbaren Zellen

floggie

Mitglied
Hi,

Kann man sowas machen. Ich habe mir bisher kein eigenes Tablemodel definiert... komme ich da jetzt noch drumherum? Mit enable(false), der einfachste Weg ohne eigenes TableModel, kann man nämlich keine Zellen mehr auswählen.

Kurze Frage noch zum Table Model. Habe da die Sun Tutorials gelesen. Mir ist aber nicht kla r wie ich eine Tabelle definiere von der ich vorher noch nicht welche Dimensionen sie konkret haben wird (insbesondere die Anzahl der Spalten). Denn in den Tutorials steht i.d.R.:

class MyTableModel extends AbstractTableModel {
private String[] columnNames = {"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
private Object[][] data = {
{"Mary", "Campione",
"Snowboarding", new Integer(5), new Boolean(false)},
{"Alison", "Huml",
"Rowing", new Integer(3), new Boolean(true)},
{"Kathy", "Walrath",
"Knitting", new Integer(2), new Boolean(false)},
{"Sharon", "Zakhour",
"Speed reading", new Integer(20), new Boolean(true)},
{"Philip", "Milne",
"Pool", new Integer(10), new Boolean(false)}
};

public int getColumnCount() {
return columnNames.length;
}

was mir gar nicht weiterhilft. Der Rest mit den (überschriebenen) Methoden ist mir sonst einigermassen klar (CellEditor, TableRenderer). Aber wenn ich mir keine dynamische Tabelle generieren kann wozu... :-( .

Letztes Problem:


Arbeite ich mit einem TableModel funktioniert "sowas" nicht mehr:

jTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
System.out.println("mouseClicked()"); // TODO Auto-generated Event stub mouseClicked().....
.....

Was mich auch abschreckt...:-( .

Sorry für den langen Text, aber falls jemand nen Tip zu einem der geschilderten Sachen oder Link wäre ich sehr dankbar :p

Grüsse

floggie
 
>Kann man sowas machen. Ich habe mir bisher kein eigenes Tablemodel definiert... komme ich da jetzt noch drumherum? Mit enable(false), der einfachste Weg ohne eigenes TableModel, kann man nämlich keine Zellen mehr auswählen.

Um Editieren zu verhindern, gibt es im TableModel die Methode isCellEditable(). Sie ist entsprechend anzupassen.

>Kurze Frage noch zum Table Model. Habe da die Sun Tutorials gelesen. Mir ist aber nicht kla r wie ich eine Tabelle definiere von der ich vorher noch nicht welche Dimensionen sie konkret haben wird (insbesondere die Anzahl der Spalten).

Verwende keine Arrays, sondern Listen - ArrayList oder Vector z.B.

>Letztes Problem:
>Arbeite ich mit einem TableModel funktioniert "sowas" nicht mehr:
Code:
	jTable.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					System.out.println("mouseClicked()"); // TODO Auto-generated Event stub mouseClicked()

mouseClilcked und mouseReleased...probier mal mouseReleased, wenn mouseClicked nicht das tut was es soll. ;)
 
Zurück