ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1200
1200
EMPFEHLEN
-
Hallo SWT-Kenner,
ich habe mal eine Anfängerfrage. Ich möchte eine Zeile aus einer SWT-Table löschen.
Allerdings verwende ich einen TableEditor, damit die Zeilen bearbeitet werden können.
Die Tabellenzeile kann ich auch entfernen (sieht man an den Checkboxen), jedoch bleiben die Textboxen und die Combo in der Anzeige. Wie macht man es richtig? Zur Vereinfachung entferne ich im Beispiel jeweils die letzte Zeile.
Wenn ich nur eine Zeile mit einem TextEditor und einem Textfeld anlege, kann ich genau diese Elemente mit dispose entfernen.
Habt Ihr irgendeine Idee? Vielen Dank schonmal.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
package table.editor; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CCombo; import org.eclipse.swt.custom.TableEditor; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Text; public class RemoveTableItemsAndEditors { private Table table = null; private TableEditor editor = null; private class DoDeleteRow implements SelectionListener { public void widgetDefaultSelected(SelectionEvent arg0) { // TODO Auto-generated method stub } public void widgetSelected(SelectionEvent arg0) { int itemCount = table.getItemCount(); System.out.println(itemCount); if (itemCount>0) { table.remove(itemCount-1); } //table.remove(0); table.redraw(); } } public static void main(String[] args) { RemoveTableItemsAndEditors start = new RemoveTableItemsAndEditors(); start.init(); } public void init(){ Display display = new Display(); Shell shell = new Shell(display); GridLayout layout = new GridLayout(2, false); shell.setLayout(layout); table = new Table(shell, SWT.BORDER | SWT.MULTI | SWT.CHECK); table.setSize(400, 600); for (int i = 0; i < 2; i++) { TableColumn column = new TableColumn(table, SWT.NONE); column.setWidth(100); } for (int i = 0; i < 10; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText("Item"+i); editor = new TableEditor (table); Text text = new Text(table, SWT.NONE); item.setData("item"+i, text); text.setText("Mein Text"); editor.grabHorizontal = true; editor.setEditor(text, item, 0); editor = new TableEditor (table); CCombo combo = new CCombo (table, SWT.READ_ONLY); combo.add("Text 1"); combo.add("Text 2"); combo.add("Text 3"); editor.grabHorizontal = true; editor.setEditor(combo, item, 1); } Button b = new Button(shell, SWT.PUSH); b.setText("Drück mich"); b.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1)); b.addSelectionListener(new DoDeleteRow()); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }
-
31.08.10 16:05 #2Arx Tutorials.de Gastzugang
Sow wie du beim Click den Editor erzeugst, so musst du ihn auch wieder disposen (das Textfeld setVisible(false) etc.) und den Editor auf null setzen.
Z.b. wenn der Nutzer "Escape" drückt, oder wenn eine andere Zeile angeklickt wird (wenn der Editor != null ist, dann erst löschen, bevor der neue angelegt wird)
-
Hi drone68,
Du kannst unser PFGrid für SWT verwenden, da musst Du Dich um solche Sachen wie Editor freigeben und erzeugen nicht kümmern, kannst es Dir ja mal ansehen:
http://eclipse.pfgrid.com/CellEditors_Eclipse.aspx
Viele Grüße
Matthias
http://www.pfgrid.com
Ähnliche Themen
-
SWT: Textfeld mit Hilfe von Combo Box füllen
Von Sonne86 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 6Letzter Beitrag: 10.06.10, 21:30 -
Row von Table löschen
Von Headymaster im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 23.06.08, 15:19 -
Table + CellEditor mit Combo und Textfield
Von ablake27 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 29.01.08, 11:04 -
TextFeld und Table
Von blaiso im Forum JavaAntworten: 2Letzter Beitrag: 13.02.07, 13:43 -
SWT/JFace Table Combo- und Checkbox einfügen
Von Luxor im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 14.07.05, 10:34





Zitieren
Login




