Index: src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java
===================================================================
--- src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java	(revision 22)
+++ src/main/java/weka/clusterers/forMetisMQI/GraphAlgorithms.java	(revision 23)
@@ -11,4 +11,5 @@
 import weka.clusterers.forMetisMQI.graph.UndirectedGraph;
 import weka.clusterers.forMetisMQI.util.CoarserGraphElement;
+import weka.clusterers.forMetisMQI.util.GraphsFrame;
 import weka.clusterers.forMetisMQI.util.Util;
 
@@ -81,4 +82,5 @@
 	 */
 	static public Set<Set<Node>> metisMqi(UndirectedGraph g, int numberOfCluster, int sizeFinerGraph, boolean randomBisection) {
+		GraphsFrame gf = new GraphsFrame("Prova");
 		System.out.println("Vertex count: " + g.getVertexCount());
 		System.out.println("Edges count: " + g.getEdgeCount());
@@ -93,5 +95,5 @@
 		Set<Set<Node>> clusters = new HashSet<Set<Node>>();
 		UndirectedGraph gclone = g.clone();
-//		Util.viewGraph(g);
+		gf.addPanel(Util.panelGraph(gclone));
 		for (int i = 0; i < numberOfCluster; i++) {
 			Bisection bisection = null;
@@ -125,5 +127,6 @@
 			}
 		}
-		Util.viewClusters(gclone, clusters);
+		gf.addPanel(Util.panelClusters(gclone, clusters));
+		gf.setVisible(true);
 		return clusters;
 	}
Index: src/main/java/weka/clusterers/forMetisMQI/util/GraphsFrame.java
===================================================================
--- src/main/java/weka/clusterers/forMetisMQI/util/GraphsFrame.java	(revision 23)
+++ src/main/java/weka/clusterers/forMetisMQI/util/GraphsFrame.java	(revision 23)
@@ -0,0 +1,64 @@
+package weka.clusterers.forMetisMQI.util;
+
+import java.awt.CardLayout;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+public class GraphsFrame extends JFrame {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int numberOfPanels = 0;
+
+	private JPanel graphPanel = null;
+	private JPanel buttonPanel = null;
+	private JButton nextButton = null;
+	private JButton prevButton = null;
+
+	public GraphsFrame(String name) {
+		super(name);
+		setBounds(new Rectangle(800, 700));
+
+		graphPanel = new JPanel();
+		graphPanel.setName("graphPanel");
+		graphPanel.setBounds(0,40,800, 660);
+		graphPanel.setLayout(new CardLayout());
+		getContentPane().add(graphPanel);
+
+		buttonPanel = new JPanel();
+		nextButton = new JButton(">>");
+
+		nextButton.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				CardLayout c = (CardLayout) graphPanel.getLayout();
+				c.next(graphPanel);
+			}
+		});
+		prevButton = new JButton("<<");
+		prevButton.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				CardLayout c = (CardLayout) graphPanel.getLayout();
+				c.previous(graphPanel);
+			}
+		});
+		buttonPanel.setBounds(0, 0, 800, 40);
+		buttonPanel.add(prevButton);
+		buttonPanel.add(nextButton);
+		getContentPane().add(buttonPanel);
+	}
+
+	public void addPanel(JPanel panel) {
+		graphPanel.add(panel, Integer.toString(numberOfPanels));
+		numberOfPanels++;
+	}
+}
Index: src/main/java/weka/clusterers/forMetisMQI/util/Util.java
===================================================================
--- src/main/java/weka/clusterers/forMetisMQI/util/Util.java	(revision 22)
+++ src/main/java/weka/clusterers/forMetisMQI/util/Util.java	(revision 23)
@@ -11,4 +11,5 @@
 
 import javax.swing.JFrame;
+import javax.swing.JPanel;
 
 import org.apache.commons.collections15.Transformer;
@@ -19,5 +20,4 @@
 import weka.clusterers.forMetisMQI.graph.UndirectedGraph;
 import edu.uci.ics.jung.algorithms.layout.FRLayout;
-import edu.uci.ics.jung.algorithms.layout.ISOMLayout;
 import edu.uci.ics.jung.algorithms.layout.Layout;
 import edu.uci.ics.jung.graph.Graph;
@@ -27,12 +27,12 @@
 public class Util {
 	
-	public static void viewCluster(Graph<Node, Edge> g, Set<Node> cluster) {
+	public static JPanel panelCluster(Graph<Node, Edge> g, Set<Node> cluster) {
 		Set<Set<Node>> clusters = new HashSet<Set<Node>>();
 		clusters.add(cluster);
-		viewClusters(g, clusters);
+		return panelClusters(g, clusters);
 	}
 	
 	
-	public static void viewClusters(Graph<Node, Edge> g, Set<Set<Node>> clusters) {
+	public static JPanel panelClusters(Graph<Node, Edge> g, Set<Set<Node>> clusters) {
 		Layout<Node, Edge> layout = new FRLayout<Node, Edge>(g);
 		layout.setSize(new Dimension(800, 600)); // sets the initial size of the space
@@ -85,12 +85,8 @@
 				new ToStringLabeller<Edge>());
 		vv.getRenderContext().setVertexFillPaintTransformer(vertexPaint);
-		JFrame frame = new JFrame("Graph View");
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.getContentPane().add(vv);
-		frame.pack();
-		frame.setVisible(true);
+		return vv;
 	}
 	
-	public static void viewGraph(Graph<Node, Edge> g){
+	public static JPanel panelGraph(Graph<Node, Edge> g){
 		Layout<Node, Edge> layout = new FRLayout<Node, Edge>(g);
 		layout.setSize(new Dimension(800,600)); // sets the initial size of the space
@@ -101,12 +97,8 @@
 		vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<Node>());
 		vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller<Edge>());
-		JFrame frame = new JFrame("Simple Graph View");
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.getContentPane().add(vv);
-		frame.pack();
-		frame.setVisible(true);
+		return vv;
 	}
 	
-	public static void viewFlowGraph(Graph<Node, Edge> g, Map<Edge, Number> edgeFlowMap){
+	public static JPanel panelFlowGraph(Graph<Node, Edge> g, Map<Edge, Number> edgeFlowMap){
 		class EdgeTransformer implements Transformer<Edge,String> {
 			Map<Edge,Number> edgeFlowMap = null;
@@ -126,9 +118,5 @@
 		vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<Node>());
 		vv.getRenderContext().setEdgeLabelTransformer(new EdgeTransformer(edgeFlowMap));
-		JFrame frame = new JFrame("Simple Graph View");
-		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-		frame.getContentPane().add(vv);
-		frame.pack();
-		frame.setVisible(true);
+		return vv;
 	}
 	
