Witam. Mam problem z grafiką w javie. Dopiero praktycznie z tym zaczynam i mam pewien problem. Mam napisany program Red Black Trees i chciałbym na początek aby za pomocą metody Inorder po kolei rysowało mi słupki. Tak po około 1s każdy. Niestety nie wiem czemu słupki mi się rysują, ale dopiero wtedy kiedy metoda Inorder przejdzie po wszystkich węzłach, tak to widzę tylko puste okienko. Debugowałem System.out.println i w konsoli wartości węzłów wybijają się normalnie po sekundzie.
To częściowy kod:

public class Tree extends JComponent{
public int yeah = 0;
	public int Weight = 400;
	public int Hight = 200;

(....);

        Tree(){
	        	this.setPreferredSize(new Dimension(Weight, Hight));
	         }
	private void InorderTreeWalk(Node z, Graphics p) {
		try
    	        {
	                if(z != nil) {
	        	        InorderTreeWalk(z.left,p);
	        	
	        		if(z.color == COLOR.BLACK)
	        		{ 
	            		System.out.println(z.key+"  czarny");
	                	p.setColor(Color.BLACK);
	                	p.fillRect(yeah, 0,5, 3*z.key.hashCode());
	                	yeah=yeah+6;
		                }
		                 else {
		            		        System.out.println(z.key+" czerwony");
		                	        p.setColor(Color.RED);
		                	        p.fillRect(yeah, 0,5, 3*z.key.hashCode());
		                        	yeah=yeah+6;
		                 }
	        		
	                    InorderTreeWalk(z.right,p);
	        }
	        Thread.sleep(1000);
            	}
    	        catch(Exception e){	
    	        }
        
        }
	public void paint(Graphics p){
		InorderTreeWalk(root,p);
	}
}
//---------------------------------------------------------------------------
public class Main extends JFrame{
	public static void main (String args[]) {		
		
		Main window = new Main();
		window.setVisible(true);
		System.out.println("usunalem element 41");
		
	}
	Main(){
		JPanel content = new JPanel();
		setLayout(new GridLayout(1,1));
        content.setLayout(new GridLayout(1,1));
        
        Tree drawing = new Tree();
        
        drawing.insert(41);
        drawing.insert(23);
        drawing.insert(31);
        drawing.insert(12);
        drawing.insert(19);
        drawing.insert(8);
   
        content.add(drawing);
        this.setContentPane(content);
        this.setTitle("yayyaya");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();
        this.setLocationRelativeTo(null);

	}
}
 

Metodą insert wsadzam węzły w drzewo.
I często metoda paint tak jakby robiła mi się po kilka razy. Nie mam pojęcia co zrobić, aby te słupki były dodawane na bieżąco. Proszę o pomoc.