Tobias1982
Grünschnabel
Hallo,
ich habe hier schon mehrmals Beiträge gelesen, die mir bei der Erstellung meiner Diplomarbeit wertvolle Hinweise geliefert haben - erst einmal vielen Dank für eure Aktivität
Jetzt habe ich allerdings ein Problem, auf das ich keine Lösung gefunden habe:
Ich möchte, dass Nutzen in einer SWT Tabelle mit den Pfeiltasten navigieren und Werte eingeben können. Das klappt auch mit folgendem Code:
Alleridngs ist es für Nutzer relativ ungewohnt vorher und nachher immer Enter drücken zu müssen - habt ihr vielleicht eine Idee?
Vielen Dank schon Mal im Voraus
ich habe hier schon mehrmals Beiträge gelesen, die mir bei der Erstellung meiner Diplomarbeit wertvolle Hinweise geliefert haben - erst einmal vielen Dank für eure Aktivität
Jetzt habe ich allerdings ein Problem, auf das ich keine Lösung gefunden habe:
Ich möchte, dass Nutzen in einer SWT Tabelle mit den Pfeiltasten navigieren und Werte eingeben können. Das klappt auch mit folgendem Code:
Code:
// create a TableCursor to navigate around the table
final TableCursor cursor = new TableCursor(table, SWT.NONE);
// create an editor to edit the cell when the user hits "ENTER"
// while over a cell in the table
final ControlEditor editor = new ControlEditor(cursor);
editor.grabHorizontal = true;
editor.grabVertical = true;
cursor.addSelectionListener(new SelectionAdapter() {
// when the TableEditor is over a cell, select the corresponding row in
// the table
public void widgetSelected(SelectionEvent e) {
table.setSelection(new TableItem[] {cursor.getRow()});
}
// when the user hits "ENTER" in the TableCursor, pop up a text editor so that
// they can change the text of the cell
public void widgetDefaultSelected(SelectionEvent e){
final Text text = new Text(cursor, SWT.NONE);
TableItem row = cursor.getRow();
int column = cursor.getColumn();
text.setText(row.getText(column));
text.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
// close the text editor and copy the data over
// when the user hits "ENTER"
if (e.character == SWT.CR) {
TableItem row = cursor.getRow();
int column = cursor.getColumn();
row.setText(column, text.getText());
text.dispose();
}
// close the text editor when the user hits "ESC"
if (e.character == SWT.ESC) {
text.dispose();
}
}
});
editor.setEditor(text);
text.setFocus();
}
});
Alleridngs ist es für Nutzer relativ ungewohnt vorher und nachher immer Enter drücken zu müssen - habt ihr vielleicht eine Idee?
Vielen Dank schon Mal im Voraus