import javax.swing.*; import java.awt.*; import java.awt.event.*; public class PanelDemo extends JFrame implements ActionListener { public static final int WIDTH = 300; public static final int HEIGHT = 200; private JPanel redPanel; private JPanel whitePanel; private JPanel bluePanel; public static void main(String args[]) { PanelDemo gui = new PanelDemo(); gui.setVisible(true); } public PanelDemo() { super("Panel Demonstration"); setSize(WIDTH, HEIGHT); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); JPanel biggerPanel = new JPanel(); biggerPanel.setLayout(new GridLayout(1,3)); redPanel = new JPanel(); redPanel.setBackground(Color.LIGHT_GRAY); biggerPanel.add(redPanel); whitePanel = new JPanel(); whitePanel.setBackground(Color.LIGHT_GRAY); biggerPanel.add(whitePanel); bluePanel = new JPanel(); bluePanel.setBackground(Color.LIGHT_GRAY); biggerPanel.add(bluePanel); add(biggerPanel, BorderLayout.CENTER); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); buttonPanel.setBackground(Color.LIGHT_GRAY); JButton redButton = new JButton("Red"); redButton.setBackground(Color.RED); redButton.addActionListener(this); buttonPanel.add(redButton); JButton whiteButton = new JButton("White"); whiteButton.setBackground(Color.WHITE); whiteButton.addActionListener(this); buttonPanel.add(whiteButton); JButton blueButton = new JButton("Blue"); blueButton.setBackground(Color.BLUE); blueButton.addActionListener(this); buttonPanel.add(blueButton); add(buttonPanel, BorderLayout.SOUTH); } public void actionPerformed(ActionEvent e) { String buttonString = e.getActionCommand(); if(buttonString.equals("Red") ) { redPanel.setBackground(Color.RED); whitePanel.setBackground(Color.LIGHT_GRAY); bluePanel.setBackground(Color.LIGHT_GRAY); } else if(buttonString.equals("White") ) { redPanel.setBackground(Color.LIGHT_GRAY); whitePanel.setBackground(Color.WHITE); bluePanel.setBackground(Color.LIGHT_GRAY); } else if(buttonString.equals("Blue") ) { redPanel.setBackground(Color.LIGHT_GRAY); whitePanel.setBackground(Color.LIGHT_GRAY); bluePanel.setBackground(Color.BLUE); } } }