Java 拖航问题,;将支架放置在RedHat 5上的选项卡内

Java 拖航问题,;将支架放置在RedHat 5上的选项卡内,java,tabs,drag-and-drop,swt,jface,Java,Tabs,Drag And Drop,Swt,Jface,我对标签中的树项目的拖放支持有一个问题,下面的简单代码在Windows XP/7、Ubuntu、Fedora和RedHat 4上运行良好,但在RedHat 5上失败 @Override protected Control createDialogArea(Composite parent) { Composite composite = (Composite) super.createDialogArea(parent); setShellStyle(getShellStyle(

我对标签中的树项目的拖放支持有一个问题,下面的简单代码在Windows XP/7、Ubuntu、Fedora和RedHat 4上运行良好,但在RedHat 5上失败

@Override
protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);
    setShellStyle(getShellStyle() | SWT.RESIZE);

    TabFolder tabFolder = new TabFolder(composite, SWT.NONE);
    tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));

    TabItem tab = new TabItem(tabFolder, SWT.NONE);
    tab.setText("TabName");

    /*
     * TabItem 1 Content:
     */
    TreeViewer tree = new TreeViewer(tabFolder, SWT.SINGLE|SWT.BORDER);
    tree.setLabelProvider(provider);
    tree.setContentProvider(provider);
    tree.getTree().setHeaderVisible(true);
    tree.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));

    TreeColumn tc = new TreeColumn(tree.getTree(), SWT.NONE, 0);
    tc.setText("Name");
    tc.setWidth(100);
    tab.setControl(tree.getTree());

    tree.setInput(provider.getInput());

    /*
     * Drag&Drop Support
     */
    Transfer[] transfers = new Transfer[] { TextTransfer.getInstance()};
    DragDropItemsSupport dndItemsListener = new DragDropItemsSupport(tree);
    tree.addDragSupport(DND.DROP_MOVE, transfers, dndItemsListener);
    tree.addDropSupport(DND.DROP_MOVE, transfers, dndItemsListener);

    return composite;
}
当我说“运行良好”时,我能够在提到的主机上通过ViewerDropAdapter的dragOver方法

@Override
public void dragOver(DropTargetEvent event) {
    if (event.item != null)
        System.out.println("Drag over : " + ((TreeItem)event.item).getText());
}

是否有人有解释、调查方法或解决方案:)?

我在Centos 5的TabFolder中的TabItem中的TableViewer上看到了同样的情况。没有在其他操作系统上测试过。可通过更改为CTabFolder和CTabItem进行修复

为了充分利用DnD功能,不得不使用非本机的选项卡实现。。。不管怎样,它是有效的:)