2013-08-03 2 views
2

Я хочу визуализировать некоторые графики в кадре (на самом деле JInternalFrame, так как у меня есть и другие материалы за пределами графика) с использованием библиотеки JUNG. Есть много кодов в моем классе, но я просто дать короткую версию, как я создаю компоненты, чтобы показать график:JUNG scrollable VisualizationViewer

  1. Создать макет графа, в зависимости от типа графика, у меня есть разный созданных макетов
  2. Создайте визуализатор с параметром layout.
  3. Создайте GraphZoomScrollPane, содержащий VisualitationViewer.
  4. Установите GraphZoomScrollPane как область содержимого кадра.

И конечный эффект: на нем показаны полосы прокрутки, но даже если граф больше кадра, полосы прокрутки не включены. Если я уменьшу размер фрейма, полосы прокрутки будут включены, но я не могу прокрутить, чтобы увидеть весь график. Поэтому, независимо от того, насколько велика рамка, я не вижу весь график.

Я также попытался установить размер макета, размер VisualizationViewer, но не работал.

Может кто-нибудь, пожалуйста, скажите мне, что я пропустил?

+0

Можете ли вы опубликовать небольшой, исполняемый пример? – sdasdadas

+0

@sdasdadas Что вы имеете в виду именно? Вы хотите запустить пример моего обходного пути? Или пример, основанный на том, что я описал в вопросе? –

+0

Последнее, пример вашей проблемы, поможет мне понять, что происходит. Одна картинка стоит тысячи слов. :) – sdasdadas

ответ

0

Нашли обходной путь, по крайней мере моей конкретной ситуации:

Я реализовал VisualizationViewer.GraphMouse, когда щелчки мыши на пустом пространстве, переместить весь график, так что можно увидеть невидимую часть. Поэтому панель прокрутки не нужна.

Но если панель s scroll действительно нужна, проблема по-прежнему остается открытой.

1

В случае, если кто еще нуждается в решении:

JFrame jFrame=new JFrame("Graph"); 
Dimension preferredGraphSize=new Dimension(2500,2500); 
Layout<V,E> layout=new FRLayout<>(graph, preferredGraphSize); 
VisualizationViewer<V,E> visualizationViewer=new VisualizationViewer<>(layout, preferredGraphSize); 

ScrollPane scrollPane=new ScrollPane(); 
scrollPane.add(visualizationViewer); 
jFrame.getContentPane().add(scrollPane); 
jFrame.pack(); 
jFrame.setVisible(true); 

Мы устанавливаем нужный размер для размещения и VisualizationViewer, завернуть VisualizationViewer внутри ScrollPane и прокрутке работ.

+0

Спасибо! Но это на самом деле первое решение, которое я пробовал, и это не сработало! Затем я перешел на «GraphZoomScrollPane», который должен использоваться вместо 'JScrollPane' в соответствии с документом JUNG, и он снова не работает! –

Смежные вопросы