Как сделать содержимое диалога перетаскиваемым?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сделать содержимое диалога перетаскиваемым?

Сообщение Anonymous »


Я хотел бы добавить сетку с перетаскиваемыми строками внутри диалогового окна в моем приложении Vaadin 24.

Однако диалоговое окно, похоже, не позволяет сеткам обнаруживать какие-либо действия по перетаскиванию.

Я попробовал добавить в сетки имя «перетаскиваемого» класса, как рекомендовано в документации, но действие перетаскивания по-прежнему не обнаружено ни в одном браузере. Я также пробовал добавить его в сам Div или в макет, в который этот Div добавлен, но это не работает.

Вот полная реализация сеток (этот код взят из примера Ваадина с перетаскиванием строк между сетками):

`публичный класс GridDragRowsBetweenGrids расширяет Div {

private TypeOperation draggedItem; общественный GridDragRowsBetweenGrids () { List люди = новый ArrayList(); пытаться { люди = TypeOperation.getTypeOperationsFromServer(); } catch (SQLException e) { // TODO Автоматически сгенерированный блок catch е.printStackTrace(); } ArrayList люди1 = новый ArrayList(люди); ArrayList люди2 = новый ArrayList(); Gridgrid1 = setupGrid(); Gridgrid2 = setupGrid(); GridListDataView dataView1 = Grid1.setItems(people1); GridListDataView dataView2 =grid2.setItems(people2); Grid1.setDropMode(GridDropMode.ON_GRID); Grid1.setRowsDraggable(истина); Grid1.addDragStartListener(this::handleDragStart); Grid1.addDropListener(e -> { dataView2.removeItem(draggedItem); dataView1.addItem(draggedItem); }); Grid1.addDragEndListener(this::handleDragEnd); Grid2.setDropMode(GridDropMode.ON_GRID); Grid2.setRowsDraggable(истина); Grid2.addDragStartListener(this::handleDragStart); Grid2.addDropListener(e -> { dataView1.removeItem(draggedItem); dataView2.addItem(draggedItem); }); Grid2.addDragEndListener(this::handleDragEnd); Контейнер Div = новый Div (сетка1, сетка2); setContainerStyles (контейнер); Grid1.addClassName("перетаскиваемый"); Grid2.addClassName("перетаскиваемый"); добавить (контейнер); } частный статический Grid setupGrid() { Grid сетка = новая Grid(TypeOperation.class); setGridStyles (сетка); обратная сетка; } Private void handleDragStart(GridDragStartEvent e) { перетаскиваемыйItem = e.getDraggedItems().get(0); } Private void handleDragEnd(GridDragEndEvent e) { перетаскиваемыйItem = ноль; } Private static void setGridStyles(Grid сетка) { Grid.getStyle().set("ширина", "300 пикселей").set("высота", "300 пикселей") .set("margin-left", "0,5rem").set("margin-top", "0,5rem") .set("align-self", "unset"); } Private static void setContainerStyles (контейнер Div) { Container.getStyle().set("display", "flex").set("flex-direction", "row") .set("flex-wrap", "wrap"); } }`
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»