我使用的是 JUNG 框架和 FRLayout。像这样:
layout = new FRLayout<String, Number>(graph);
preferredSize = new Dimension(600, 600);
final VisualizationModel<String, Number> visualizationModel =
new DefaultVisualizationModel<String, Number>(layout, preferredSize);
vv = new VisualizationViewer<String, Number>(visualizationModel, preferredSize);
我已将它放在 GraphZoomScrollPane 中。我可以放大、缩小、四处移动图表,直到它看起来就像我想要的那样,但我希望在我启动 Swing 应用程序时它是那样的。
我真正想要的是图表的 PreferredSize 根据图表大小动态调整,这样当我加载大图表时,我不必在顶点不再重叠之前放大十亿倍。
不适合我的面板的内容通常应该“消失”在滚动条后面。
最佳答案
您可以使用以下方法以编程方式扩展它:
double amount = 1.0; // Or negative to zoom out.
ScalingControl scaler = new CrossoverScalingControl();
scaler.scale(vv, amount > 0 ? 1.1f : 1 / 1.1f, vv.getCenter());
注意:我之前从 StackOverflow 得到这个(所以这段代码的功劳不是我的),但我似乎找不到原始问题。
编辑:
我找到了:
关于java - JUNG Layout 的首选尺寸,基于图形的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12971753/