3

4 行の TableView があり、ドラッグ アンド ドロップの実装が機能することをテストしようとしています。次のテストがあります。

TableViewDock table = ...;

//the four rows, using the first cell for the DnD
TableCellItemDock[] rows = {new TableCellItemDock(table.asTable(), 0, 0),
                            new TableCellItemDock(table.asTable(), 1, 0),
                            new TableCellItemDock(table.asTable(), 2, 0),
                            new TableCellItemDock(table.asTable(), 3, 0)};

Wrap target = rows[3].wrap();
rows[0].drag().dnd(target, target.getClickPoint());

しかし、dndブロックの呼び出し: 手動でマウスを動かして「ブロックを解除」し、ドラッグ アンド ドロップ アクションを開始できるようにする必要があります (その後、期待どおりに完了します)。

自分で仕事をするために何をする必要がありdndますか?

注: JemmyFX バージョン = 20120928

4

2 に答える 2

1

Sergey のおかげで、次の方法で動作させることができました。

protected void dragAndDrop(Wrap<? extends Object> from, Wrap<? extends Object> to) throws InterruptedException {
    Point start = scene.wrap().toLocal(from.toAbsolute(from.getClickPoint()));
    Point end = scene.wrap().toLocal(to.toAbsolute(to.getClickPoint()));

    scene.mouse().move(start);
    scene.mouse().press();
    scene.mouse().move(end);
    scene.mouse().release();
}

彼が提案したように、私はループを使ってプログレッシブな動きをすることができませんでした: がmove再度呼び出されると、コードは 2 回目の反復でスタックします。

于 2013-09-05T14:34:05.117 に答える