Start JUNG application with an Empty plot or visualisation

Doktor_DOOM

Mitglied
Hi,
i will start my JUNG application without a plotted Graph. If i type in a node, for example "A0" and the node exist then should JUNG plot the graph. I tried the following function.

{panel.remove((Component)vv);}

But this removed the complete visualization component. My code the follwing. I extended an JUNG example.

Java:
/*
 * Copyright (c) 2003, The JUNG Authors
 * All rights reserved.
 *
 * This software is open-source under the BSD license; see either "license.txt"
 * or https://github.com/tomnelson/jungrapht-visualization/blob/master/LICENSE for a description.
 *
 */
package org.jungrapht.samples.tree;

import org.jgrapht.Graph;
import org.jgrapht.graph.DefaultGraphType;
import org.jgrapht.graph.builder.GraphTypeBuilder;
import org.jungrapht.samples.util.GraphLayoutSelector;

import org.jungrapht.samples.util.GraphControlHelpers;
import org.jungrapht.samples.util.GraphHandler;
import org.jungrapht.visualization.VisualizationScrollPane;
import org.jungrapht.visualization.VisualizationViewer;
import org.jungrapht.visualization.control.DefaultGraphMouse;
import org.jungrapht.visualization.layout.algorithms.StaticLayoutAlgorithm;
import org.jungrapht.visualization.renderers.Renderer;
import org.jungrapht.visualization.selection.SelectedState;
import org.jungrapht.visualization.spatial.rtree.RStarLeafSplitter;
import org.jungrapht.visualization.spatial.rtree.RStarSplitter;
import org.jungrapht.visualization.spatial.rtree.RTree;
import org.jungrapht.visualization.spatial.rtree.SplitterContext;
import org.jungrapht.visualization.util.LayoutPaintable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.function.Predicate;



/**
 * Demonstrates the visualization of a Forest using several layout algorithms. An examiner lens
 * performing a hyperbolic transformation of the view is also included.
 *
 * @author Tom Nelson
 */
public class WebSearchInterface extends JPanel implements ActionListener {

    SplitterContext<Object> splitterContext =
            SplitterContext.of(new RStarLeafSplitter<>(), new RStarSplitter<>());

  final DefaultGraphMouse<String, Integer> graphMouse = new DefaultGraphMouse<>();

    VisualizationScrollPane panel;

    @Override
    public void actionPerformed(ActionEvent e) {
      //if(e.getSource() == GraphLayoutSelector.InputtextF)
      //{
        VisualizationViewer<String, Integer> vv;
        //GraphLayoutSelector.InputtextF.getText();
        if(panel != null)remove(panel);  // panel global setzen zum löschen

        vv =
                VisualizationViewer.builder(graph)
                        .layoutAlgorithm(new StaticLayoutAlgorithm<>())
                        .layoutSize(layoutSize)
                        .viewSize(viewSize)
                        .graphMouse(graphMouse)
                        .build();

        vv.setVertexToolTipFunction(Object::toString);

        vv.addPreRenderPaintable(
                new LayoutPaintable.LayoutBounds(
                        vv.getVisualizationModel(), vv.getRenderContext().getMultiLayerTransformer()));

        vv.getSelectedVertexState()
                .addItemListener(new SelectedState.StateChangeListener<>(this::selected, this::deselected));


        vv.getRenderContext().setVertexLabelFunction(Object::toString);
        vv.getRenderContext().setVertexLabelPosition(Renderer.VertexLabel.Position.CNTR);


        Box controls = Box.createHorizontalBox();
        controls.add(
                GraphControlHelpers.getCenteredContainer(
                        "Layout Controls", GraphLayoutSelector.builder(vv).initialSelection(1).build()));
        controls.add(GraphControlHelpers.getCenteredContainer("Zoom",GraphControlHelpers.getZoom(vv)));
        add(controls, BorderLayout.SOUTH);

        //panel = new panel
        panel = new VisualizationScrollPane(vv);
       // panel.a
        add(panel);


      //}
  }

  static Predicate<Integer> edgePredicate = e -> e < 100;


  private static final Logger log = LoggerFactory.getLogger(WebSearchInterface.class);

  Graph<String, Integer> graph;



  /** the visual component and renderer for the graph */

  Dimension layoutSize = new Dimension(700, 700);
  Dimension viewSize = new Dimension(700, 700);

  public WebSearchInterface() {
    setLayout(new BorderLayout());
    // create a simple graph for the demo
    VisualizationViewer<String, Integer> vv;
    Graph<String, Integer> g =
            GraphTypeBuilder.<String, Integer>forGraphType(DefaultGraphType.directedMultigraph())
                    .buildGraph();

    graph = GraphHandler.createForest();


    GraphLayoutSelector.InputtextF.addActionListener(this); //   addDocumentListener(new DocumentListener() {})       addActionListener(this) == "A0")
      actionPerformed(null);

  }



  private void selected(Object o) {
    log.info("selected was {}", o);
  }

  private void deselected(Object o) {
    log.info("deselected: {}", o);
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    Container content = frame.getContentPane();
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    content.add(new WebSearchInterface());
    frame.pack();
    frame.setVisible(true);
  }
}
 

