在已禁用的SWT窗口小部件上接收丢弃

时间:2013-12-27 06:32:12

标签: java drag-and-drop swt

如何创建一个SWT小部件,在我的例子中是StyledText,即使在被禁用时也可以接收Drop事件。

textPane = new StyledText(parent, SWT.V_SCROLL | SWT.MULTI | SWT.WRAP);
textPane.setEnabled(false);
DropTarget target = new DropTarget(textPane, DND.DROP_DEFAULT | DND.DROP_MOVE);
target.setTransfer(new Transfer[] {TextTransfer.getInstance(),FileTransfer.getInstance()});
    target.addDropListener(new DropTargetAdapter() {
        @Override
        public void drop(DropTargetEvent event) {
            System.out.println(event);
        }
    });

现在创建的textPane将无法接收丢弃事件。如果我删除textPane.setEnabled(false)它再次有效。我怎样才能让它始终发挥作用?

非常感谢^^

1 个答案:

答案 0 :(得分:0)

可能有效,我暂时无法测试:创建一个(已启用)CompositeFillLayout作为已禁用组件的父级,并处理在那里放弃事件。