好的,我正在用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(transformation)行之前,但在那之后,如果我滚动,网格线就不会移动。
因此,问题是:是否有一种方法可以绘制网格线并避免上述行为?目标是将网格与图表上的其他元素一起滚动。
- 列表项