ho questo problema:
ho la mia applicazione grafica, creo una finestra e poi voglio disegnare un pannello son sfondo bianco e alcuni pulsanti/label sopra..

quindi finita la creazione della finestra faccio:

codice:
JLabel end_bottom = new JLabel ("End");
		end_bottom.setBounds(670, 510, 50, 20);
		this.add(end_bottom);label.add(end_bottom);
		bianco = new JPanel();
		bianco.setBounds(150, 10, 800, 600);
		bianco .setBackground(Color.WHITE);
		this.add(bianco);
dove in pratica label mi gestisce tutte le label...poi graph è un pannello bianco che aggiungo al mio frame...e funziona tutto correttamente

poi ho delle funzioni che mi stampano nuovi oggetti in bsae a determinati eventi...per esempio ho un tasto che mi elimina tutti gli elementi presente nel pannello bianco:

codice:
	public void remove_all() {		
			this.remove(bianco);
			for (int i=0;i<button.total();i++){
				MyButton temp = button.get(i);
				this.remove(temp);
			}
			for (int i=0;i<label.total();i++){
				JLabel temp = label.get(i);
				this.remove(temp);
			}
			this.remove(lines);
			this.repaint();
	}
dove in pratica...rimuovo il pannello bianco...rimuovo tutti i pulsanti, le label e le linee
e funziona tutto...poi ho una procedura identica al contrario che riscrive tutto e funziona correttamente

il mio problema però è che ho questa funzione:

codice:
	private void add_buttons(String code, int type){		
		MyButton alto = new MyButton(num_button,2); num_button++;
		alto.setBounds(210, 491, 10, 10);
		alto.addActionListener(connectActionInput);
		this.add(alto);button.add(alto);
		MyButton input_output = new MyButton(num_button,type); num_button++;
		input_output.set_param(code);
		input_output.setBounds(175,500, 80, 20);
		input_output.setSelected(true);
		if (type==0) input_output.setText("Input"); 
		else input_output.setText("Output");
		if (type==0) input_output.setBackground(Color.GREEN); 
		else input_output.setBackground(Color.YELLOW);
		this.add(input_output); button.add(input_output);
		input_output.addActionListener(inputAction1);
		MyButton down = new MyButton(num_button,2); num_button++;
		down.setBounds(210, 519, 10, 10);
		down.addActionListener(connectActionOutput);
		down.setVisible(true);
		this.add(down);button.add(down);
		this.repaint();
	}
dove quindi...creo 3 button...setto le varie dimensioni...setto le varie azioni x i pulsanti..poi li aggiungo alla finestra...e faccio repaint...solo che non funziona...o meglio
sul pannello non compare nulla...ma se passo con il mouse sopra alla posizione dove dovrebbero stare questi 3 pulsanti compaiono magicamente!!!! oppure se uso la procedura di prima...e poi la sua inversa (cioè tolgo tutto e poi rimetto) compaiono nuovamente magicamente

secondo voi perchè non compaiono subito? cioè perchè devo passare sopra con il mouse x visualizzarli? dove sbaglio? ho provato in tanti modi...tipo rimuovere tutto...aggiungere i 3 pulsanti e aggiungere la roba vecchia...ma è sempre uguale..