将删除按钮添加到表中的列

将删除按钮添加到表中的列,第1张

删除按钮添加到表中的列

这是示例工作版本。

public class TableEditorTest {        public static void main(String[] args) {        Display display = new Display();        Shell shell = new Shell(display);        shell.setLayout(new FillLayout());        TableViewer viewer = new TableViewer(shell);        viewer.getTable().setHeaderVisible(true);        viewer.getTable().setLinesVisible(true);        viewer.setContentProvider(new ArrayContentProvider());        TableColumn column = new TableColumn(viewer.getTable(), SWT.NONE);        column.setText("First Name");        column.setWidth(100);        TableViewerColumn firstNameCol = new TableViewerColumn(viewer, column);        firstNameCol.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) {     Person p = (Person)element;     return p.getFirstName(); }        });        column = new TableColumn(viewer.getTable(), SWT.NONE);        column.setText("Last Name");        column.setWidth(100);        TableViewerColumn lastNameCol = new TableViewerColumn(viewer, column);        lastNameCol.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) {     Person p = (Person)element;     return p.getLastName(); }        });        column = new TableColumn(viewer.getTable(), SWT.NONE);        column.setText("Actions");        column.setWidth(100);        TableViewerColumn actionsNameCol = new TableViewerColumn(viewer, column);        actionsNameCol.setLabelProvider(new ColumnLabelProvider(){ //make sure you dispose these buttons when viewer input changes Map<Object, Button> buttons = new HashMap<Object, Button>(); @Override public void update(ViewerCell cell) {     TableItem item = (TableItem) cell.getItem();     Button button;     if(buttons.containsKey(cell.getElement()))     {         button = buttons.get(cell.getElement());     }     else     {          button = new Button((Composite) cell.getViewerRow().getControl(),SWT.NONE);         button.setText("Remove");         buttons.put(cell.getElement(), button);     }     TableEditor editor = new TableEditor(item.getParent());     editor.grabHorizontal  = true;     editor.grabVertical = true;     editor.setEditor(button , item, cell.getColumnIndex());     editor.layout(); }        });        Person p1 = new Person();        p1.setFirstName("George");        p1.setLastName("Burne");        Person p2 = new Person();        p2.setFirstName("Adam");        p2.setLastName("Silva");        Person p3 = new Person();        p3.setFirstName("Nathan");        p3.setLastName("Cowl");        List<Person> persons = new ArrayList<Person>();        persons.add(p1);        persons.add(p2);        persons.add(p3);        viewer.setInput(persons);        shell.open();        while(!shell.isDisposed())        { if(!display.readAndDispatch()) {     display.sleep(); }        }        display.dispose();    }    private static class Person    {        String firstName;        String lastName;        Person()        {        }        public String getFirstName() { return firstName;        }        public String getLastName() { return lastName;        }        public void setFirstName(String firstName) { this.firstName = firstName;        }        public void setLastName(String lastName) { this.lastName = lastName;        }    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5130819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存