se ho capito bene, una soluzione potrebbe essere la seguente:
- Ti faccio un esempio considerando che l 'oggetto da disegnare sia un immagine, ma può essere modificato per disegnare anche oggetti diversi come Shape.
- Crea un variabile di istanza che conterrà il valore dell'ultima immagine selezionata col buttone:
private Image selectedImage;
- Definisci l'actionPerformed di ogni bottone:
JButton button1 = new JButton("Image 1"
;
button1.addActionListener(new ActionListener()) {
@Override
public void actionPerformed(ActionEvent arg0) {
try {
// Esempio di come caricare un immagine, puoi usare il metodo che più
// preferisci
selectedImage = ImageIO.read(new File("image1.png"
);
panel2.repaint();
} catch (IOException e) {
} // catch
}// actionPerformed
}
- crea un istanza personalizzata del pannello 2, es:
JPanel panel 2 = new JPanel() {
@Override
public void paintComponents(Graphics g) {
super.paintComponents(g);
g.drawImage(selectedImage, 0, 0, null);
}// paintComponents
};
Ogni volta che viene cliccato un bottone la variabile selectedImage cambia valore nell'immagine corrispondente e di conseguenza il repaint del pannello disegnerà la nuova immagine.
Spero di aver capito bene il tuo problema e di averti aiutato