Premetto subito che è da un bel po' che non lavoro con awt e swing...
Quindi prendi quello che segue come una bella porcheria...
Codice PHP:
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ContenitoreCard extends JFrame
{
ContenitoreCard()
{
setResizable(false);
setBounds(240, 200, 800, 500);
Container contenuto = getContentPane();
contenuto.setLayout(null);
Pannello pan = new Pannello();
contenuto.add(pan);
PanelB panB = new PanelB(pan);
contenuto.add(panB);
}
class Pannello extends JPanel
{
CardLayout cl = new CardLayout();
Pannello()
{
setLayout(cl);
setBounds(0,100,800,500);
setBackground(Color.blue);
Card yellowCard = new Card(Color.yellow);
//yellowCard.setName("yellow");
add(yellowCard, "yellow");
Card greenCard = new Card(Color.green);
//greenCard.setName("green");
add(greenCard, "green");
//cl.addLayoutComponent(p1, "pan1");
}
void mostra(String color)
{
cl.show(this, color);
}
}
class PanelB extends JPanel implements ActionListener
{
JButton bot;
Pannello pan;
PanelB(Pannello pan)
{
this.pan=pan;
setLayout(null);
setBounds(0,0,800,100);
setBackground(Color.red);
bot = new JButton("Cambia");
bot.setBounds(20, 20, 100, 25);
bot.addActionListener(this);
add(bot);
}
public void actionPerformed (ActionEvent e)
{
Object src = e.getSource();
if (src==bot) {
pan.mostra("green");
}
}
}
class Card extends JPanel
{
Card(Color c)
{
//setLayout(null);
setBounds(0,100,800,500);
setBackground(c);
}
}
public static void main(String[] args)
{
ContenitoreCard frame = new ContenitoreCard();
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Ti consiglio vivamente di dare una bella occhiata qui...