JTable Zellen nicht editierbar

xX_QueAnw_Xx

Mitglied
Hallo, ich habe eine JTable mit Netbeans erstellt und in den Properties unteranderem:
cellEditor auf none
cellSelectionEnable auf false

Diese Tabelle lasse ich nacher mit einem DefaultTableModell (Welches ich aus einem Resultset generieren Lasse) befüllen. Leider kann ich die Zellen danach immer noch bearbeiten! Die ganze Tabelle auf enable = False zu setzten kann ich auch nicht denn die einzelnen Rows müssen selektierbar sein.

HILFE.

lg QueAnw
 

chalkbag

Bekanntes Mitglied
Servus

du musst die folgende Methode aus TableModel bzw. AbstractTableModel wie folgt überschreiben.

Java:
        @Override
	public boolean isCellEditable(int rowIndex, int columnIndex) {
		return false;
	}
 

xX_QueAnw_Xx

Mitglied
ok vielen dank :).
Ich komme mit den Tabellen in Java irgendwie überhaupt nicht zurrecht gibt es eine Möglichkeit einen Listener für Jede Row einzubauen?

Lg QUeAnw
 

chalkbag

Bekanntes Mitglied
es gibt im TableModel Methoden wie setCell und getCell, eine zeilenweise Verarbeitung müsstest du selber umsetzen, da die Tabelle als Array von Cellen betrachtet wird und keine Existenz von Spalten und Zeilen wirklich gibt. Listener gibts auch, guck einfach mal was er dir unter setActionListener so vorschlägt.
 

xX_QueAnw_Xx

Mitglied
Ok ich verstehe wie du das meinst!

Also quasi getCell und dann addMouselistener
Nur laut meiner IDE(Netbeans 6.9.1) hat mein TableModell kein getCell und auch kein SetCell.

Leider habe ich die Klasse zum Parsen vom Resultset zum TableModel nur Kopiert und eingefügt deswegen weiß ich nicht wirklich woran das liegt. Die Parser Klasse:
Java:
package jtask;

//FOUND AT [url=http://netbeans-forum.de/viewtopic.php?t=834]NetBeans-Forum • Thema anzeigen - JTable dynamisch befüllen[/url]
/*Copied and Pasted eigentum von: JBernd


/**
*
*
*/
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
/**
*
*
*/
public class MyTableModel extends DefaultTableModel{

Vector vtype = new Vector();


public MyTableModel(ResultSet rs) {

try{
ResultSetMetaData meta = rs.getMetaData();
int count = meta.getColumnCount();
Vector vec = new Vector();

setColumnCount(count);

// Überschriften der JTable
for(int i = 1; i<=count;i++){
vec.add(meta.getColumnName(i).toUpperCase());
}
setColumnIdentifiers(vec);

// speichern der ersten Row um Typen später zuordnen zu können
for(int i = 0; i<count;i++){
this.vtype.add(" ");
}

// Abfragen der Datentypen

String auss = "";
Short aussh;
Long ausl;
int ausi = 0;
boolean ausb = false;
java.util.Date ausd = new java.util.Date();

Object[] row = new Object[count];
while (rs.next()){
for (int i = 1; i <= count; i++){
boolean found = false;

if (rs.getObject(i) instanceof Integer ){
ausi = (Integer)rs.getInt(i);
row[i-1] = ausi;
found = true;
}
if (rs.getObject(i) instanceof Short ){
aussh = (Short)rs.getShort(i);
row[i-1] = ausi;
found = true;
}
if (rs.getObject(i) instanceof Long ){
ausl = (Long)rs.getLong(i);
row[i-1] = ausi;
found = true;
}
if (rs.getObject(i) instanceof java.util.Date ){
ausd = (java.util.Date)rs.getDate(i);
row[i-1] = new SimpleDateFormat("dd.MM.yyyy").format(ausd);
found = true;
}
if (rs.getObject(i) instanceof Boolean ){
ausb = (boolean)rs.getBoolean(i);
row[i-1] = ausb;
found = true;
}
if (!found ){
auss = (String)rs.getString(i);
row[i-1] = auss;
}

}


addRow(row);

}
}

catch(Exception e){
e.printStackTrace();
}
}

 @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }

public Class getColumnClass(int columnIndex) {
// Datentypen der ersten Row werden ausgelesen
Class c = vtype.get(columnIndex).getClass();

return c;
}

}


Ihr aufruf:
//Die Methode ControllerMainframe.getKat(uid) die aufgerufen wird liefert ein ResultSet
Java:
    private void initSettings() {
          try
          {
              jTable1.setModel(new MyTableModel(ControllerMainframe.getKat(uid)));
              jTable1.getModel().getTableModel. // <-- Hier gibt es weder Get noch Set cell
          }
          catch (Exception ex)
          {
              Main.showTicketerror(ex);
          }
 

chalkbag

Bekanntes Mitglied
Ah ok, verschrieben.

Es gibt in AbstractTableModel die Methoden setValueAt() und getValueAt().
Für weitere Methoden, welche du bei Bedarf überschreiben könntest, schau mal unter
AbstractTableModel (Java 2 Platform SE v1.4.2)

Einer Celle wirst du keinen Mouselistener zuweisen können, wäre wohl auch recht aufwendig.

An sich sollte es reichen der JTable einen listener zuzuweisen, falls man da etwas machen will.
Ansonsten könnte evtl für deine Zwecke aus der Klases AbstractTableModel die Methode addTableModelListener(...) helfen?
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
A Swing JTable Umgang mit Zellen AWT, Swing, JavaFX & SWT 2
S Swing Zeilenumbruch in JTable Zellen AWT, Swing, JavaFX & SWT 3
M Swing Jtable zellen zentrieren AWT, Swing, JavaFX & SWT 4
V JTable: Zugriff auf einzelne Zellen AWT, Swing, JavaFX & SWT 4
M JTable Zeilen und Zellen einfärben AWT, Swing, JavaFX & SWT 11
GUI-Programmer JTable - zentrierte Zellen AWT, Swing, JavaFX & SWT 2
B JTable Selektion von Zellen AWT, Swing, JavaFX & SWT 3
GianaSisters Swing JTable Zellen intelligenter Zeilenumbruch AWT, Swing, JavaFX & SWT 4
K Swing JTable Editierfunktion für einzelne Zellen ausschalten AWT, Swing, JavaFX & SWT 3
S Swing JTable - Editierung von Zellen abfangen AWT, Swing, JavaFX & SWT 3
GianaSisters Swing jTable (bestimmte Zellen umrahmen) AWT, Swing, JavaFX & SWT 8
T JTable Zellen Farbe AWT, Swing, JavaFX & SWT 13
N Swing JTable: Zellen verbinden AWT, Swing, JavaFX & SWT 11
N Zellen einer JTable unterschiedlich formatieren AWT, Swing, JavaFX & SWT 7
D Swing JTable, Zellen-Farbe über Koordinaten ändern AWT, Swing, JavaFX & SWT 9
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
D Swing JTable Problem bei automatischem update von Zellen AWT, Swing, JavaFX & SWT 3
G JTable Multiple Row Header Example - Probleme mit der Höhe der Zellen AWT, Swing, JavaFX & SWT 4
C Swing JTable: Horizontale Linie bei einzelnen Zellen ausblenden AWT, Swing, JavaFX & SWT 5
C JTable: Alle selektierten Zellen abfangen AWT, Swing, JavaFX & SWT 13
V Nur zulässige Zeichen in JTable-Zellen eintragen können AWT, Swing, JavaFX & SWT 2
F Text Vertical in Zellen von JTable AWT, Swing, JavaFX & SWT 3
B Swing Drag&Drop einzelner Zellen in einer JTable AWT, Swing, JavaFX & SWT 12
S Swing JTable Auswahl mehrerer Zellen mit STRG+Maus AWT, Swing, JavaFX & SWT 3
A Flexible JTable mit editierbaren Zellen,abhängig von Data AWT, Swing, JavaFX & SWT 2
C JTable und farbige Zellen AWT, Swing, JavaFX & SWT 5
R JTable: Zellen einer Spalte unterschiedlich befüllen AWT, Swing, JavaFX & SWT 2
R JTable: Zellen einer Zeile zusammenfassen? AWT, Swing, JavaFX & SWT 3
R JTable darstellen von leeren Zellen AWT, Swing, JavaFX & SWT 12
E Drag&Drop JTable; Renderer füllt alle Zellen AWT, Swing, JavaFX & SWT 10
R JTable updatePaint() angabe der geänderten Zellen AWT, Swing, JavaFX & SWT 3
R JTable mehrere Zellen mit Shift selektieren AWT, Swing, JavaFX & SWT 2
R JTable einzelne Zellen selektieren AWT, Swing, JavaFX & SWT 7
R JTable - Rendern der einzelnen Zellen AWT, Swing, JavaFX & SWT 3
X in JTable nur einige Zellen editierbar machen AWT, Swing, JavaFX & SWT 2
G JTable: Spalten & Zellen fixieren wie in Excel AWT, Swing, JavaFX & SWT 4
G JTable Zellen makieren AWT, Swing, JavaFX & SWT 2
M JTable Zelle ändern -> andere Zellen mit ändern AWT, Swing, JavaFX & SWT 5
J JTable Zellen und Header AWT, Swing, JavaFX & SWT 2
A Zellen in JTable auf Klick kurz markieren auf Klick AWT, Swing, JavaFX & SWT 2
E JTable; DefaultTableCellRenderer. Zellen farbig befüllen. AWT, Swing, JavaFX & SWT 5
E JTable-während der Einfügezeit der Zellen in die Table AWT, Swing, JavaFX & SWT 2
H JTable Text aus mehreren Zellen in einer Spalte kopieren? AWT, Swing, JavaFX & SWT 3
M [Swing] Kalender mit JTable / Einfärben von Zellen AWT, Swing, JavaFX & SWT 10
A JTable, mehrere Zellen markieren AWT, Swing, JavaFX & SWT 3
L Again: In JTable bestimmte Zellen färben AWT, Swing, JavaFX & SWT 12
M CellEditor für individuelle Zellen in JTable AWT, Swing, JavaFX & SWT 3
G JTable(Zellen) und JPanel AWT, Swing, JavaFX & SWT 2
D Im JTable bei einzelnen Zellen die Farbe ändern AWT, Swing, JavaFX & SWT 3
G Rowspan (Zellen verbinden) in JTable? AWT, Swing, JavaFX & SWT 3
R JTable Zellen markieren AWT, Swing, JavaFX & SWT 3
R JTable, automatischer resize der Zellen nach einer Eingabe AWT, Swing, JavaFX & SWT 4
T JTable, Zeilenumbruch in Zellen AWT, Swing, JavaFX & SWT 23
I einzelne Zellen bei JTable markieren AWT, Swing, JavaFX & SWT 3
M JTable und Farbe von Zellen AWT, Swing, JavaFX & SWT 2
G Zellen in JTable alphabetisch sortieren AWT, Swing, JavaFX & SWT 13
N JTable - Problem mit markieren von Zellen AWT, Swing, JavaFX & SWT 3
B JTable-Zellen einfärben AWT, Swing, JavaFX & SWT 6
W JTable Zellen verbinden AWT, Swing, JavaFX & SWT 2
S JTable Zellen ändern AWT, Swing, JavaFX & SWT 3
I Swing JTable zeichnet kein vertical Grid 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
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
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

Ähnliche Java Themen

Neue Themen


Oben