/* Solution l'exercice -2- Auteurs: Deitel&Deitel Ce programme permet à l'utilisateur de créer une couleur adaptée sur mesure. Ce programme sert uniquement à dessiner le JPanel et ses composants. On offre la possibilité à l'usager d'introduire la valeur dans le champ de texte associé à chaque couleur. L'utilisation de la classe est faîte à travers le fichier Palette.java L'applet associée peut-être chargée par le navigateur à travers l'intermédiaire du fichier Palette.html Ajout/Modifications: Palette.html */ import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class MonSelecteurDeCouleurs extends JPanel { private JSlider glissiereRouge, glissiereBleu, glissiereVert; private JTextField affichageRouge, affichageBleu, affichageVert; private JLabel etiquetteRouge, etiquetteBleu, etiquetteVert; private Color couleur; public MonSelecteurDeCouleurs() { etiquetteRouge = new JLabel( "Rouge:" ); glissiereRouge = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 ); affichageRouge = new JTextField( "0", 4 ); etiquetteVert = new JLabel( "Vert:" ); glissiereVert = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 ); affichageVert = new JTextField( "0", 4 ); etiquetteBleu = new JLabel( "Bleu:" ); glissiereBleu = new JSlider( SwingConstants.HORIZONTAL, 0, 255, 1 ); affichageBleu = new JTextField( "0", 4 ); setLayout( new GridLayout( 3, 3 ) ); add( etiquetteRouge ); add( glissiereRouge ); add( affichageRouge ); add( etiquetteVert ); add( glissiereVert ); add( affichageVert ); add( etiquetteBleu ); add( glissiereBleu ); add( affichageBleu ); glissiereRouge.addChangeListener( new ChangeHandler() ); glissiereVert.addChangeListener( new ChangeHandler() ); glissiereBleu.addChangeListener( new ChangeHandler() ); affichageRouge.addActionListener( new ActionHandler() ); affichageVert.addActionListener( new ActionHandler() ); affichageBleu.addActionListener( new ActionHandler() ); couleur = Color.black; } public void setCouleur( Color c ) { couleur = c; glissiereRouge.setValue( c.getRed() ); affichageRouge.setText( String.valueOf( c.getRed() ) ); glissiereVert.setValue( c.getGreen() ); affichageVert.setText( String.valueOf( c.getGreen() ) ); glissiereBleu.setValue( c.getBlue() ); affichageBleu.setText( String.valueOf( c.getBlue() ) ); } public Color getCouleur() { return couleur; } public JSlider getGlissiereRouge() { return glissiereRouge; } public JSlider getGlissiereVert() { return glissiereVert; } public JSlider getGlissiereBleu() { return glissiereBleu; } public JTextField getAffichageRouge() { return affichageRouge; } public JTextField getAffichageVert() { return affichageVert; } public JTextField getAffichageBleu() { return affichageBleu; } private class ChangeHandler implements ChangeListener { public void stateChanged( ChangeEvent e ) { int r = glissiereRouge.getValue(); int b = glissiereBleu.getValue(); int g = glissiereVert.getValue(); couleur = new Color( r, g, b ); affichageRouge.setText( String.valueOf( r ) ); affichageBleu.setText( String.valueOf( b ) ); affichageVert.setText( String.valueOf( g ) ); } } private class ActionHandler implements ActionListener { public void actionPerformed( ActionEvent e ) { int r = Integer.parseInt( affichageRouge.getText() ); int v = Integer.parseInt( affichageVert.getText() ); int b = Integer.parseInt( affichageBleu.getText() ); couleur = new Color( r, v, b ); glissiereRouge.setValue( r ); glissiereVert.setValue( v ); glissiereBleu.setValue( b ); } } }