Hallo,
ich habe mich etwas mit dem JGraph beschäftigt um einen Graphen zu zeichnen.
Bisher habe ich den Code wie unten (und unter: http://www.jgraph.com/getstarted.html ) nur als Frame zum Laufen gebracht.
Was muss ich tun um den Code so umzubauen um ein Applet daraus zu machen?
Geht das einfach durch init() und paint(), aber wie und was muss ich dann zeichnen? Wie bekomm ich die zwei Vertex und die Edge auf das Applet?
Danke und Gruß :roll:
ich habe mich etwas mit dem JGraph beschäftigt um einen Graphen zu zeichnen.
Bisher habe ich den Code wie unten (und unter: http://www.jgraph.com/getstarted.html ) nur als Frame zum Laufen gebracht.
Was muss ich tun um den Code so umzubauen um ein Applet daraus zu machen?
Geht das einfach durch init() und paint(), aber wie und was muss ich dann zeichnen? Wie bekomm ich die zwei Vertex und die Edge auf das Applet?
Code:
import org.jgraph.JGraph;
import org.jgraph.graph.*;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.BorderFactory;
import java.util.Hashtable;
import java.awt.Rectangle;
import java.awt.Color;
import java.util.Map;
public class HelloWorld {
public static void main(String[] args) {
// Construct Model and Graph
//
GraphModel model = new DefaultGraphModel();
JGraph graph = new JGraph(model);
graph.setSelectNewCells(true);
// Create Nested Map (from Cells to Attributes)
//
Map attributes = new Hashtable();
// Create Hello Vertex
//
DefaultGraphCell hello = new DefaultGraphCell("Hello");
// Create Hello Vertex Attributes
//
AttributeMap helloAttrib = model.createAttributes();
attributes.put(hello, helloAttrib);
// Set bounds
Rectangle helloBounds = new Rectangle(20, 20, 40, 20);
GraphConstants.setBounds(helloAttrib, helloBounds);
// Set black border
GraphConstants.setBorderColor(helloAttrib, Color.black);
// Add a Port
//
DefaultPort hp = new DefaultPort();
hello.add(hp);
// Create World Vertex
//
DefaultGraphCell world = new DefaultGraphCell("World");
// Create World Vertex Attributes
//
AttributeMap worldAttrib = model.createAttributes();
attributes.put(world, worldAttrib);
// Set bounds
Rectangle worldBounds= new Rectangle(140, 140, 40, 20);
GraphConstants.setBounds(worldAttrib , worldBounds);
// Set fill color
GraphConstants.setBackground(worldAttrib, Color.orange);
GraphConstants.setOpaque(worldAttrib, true);
// Set raised border
GraphConstants.setBorder(worldAttrib,
BorderFactory.createRaisedBevelBorder());
// Add a Port
//
DefaultPort wp = new DefaultPort();
world.add(wp);
// Create Edge
//
DefaultEdge edge = new DefaultEdge();
// Create Edge Attributes
//
AttributeMap edgeAttrib = model.createAttributes();
attributes.put(edge, edgeAttrib);
// Set Arrow
int arrow = GraphConstants.ARROW_CLASSIC;
GraphConstants.setLineEnd(edgeAttrib , arrow);
GraphConstants.setEndFill(edgeAttrib, true);
// Connect Edge
//
ConnectionSet cs = new ConnectionSet(edge, hp, wp);
Object[] cells = new Object[]{edge, hello, world};
// Insert into Model
//
model.insert(cells, attributes, cs, null, null);
// Show in Frame
//
JFrame frame = new JFrame();
frame.getContentPane().add(new JScrollPane(graph));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
Danke und Gruß :roll: