Hallo zusammen,
ich habe gerade erfolgreich das zentrierte Zoomen in einem JScrollPane implementiert. Folgenden Code verwende ich dafür:
Auch die Größe des JPanels, das in der JScrollPane enthalten ist, passe ich an. Funktioniert auch alles wunderbar, bis auf die Tatsache, dass die Scrollbars nicht richtig skalieren. Damit meine ich, das sie beim zentrierten Zoomen beispielsweise ganz oben bzw. ganz links bleiben. Dadurch verschwindet irgendwann das selbst gezeichneten am oberen Rand, da ich nicht nach oben scrollen kann.
Kennt das Problem jemand und weiß eine Lösung, wie ich die ScrollBars richtig mit berechnen kann?
Viele Grüße,
Fabian
ich habe gerade erfolgreich das zentrierte Zoomen in einem JScrollPane implementiert. Folgenden Code verwende ich dafür:
Java:
AffineTransform old= graphics2D.getTransform();
AffineTransform tr2 =AffineTransform.getTranslateInstance(-x, -y);
AffineTransform tr= AffineTransform.getScaleInstance(scale,scale);
tr.concatenate(tr2); tr2=tr;
tr =AffineTransform.getTranslateInstance(x, y);
tr.concatenate(tr2); tr2=tr;
tr= new AffineTransform(old);
tr.concatenate(tr2); tr2=tr;
graphics2D.setTransform(tr2);
// Das Zeichen der Shapes.
graphics2D.setTransform(old);
Auch die Größe des JPanels, das in der JScrollPane enthalten ist, passe ich an. Funktioniert auch alles wunderbar, bis auf die Tatsache, dass die Scrollbars nicht richtig skalieren. Damit meine ich, das sie beim zentrierten Zoomen beispielsweise ganz oben bzw. ganz links bleiben. Dadurch verschwindet irgendwann das selbst gezeichneten am oberen Rand, da ich nicht nach oben scrollen kann.
Kennt das Problem jemand und weiß eine Lösung, wie ich die ScrollBars richtig mit berechnen kann?
Viele Grüße,
Fabian