Я попробовал добавить прямоугольники по краям, чтобы создать фиксированные области для обнаружения, и теперь, где бы я их ни добавлял, они не отображаются на экране и не работают.
Изначально я использовал некоторые math и макет x/y, чтобы определить, находится ли он рядом с краем, но в любом случае это будет работать только в исходном рабочем пространстве. Мне нужно, чтобы он автоматически прокручивался при перетаскивании к краю, независимо от того, к какому месту рабочей области вы прокручиваетесь.
Это созданный мной обработчик createAutoScrollAreas, в котором возникает проблема. Я пробовал переделывать это много раз и решил все, кроме автоматической прокрутки.
private void createAutoScrollAreas() {
if (workspacePane == null) {
logger.error("WorkspacePane is not initialized.");
return;
}
double stageWidth = workspacePane.getWidth();
double stageHeight = workspacePane.getHeight();
// Create rectangles for each edge
Rectangle topEdge = new Rectangle(0, 0, stageWidth, EDGE_THRESHOLD);
Rectangle bottomEdge = new Rectangle(0, stageHeight - EDGE_THRESHOLD, stageWidth, EDGE_THRESHOLD);
Rectangle leftEdge = new Rectangle(0, 0, EDGE_THRESHOLD, stageHeight);
Rectangle rightEdge = new Rectangle(stageWidth - EDGE_THRESHOLD, 0, EDGE_THRESHOLD, stageHeight);
// Make them visible for debugging
topEdge.setStyle("-fx-fill: rgba(255, 0, 0, 0.5);");
bottomEdge.setStyle("-fx-fill: rgba(0, 255, 0, 0.5);");
leftEdge.setStyle("-fx-fill: rgba(0, 0, 255, 0.5);");
rightEdge.setStyle("-fx-fill: rgba(255, 255, 0, 0.5);");
// Add event handlers
addAutoScrollHandler(topEdge, true, false, false, false);
addAutoScrollHandler(bottomEdge, false, true, false, false);
addAutoScrollHandler(leftEdge, false, false, true, false);
addAutoScrollHandler(rightEdge, false, false, false, true);
// Add to the workspace pane
MainView.getInstance().addAllToWorkspaceScroll(topEdge, bottomEdge, leftEdge, rightEdge);
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... avafx-pane
Как реализовать автоматическую прокрутку при перетаскивании объектов внутри панели JavaFX? ⇐ JAVA
Программисты JAVA общаются здесь
1733502078
Anonymous
Я попробовал добавить прямоугольники по краям, чтобы создать фиксированные области для обнаружения, и теперь, где бы я их ни добавлял, они не отображаются на экране и не работают.
Изначально я использовал некоторые math и макет x/y, чтобы определить, находится ли он рядом с краем, но в любом случае это будет работать только в исходном рабочем пространстве. Мне нужно, чтобы он автоматически прокручивался при перетаскивании к краю, независимо от того, к какому месту рабочей области вы прокручиваетесь.
Это созданный мной обработчик createAutoScrollAreas, в котором возникает проблема. Я пробовал переделывать это много раз и решил все, кроме автоматической прокрутки.
private void createAutoScrollAreas() {
if (workspacePane == null) {
logger.error("WorkspacePane is not initialized.");
return;
}
double stageWidth = workspacePane.getWidth();
double stageHeight = workspacePane.getHeight();
// Create rectangles for each edge
Rectangle topEdge = new Rectangle(0, 0, stageWidth, EDGE_THRESHOLD);
Rectangle bottomEdge = new Rectangle(0, stageHeight - EDGE_THRESHOLD, stageWidth, EDGE_THRESHOLD);
Rectangle leftEdge = new Rectangle(0, 0, EDGE_THRESHOLD, stageHeight);
Rectangle rightEdge = new Rectangle(stageWidth - EDGE_THRESHOLD, 0, EDGE_THRESHOLD, stageHeight);
// Make them visible for debugging
topEdge.setStyle("-fx-fill: rgba(255, 0, 0, 0.5);");
bottomEdge.setStyle("-fx-fill: rgba(0, 255, 0, 0.5);");
leftEdge.setStyle("-fx-fill: rgba(0, 0, 255, 0.5);");
rightEdge.setStyle("-fx-fill: rgba(255, 255, 0, 0.5);");
// Add event handlers
addAutoScrollHandler(topEdge, true, false, false, false);
addAutoScrollHandler(bottomEdge, false, true, false, false);
addAutoScrollHandler(leftEdge, false, false, true, false);
addAutoScrollHandler(rightEdge, false, false, false, true);
// Add to the workspace pane
MainView.getInstance().addAllToWorkspaceScroll(topEdge, bottomEdge, leftEdge, rightEdge);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79258684/how-do-i-implement-auto-scrolling-when-dragging-objects-inside-of-a-javafx-pane[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия