Хорошо, я реализую редактор потоковых диаграмм на Java. Моя цель - предоставить возможность отображать линии сетки на поверхности рисования. Я частично сделал это, чтобы работать:
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
// Scrolling
g2.transform(transformation);
// Step one: draw grid
if(showGrid)
{
// Horizontal grid lines
for(int i = -1; i < getSize().getWidth(); i += 50)
{
g2.drawLine(i, 0, i, (int)getSize().getHeight());
}
// Vertical grid lines
for(int i = -1; i < getSize().getHeight(); i += 50)
{
g2.drawLine(0, i, (int)getSize().getWidth(), i);
}
}
// Step two: draw symbols
// ...
}
Результаты таковы:
Но, если прокрутить диаграмму вниз или вверх, я получу это:
Как видно, диаграмма прокручивается, но не сетка. Я также пытался поместить код первого шага перед строкой g2.transform (преобразование), но после этого, если я прокручиваю, линии сетки не перемещаются.
Итак, вопрос: есть ли способ нарисовать линии сетки и избежать упомянутого поведения? Цель состоит в том, чтобы прокрутить сетку вместе с другими элементами на диаграмме.
- Элемент списка