Ragazzi rispolvero questa discussione, perché qualcosa sono riuscito a fare ma ho ancora dei problemini di visualizzazione.
Allora, spiego meglio il punto in cui sono arrivato:
1) Ho un JFrame principale in cui ho settato il layout a null (quindi nel frame vado a posizionare a mano quello che voglio).
2) Ho creato una classe di nome Conflict che estende JPanel (quindi gli oggetti Conflict sono a tutti gli effetti dei JPanel)
3) Ho aggiunto una classe ConflictRunnable che implementa Runnable e serve a creare nuovi thread che fanno muovere i pannelli Conflict in questo modo:
codice:
public class ConflictRunnable implements Runnable
{
//il pannello che passo qui è il contentPane del frame principale
public ConflictRunnable(Conflict aConflict, Component aPanel)
{
conflict = aConflict;
panel = aPanel;
}
public void run()
{
for(int i = 0; i < panel.getMaximumSize().getHeight(); i++)
{
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
conflict.move();
panel.repaint();
}
}
private Component panel;
private Conflict conflict;
}
Tale classe la utilizzo nel metodo addConflict della classe che rappresenta il frame principale, tale metodo addConflict è fatto così:
codice:
public void addConflict(Conflict aConflict)
{
contentPanel.add(aConflict);
Runnable r = new ConflictRunnable(aConflict, contentPanel);
Thread t = new Thread(r);
t.start();
}
Il metodo addConflict lo chiamo alla pressione di un JButton inserito nel frame principale, praticamente quando clicco il JButton viene creato un nuovo oggetto Conflict (che ricordo è un JPanel) e viene chiamato il metodo addConflict.
Il problema che riscontro è il seguente: l'architettura pare funzionare, riesco ad aggiungere pannelli Conflict cliccando il pulsante ma di tali pannelli non vedo il contenuto, vedo solo il Border dei pannelli che si muove. Qualcuno sa spiegarmi perché?