import java.awt.*; import javax.swing.*; import java.awt.event.*; class Observer implements ActionListener { boolean shouldY, shouldC, shouldM; public Observer() { shouldY = false; shouldC = false; shouldM = false; } private void updateColor(JPanel panel) { int r, g, b; r = shouldC ? 0 : 255; g = shouldM ? 0 : 255; b = shouldY ? 0 : 255; panel.setBackground(new Color(r, g ,b)); } public void actionPerformed(ActionEvent evt) { String name = evt.getActionCommand(); JRadioButton radioButton = (JRadioButton)evt.getSource(); JPanel panel = (JPanel)radioButton.getParent(); boolean selected = radioButton.isSelected(); if (name == "Jaune") shouldY = selected; else if (name == "Magenta") shouldM = selected; else if (name == "Cyan") shouldC = selected; updateColor(panel); } } public class Combinaison { public static void main(String[] args) { JFrame f = new JFrame("Fond"); f.setSize(200, 200); f.setLocation(100, 100); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Observer observer = new Observer(); JRadioButton b1 = new JRadioButton("Jaune"); JRadioButton b2 = new JRadioButton("Cyan"); JRadioButton b3 = new JRadioButton("Magenta"); b1.addActionListener(observer); b2.addActionListener(observer); b3.addActionListener(observer); JPanel p = new JPanel(); f.add(p); p.add(b1); p.add(b2); p.add(b3); f.setVisible(true); } }