honrisse | ense29 a écrit :
Premièrement merci;
ce que je veut faire est à chaque clic du bouton je réinitialise mon graphe et je créer un nouveau,mais l'affichage n'est pas actualisé.
|
Quelque chose comme ça peut être :
Code :
- package gui;
- import java.awt.BorderLayout;
- import java.awt.Dimension;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.SwingUtilities;
- import org.graphstream.graph.Graph;
- import org.graphstream.graph.implementations.SingleGraph;
- import org.graphstream.ui.swingViewer.View;
- import org.graphstream.ui.swingViewer.Viewer;
- public class Main2 extends JFrame {
- public Graph graph;
- public JPanel panel1;
- public boolean flipValue;
- public Main2() {
- super("GraphStream Window" );
- flipValue = false;
- graph = new SingleGraph("graph" );
- initComponents();
- setMinimumSize(new Dimension(640, 480));
- setSize(640, 480);
- setLocationRelativeTo(null);
- setVisible(true);
- }
- private void initComponents() {
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- graph.addNode("N0" );
- graph.addNode("N1" );
- graph.addEdge("N0N1","N0","N1" );
-
- panel1 = new JPanel();
- Viewer vue = new Viewer(graph, Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
- vue.enableAutoLayout();
-
- View view = vue.addDefaultView(false);
- panel1.setLayout(new BorderLayout());
- panel1.add(view, BorderLayout.CENTER);
-
- JButton button = new JButton("Flip graph" );
- button.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent arg0) {
- flipValue = !flipValue;
- if(flipValue) {
- graph = new SingleGraph("tutorial 1" );
- graph.setStrict(false);
- graph.setAutoCreate(true);
- graph.addEdge("AB", "A", "B" );
- graph.addEdge("BC", "B", "C" );
- graph.addEdge("CA", "C", "A" );
- graph.addEdge("AD", "A", "D" );
- graph.addEdge("DE", "D", "E" );
- graph.addEdge("DF", "D", "F" );
- graph.addEdge("EF", "E", "F" );
- } else {
- graph = new SingleGraph("graph" );
- graph.addNode("N0" );
- graph.addNode("N1" );
- graph.addEdge("N0N1","N0","N1" );
- }
-
- Viewer vue = new Viewer(graph, Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
- vue.enableAutoLayout();
-
- View view = vue.addDefaultView(false);
- panel1.removeAll();
- panel1.add(view, BorderLayout.CENTER);
- validate();
- }
- });
-
- JPanel panel2 = new JPanel();
- panel2.add(button);
- add("Center", panel1);
- add("South", panel2);
- }
- public static void main(String[] args) {
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- new Main2();
- }
- });
- }
- }
|
|