А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я Все примеры | Примеры по пакетам |
|
Рисование графа из карты TreeMap//Рисование графа из карты TreeMap
//Перепубликация запрещена
//Drawing graph from TreeMap
//Republishing is denied
package graph;
import java.awt.*;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import java.awt.event.*;
import java.awt.geom.Line2D;
import java.util.Iterator;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.Vector;
import javax.swing.*;
public class LineGraph extends JFrame implements DropTargetListener
{
LinePanel linePanel = new LinePanel();
static Vector< Integer > grcoord=new Vector< Integer >();
static Vector nodes=new Vector();
static Vector< Vector> grinfo=new Vector< Vector>();
static SortedMap< String, Vector< Vector >> graph=
new TreeMap< String, Vector< Vector >>() ;
LineGraph()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
initContentPane();
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private void initContentPane()
{
getContentPane().add(linePanel);
}
class LinePanel extends JPanel
{
LinePanel()
{
super();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
Graphics2D g21 = (Graphics2D) g;
g2.setColor(Color.RED);
Integer refInt = new Integer(123);
Integer x=refInt.valueOf("1");
Integer y=refInt.valueOf("1");
drawNodes(g2);
for (Iterator it=graph.keySet().iterator(); it.hasNext(); ) {
String key = it.next().toString();
x=refInt.valueOf(graph.get(key).get(0).get(0).toString());
y=refInt.valueOf(graph.get(key).get(0).get(1).toString());
g21.setColor(Color.blue);
drawNodeLines(g21,key,x,y);
}
}
public void drawNodes(Graphics g){
Graphics2D g2 = (Graphics2D) g;
Integer refInt = new Integer(123);
Integer x=refInt.valueOf("1");
Integer y=refInt.valueOf("1");
for (Iterator it=graph.keySet().iterator(); it.hasNext(); ) {
String key = it.next().toString();
x=refInt.valueOf(graph.get(key).get(0).get(0).toString());
y=refInt.valueOf(graph.get(key).get(0).get(1).toString());
g.drawOval(x, y, 22, 22);
g2.setBackground(Color.blue);
g2.drawString(key, x, y);
}
}
public void drawNodeLines(Graphics g,String key,Integer x,Integer y){
Graphics2D g2 = (Graphics2D) g;
Integer refInt = new Integer(123);
Integer x1=refInt.valueOf("1");
Integer y1=refInt.valueOf("1");
String key2="";
String key3="";
key2= graph.get(key).get(1).get(0).toString();
for(int i=0;i< graph.get(key).get(1).size();i++){
key3= graph.get(key).get(1).get(i).toString();
x1=refInt.valueOf(graph.get(key3).get(0).get(0).toString());
y1=refInt.valueOf(graph.get(key3).get(0).get(1).toString());
g2.drawLine(x1+11, y1+11, x+11, y+11);
}
}
public Dimension getPreferredSize()
{
return new Dimension(400, 350);
}
}
public void dragEnter(DropTargetDragEvent dtde) {
System.out.println("Drag Enter");
}
public void dragExit(DropTargetEvent dte) {
System.out.println("Drag Exit");
//tb.getSelectedRow();
}
public void dragOver(DropTargetDragEvent dtde) {
System.out.println("Drag Over");
}
public void dropActionChanged(DropTargetDragEvent dtde) {
System.out.println("Drop Action Changed");
}
public void drop(DropTargetDropEvent dtde) {
}
public static void main(String[] args)
{
/////////////
grcoord=new Vector();
grcoord.add(11);
grcoord.add(11);
nodes=new Vector();
nodes.add("b");
// nodes.add("c");
// nodes.add("d");
grinfo=new Vector< Vector>();
grinfo.add(grcoord);
grinfo.add(nodes);
graph.put("a",grinfo);
/////////////////
grcoord=new Vector();
grcoord.add(175);
grcoord.add(22);
nodes=new Vector();
nodes.add("a");
nodes.add("c");
nodes.add("d");
grinfo=new Vector< Vector>();
grinfo.add(grcoord);
grinfo.add(nodes);
graph.put("b",grinfo);
//////////////
grcoord=new Vector();
grcoord.add(11);
grcoord.add(55);
nodes=new Vector();
// nodes.add("a");
nodes.add("b");
nodes.add("d");
grinfo=new Vector< Vector>();
grinfo.add(grcoord);
grinfo.add(nodes);
graph.put("c",grinfo);
/////////
grcoord=new Vector();
grcoord.add(55);
grcoord.add(75);
nodes=new Vector();
nodes.add("b");
nodes.add("c");
// nodes.add("a");
grinfo=new Vector< Vector>();
grinfo.add(grcoord);
grinfo.add(nodes);
graph.put("d",grinfo);
System.out.println( graph);
String str="1";
Integer refInt = new Integer(123);
Integer x=refInt.valueOf("1");
Integer y=refInt.valueOf("1");
System.out.println(graph.get("a").get(0).get(0).toString());
for (Iterator it=graph.keySet().iterator(); it.hasNext(); ) {
String key = it.next().toString();
x=refInt.valueOf(graph.get(key).get(0).get(0).toString());
System.out.println("x = "+x);
y=refInt.valueOf(graph.get(key).get(0).get(1).toString());
System.out.println("y = "+y);
}
new LineGraph();
}
}
|
|
|
|
|