Направление скольжения JSlider - PullRequest
0 голосов
/ 08 июня 2011

Я хотел бы знать, возможно ли узнать, по какой стороне слайдера движется большой палец. Я должен реализовать функцию масштабирования на основе ползунка, и я могу увеличивать, но не уменьшать масштаб.

if (!zoomSlider.getValueIsAdjusting()) {
            double minY = model.getMinY();
            double maxY = model.getMaxY();

            double distanceY = maxY - minY;

            double posY = minY + distanceY / 2.0;

    if(?) {
            distanceY /= zoomSlider.getValue();
    } else {
    distanceY *= zoomSlider.getValue();
    }

            minY = posY - distanceY / 2.0;
            maxY = posY + distanceY / 2.0;

            changeMaxY(maxY);
    changeMinY(minY);
        }

Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 июня 2011

Я хочу умножить на 1, 2, 3 или 4, когда я иду вправо, и разделить на 1, 2, 3 или 4, когда я иду влево.

Отслеживайте «предыдущее» значение ползунка, чтобы вы могли сравнить его с «текущим» значением ползунка. Когда значение увеличивает ваше умножение, когда оно уменьшается, вы делитесь.

0 голосов
/ 08 июня 2011

Я думаю, я знаю, что вы хотите. Ползунок с большим пальцем посередине, и при перемещении влево или вправо он масштабируется до тех пор, пока вы не отпустите кнопку мыши.

Если это так, то вы должны установить максимум для вашего ползунка, например 9. Затем в вашем цикле (я полагаю, вы находитесь в цикле, в противном случае вы создаете обработчик события mouserelease), вы всегда устанавливаете значение на 5. Когда скользя, вы берете текущее значение и вычитаете 5 из него. Теперь результат этого вычитания должен представлять скорость вашего масштабирования. 0 означает отсутствие масштабирования. Все положительное означает увеличение, а все отрицательное означает уменьшение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...