hallo zusammen,
ich bin an einen Punkte angelangt, wo ich nicht weiterkommen. Ich habe eine Tabelle (5Spalten) erstellt und möchte nun, dass nur die 3. Spalte in der Tabelle editierbar ist. Alle anderen sind nur readable. Wie mache ich das. Bisher habe ich nur das hier hinbekommen. Für jede Hilfe wäre ich sehr dankbar.
ich bin an einen Punkte angelangt, wo ich nicht weiterkommen. Ich habe eine Tabelle (5Spalten) erstellt und möchte nun, dass nur die 3. Spalte in der Tabelle editierbar ist. Alle anderen sind nur readable. Wie mache ich das. Bisher habe ich nur das hier hinbekommen. Für jede Hilfe wäre ich sehr dankbar.
Java:
nutzwerttabelle.addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event event) {
Rectangle clientArea = nutzwerttabelle.getClientArea();
Point pt = new Point(event.x, event.y);
int index = nutzwerttabelle.getTopIndex();
while (index < nutzwerttabelle.getItemCount()) {
boolean visible = false;
final TableItem item = nutzwerttabelle.getItem(index);
for (int i = 0; i < nutzwerttabelle.getColumnCount(); i++) {
Rectangle rect = item.getBounds(i);
if (rect.contains(pt)) {
final int column = i;
final Text text = new Text(nutzwerttabelle, SWT.NONE);
Listener textListener = new Listener() {
public void handleEvent(final Event e) {
switch (e.type) {
case SWT.FocusOut:
item.setText(column, text.getText());
text.dispose();
break;
case SWT.Traverse:
switch (e.detail) {
case SWT.TRAVERSE_RETURN:
item.setText(column, text.getText());
// FALL THROUGH
case SWT.TRAVERSE_ESCAPE:
text.dispose();
e.doit = false;
}
break;
}
}
};
text.addListener(SWT.FocusOut, textListener);
text.addListener(SWT.Traverse, textListener);
editor.setEditor(text, item, i);
text.setText(item.getText(i));
text.selectAll();
text.setFocus();
return;
}
if (!visible && rect.intersects(clientArea)) {
visible = true;
}
}
if (!visible)
return;
index++;
}
}
});