Когда я увеличиваю график, половина его исчезает. Я пытался изменить ViewPort без каких-либо результатов. Это код.
public static void printGraph(final Program program) {
final ViewPanel graphViewNew;
final Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
final JFrame mainFrame = new JFrame();
SCGraph graph = new SCGraph(new SingleGraph("CFG"), pred, succ);
Viewer viewer;
program.graphLayout(graph);
program.printGraph(graph);
viewer = new Viewer(graph.getGraphForView(), Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
graphViewNew = viewer.addDefaultView(false);
mainFrame.getContentPane().add(graphViewNew);
mainFrame.setBounds(0, 0, 1300, 1300);
mainFrame.setLocation(dim.width / 2 - mainFrame.getSize().width / 2,
dim.height / 2 - mainFrame.getSize().height / 2);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setVisible(true);
graphViewNew.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent mwe) {
zoomGraphMouseWheelMoved(mwe, graphViewNew);
}
});
}
, и это функция, которая обрабатывает события:
public static void zoomGraphMouseWheelMoved(MouseWheelEvent mwe, ViewPanel view_panel) {
if (ALT_MASK != 0) {
if (mwe.getWheelRotation() > 0) {
double new_view_percent = view_panel.getCamera().getViewPercent() + 0.05;
view_panel.getCamera().setViewPercent(new_view_percent);
} else if (mwe.getWheelRotation() < 0) {
double current_view_percent = view_panel.getCamera().getViewPercent();
if (current_view_percent > 0.05) {
view_panel.getCamera().setViewPercent(current_view_percent - 0.05);
}
}
}
}
Более того, у меня та же проблема, если я перемещаюсь в представление со встроенным клавиша (вверх, вниз, влево, вправо, страница вниз, страница вверх).
Здесь изображение до того, как я нажму правую клавишу. Здесь то же самое после.