Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 26

Передвижение скролла

23.02.2020, 19:42. Показов 616. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
https://www.cyberforum.ru/atta... 1582476065

как сделать, чтобы скролл можно было передвигать зажатием лкм в любом месте экрана?
Миниатюры
Передвижение скролла  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2020, 19:42
Ответы с готовыми решениями:

Как реализовать программное передвижение круга?
Как сдвинуть круг ( я новичок, простите. import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import...

Элементарная анимация: передвижение шариков (не могу найти ошибку)
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; ...

Ошибка: выводит не данные скролла, а <body> П.с. использую плагин для скролла jquery-mousewheel
Ошибка: выводит не данные скролла, а &lt;body&gt;. То есть должно выводить переменную, которая отображает перемещение колёсика, а выводит...

1
Модератор
Эксперт Java
 Аватар для alecss131
2881 / 1387 / 411
Регистрация: 11.08.2017
Сообщений: 4,427
Записей в блоге: 2
24.02.2020, 11:42
Попробуйте вот это
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
 
public class DragListener implements MouseListener, MouseMotionListener{
    private JScrollBar hsb;
    private JScrollBar wsb;
    private Point mouseDownCompCoords = null;
    
    DragListener(JScrollPane sp) {
        sp.addMouseMotionListener(this);
        sp.addMouseListener(this);
        hsb = sp.getHorizontalScrollBar();
        wsb = sp.getVerticalScrollBar();
    }
 
    @Override
    public void mouseDragged(MouseEvent e) {
        Point currCoords = e.getPoint();
        int dx = currCoords.x - mouseDownCompCoords.x;
        int dy = currCoords.y - mouseDownCompCoords.y;
        int x = hsb.getValue() - dx;
        int y = wsb.getValue() - dy;
        if (x>hsb.getMinimum() && x<hsb.getMaximum()) {
            hsb.setValue(x);
        }
        if (y>wsb.getMinimum() && y<wsb.getMaximum()) {
            wsb.setValue(y);
        }
    }
 
    @Override
    public void mouseMoved(MouseEvent e) {}
 
    @Override
    public void mouseClicked(MouseEvent e) {}
 
    @Override
    public void mousePressed(MouseEvent e) {
        mouseDownCompCoords = e.getPoint();
    }
 
    @Override
    public void mouseReleased(MouseEvent e) {
        mouseDownCompCoords = null;
    }
 
    @Override
    public void mouseEntered(MouseEvent e) {}
 
    @Override
    public void mouseExited(MouseEvent e) {}
}
И пример использования
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
 
public class ScrollGui {
 
    public static void main(String[] args) {
        new ScrollGui();
    }
    
    ScrollGui() {
        JFrame wnd = new JFrame("Scroll example");
        wnd.setLayout(null);
        wnd.setSize(500, 500);
        JLabel lab1 = new JLabel("1");
        lab1.setBounds(5, 5, 20, 20);
        JPanel panel = new JPanel();
        JScrollPane sp = new JScrollPane(panel);
        new DragListener(sp); //только одна строчка куда передать нужный scroll pane
        JLabel lab2 = new JLabel("2");
        lab2.setBounds(975, 5, 20, 20);
        panel.setLayout(null);
        panel.setPreferredSize(new Dimension(1000, 400));
        panel.setBackground(new Color(180, 100, 50));
        panel.add(lab1);
        panel.add(lab2);
        sp.setBounds(5, 50, 300, 250);
        wnd.add(sp);
        wnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        wnd.setVisible(true);
    }
}
Работает конечно не идеально, но работает и зато есть над чем подумать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2020, 11:42
Помогаю со студенческими работами здесь

Отключение скролла
Делаю сайт с электронными книгами, при перелистывании страницы скролл перекидывает на верх и становится довольно таки не удобно листать...

Праметры скролла
Использую на форме вертикальный скролл. Проблема в том, что я не могу корректно задать ему размеры. То есть промотать надо 100 пикселей, к...

Прокрутка скролла
Предусматривает ли css, возможность применить некоторые свойства к классам, только после того как скрол блока прокручен более чем на... ...

Стилизация скролла
Доброго времени суток! Нужно стилизовать скролл, сделать его подходящим под дизайн - взять с макета. Каким плагином это лучше сделать. Или...

Узнать положение скролла
Привет, мир! Знатоки JS помогите пожалуйста. Как можно узнать на JS положение скролла? На картинке показано, расстояние от точки А до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru