import javax.swing.JPanel; import javax.swing.JApplet; import javax.swing.JLabel; import javax.swing.BorderFactory; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Graphics; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.KeyListener; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; class ArdoiseTouches extends JPanel { ArdoiseTouches() { setPreferredSize(new Dimension(100, 100)); setForeground(Color.RED); } public void paintComponent(Graphics g) { super.paintComponent(g); g.fillOval(10, 10, 80, 80); } } class Touches extends JPanel implements KeyListener, MouseListener { ArdoiseTouches ardoise = new ArdoiseTouches(); JLabel labelR = new JLabel(" touche r : ovale rouge"); JLabel labelB = new JLabel(" touche b : ovale bleu"); JLabel labelV = new JLabel(" touche v : ovale vert"); JLabel labelE = new JLabel(" touche e : effacer"); JPanel indications = new JPanel(); Touches() { indications.setLayout(new GridLayout(4, 1)); indications.add(labelR); indications.add(labelB); indications.add(labelV); indications.add(labelE); add(indications, BorderLayout.NORTH); add(ardoise, BorderLayout.CENTER); addKeyListener (this); addMouseListener (this); setBorder(BorderFactory.createLineBorder(Color.BLACK)); } public void mouseEntered(MouseEvent evt) { requestFocus(); } public void mouseExited(MouseEvent evt) {} public void mouseReleased(MouseEvent evt) {} public void mouseClicked(MouseEvent evt) {} public void mousePressed(MouseEvent evt) {} public void keyPressed(KeyEvent evt){} public void keyReleased(KeyEvent evt){} public void keyTyped(KeyEvent evt) { if (evt.getKeyChar() == 'r') ardoise.setForeground(Color.RED); else if (evt.getKeyChar() == 'b') ardoise.setForeground(Color.BLUE); else if (evt.getKeyChar() == 'v') ardoise.setForeground(Color.GREEN); else if (evt.getKeyChar() == 'e') ardoise.setForeground(ardoise.getBackground()); ardoise.repaint(); } } public class TouchesApplet extends JApplet { public void init() { setContentPane(new Touches()); } }