tomnelson

Neues Mitglied
The AddRemoveVertexDemo starts with an empty graph and adds vertices and edges, then it removes them. It may help.
If you post a complete program (including your GraphLayoutSelector) I may be able to help get it working.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H JavaFX Prozess bei dem Start pausieren AWT, Swing, JavaFX & SWT 5
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
Z JavaFX Exception in Application start method AWT, Swing, JavaFX & SWT 2
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
L JavaFX JavaFXThread, launch, start AWT, Swing, JavaFX & SWT 0
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
J Splashscreen Start Anwendung AWT, Swing, JavaFX & SWT 14
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
D JavaFX (WebStart) Graues Fenster beim Start AWT, Swing, JavaFX & SWT 4
C JavaFX Auf Nodes einer FXML-Datei in start Methode zugreifen AWT, Swing, JavaFX & SWT 5
M Start-/ Stop-Button Problem AWT, Swing, JavaFX & SWT 2
J 2D-Grafik JPanel wird erst 1-2sek nach start des JFrames angezeigt AWT, Swing, JavaFX & SWT 3
javampir 3D-Grafik JPCT Start AWT, Swing, JavaFX & SWT 2
D Erste Knoten des JTrees bei Start offen AWT, Swing, JavaFX & SWT 8
propra Wieso wird paintComponent() beim Start 2 malausgeführt? AWT, Swing, JavaFX & SWT 4
M Beim Start von TableEditor Inhalt der Zelle markieren. AWT, Swing, JavaFX & SWT 2
T Divider zentrieren bei Gui Start AWT, Swing, JavaFX & SWT 21
V Start Button und Wert Eingabe in ein Fenster AWT, Swing, JavaFX & SWT 2
B JFrame nach Start leer, größer ziehen zeigt Inhalt an AWT, Swing, JavaFX & SWT 2
A Kompilierfehler: illegal start of expression AWT, Swing, JavaFX & SWT 2
R Eingabeaufforderungs-Fenster beim start schliessen - wie? AWT, Swing, JavaFX & SWT 6
V Daten ins JTable laden bei Start der GUI AWT, Swing, JavaFX & SWT 6
D JUNG change color of an spceific AWT, Swing, JavaFX & SWT 4
D JUNG Repaint function does not work AWT, Swing, JavaFX & SWT 2
C Jung - BinarySearchTree AWT, Swing, JavaFX & SWT 8
H javafx application does not exist AWT, Swing, JavaFX & SWT 16
T Maximieren des Application-Modal Popup-Dialoges+Parent AWT, Swing, JavaFX & SWT 1
N JavaFX Projekt nachträglich zu JavaFX Application machen? AWT, Swing, JavaFX & SWT 1
R javafx erste application AWT, Swing, JavaFX & SWT 12
N JavaFX Logging des JavaFX Application Threads mit Log4J AWT, Swing, JavaFX & SWT 3
S JavaFX Exception in thread "JavaFX Application Thread" AWT, Swing, JavaFX & SWT 3
X JavaFX Einfache FX Application, aber wie alte Features umgehen? AWT, Swing, JavaFX & SWT 10
L JavaFX JavaFX Application mit Preloader sauber runterfahren AWT, Swing, JavaFX & SWT 10
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
E JavaFX JavaFX Application in Thread ausführen AWT, Swing, JavaFX & SWT 1
C JavaFX Application -Icon wird falsch dargestellt AWT, Swing, JavaFX & SWT 7
M Mehrere Fenster innerhalb einer Application AWT, Swing, JavaFX & SWT 3
S Applet Application 2 applet AWT, Swing, JavaFX & SWT 3
C html browser in Application nutzen AWT, Swing, JavaFX & SWT 10
F fertige JApplets in Desktop Application einbinden AWT, Swing, JavaFX & SWT 4
F ansprechende Java Desktop Application AWT, Swing, JavaFX & SWT 2
K run als Java Application nicht als Java Bean AWT, Swing, JavaFX & SWT 2
M SWT YouTubeVideo in Java Application anzeigen lassen AWT, Swing, JavaFX & SWT 6
M 3D-Grafik Java3D-Application als executable .jar exportieren (Eclipse) AWT, Swing, JavaFX & SWT 5
Z Drag and Drop auf Application AWT, Swing, JavaFX & SWT 3
C Problem mit Swing Application Framework - Projekt beim AWT, Swing, JavaFX & SWT 2
J Integration eines www-Browsers in eine Swing-Application AWT, Swing, JavaFX & SWT 7
R Erfahrungen, Forum zu JSR 296 - Swing Application Framework AWT, Swing, JavaFX & SWT 5
M JLayeredPane : Applet - Application AWT, Swing, JavaFX & SWT 4
T Java Application auf X-Server ohne Windowmanager AWT, Swing, JavaFX & SWT 9
A musik-abspielen als application AWT, Swing, JavaFX & SWT 2
A DnD native application -> JAVA AWT, Swing, JavaFX & SWT 2
A Java Application mit Batch starten? AWT, Swing, JavaFX & SWT 9
L Bilder anzeigen in einer Application AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben