Выделение области вершин мышью GraphStream

157
16 августа 2018, 15:00

Есть JFrame внутри которого расположен JButton и SingleGraph. На viewer'e графа стоит AutoLayout. Поскольку не нашёл среди стандартных методов выделения, для viewer'a реализовал слушателя согласно гайду. Переопределил методы зажатия:

public void mousePressed(MouseEvent e) {
        x1 = MouseInfo.getPointerInfo().getLocation().x;
        y1 = MouseInfo.getPointerInfo().getLocation().y;
        //vpipe.pump();
        //System.out.println("Pump it!");
    }  

И отпускания мыши:

public void mouseReleased(MouseEvent e) {
        x2 = MouseInfo.getPointerInfo().getLocation().x;
        y2 = MouseInfo.getPointerInfo().getLocation().y;
        Collection<GraphicElement> selected = vw.allNodesOrSpritesIn(x1,y1,x2,y2);
        selected.forEach((c)->c.setAttribute("ui.label","Selected"));
        vpipe.pump();
    }

Но при этом метки не устанавливаются, не могу понять в чём проблема.

Answer 1

MouseInfo.getPointerInfo().getLocation() возвращает абсолютную позицию, а allNodesOrSpritesIn(x1,y1,x2,y2) относительную. Решением является получение относительной позиции курсора от MouseEvent через getX() и getY().

READ ALSO
Mssql и Postgresql jdbc drivers внутри одного jar файла

Mssql и Postgresql jdbc drivers внутри одного jar файла

Мне в моем приложении надо уметь общаться и с postgresql и c mssqlВ начале приложение обращается k postgre, потом уже к mssql

174
Обновить TextView после закрытия alerdDialog

Обновить TextView после закрытия alerdDialog

В каком направлении копать? Есть активити, при нажатии на кнопку вызывается alerdDialog в котором выходит список (массив) цифр, при выборе меняется...

173
Наложение цвета на background-image

Наложение цвета на background-image

у меня есть header, как наложить цвет именно на картинку в фоне?

172
Стрелка при наведении

Стрелка при наведении

Здравствуйте? Каким методом реализуется подобное? При наведении должна появляться стрелка в виде треугольника как на скриншоте?

165