public void paint( Graphics g)
    {
        super.paint(g);
        
        Color grey = new Color(0.8f, 0.8f, 0.8f);
        Color black = new Color(0f, 0f, 0f);
        
        Util.LinkedListSingleChained<Integer[]> posTable = 
            new Util.LinkedListSingleChained<Integer[]>();
                
        int x = 50;
        int y = 50;
        int dia = 30;
        
        for( Knoten kn : graph.listKnoten() )
        {
            if( kn == null) break;
            else
               posTable.append( new Integer[] {x,y} );
            
            y += 150;
            if(y > 450) {
                x += 150;
                y = 50;
            }
        }
            
        for( Integer[] kante : graph.listKanten() )
        {
           Integer[] pos1 = posTable.getElement( kante[0] );
           Integer[] pos2 = posTable.getElement( kante[1] );

           g.drawLine(pos1[0]+dia/2, pos1[1]+dia/2, pos2[0]+dia/2, pos2[1]+dia/2);
        }
        
        int i = 0;
        for( Integer[] pos : posTable)
        {
           x = pos[0];
           y = pos[1];
           
           g.setColor(grey);
           g.fillOval(x, y, dia, dia);
           g.setColor(black);
           g.drawOval(x, y, dia, dia);
           g.drawString( graph.listKnoten()[i++].getElement().toString(), x+dia/2, y+dia/2);
        }
        
        
    }