Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Utiliser un filtre RGB sur un composant du Look and Feel [ Archives / API ] (peripero)

mercredi 5 avril 2006 à 09:08:13 | Utiliser un filtre RGB sur un composant du Look and Feel

peripero

Bonjour, J'aimerais simplement savoir s'il etait possible d'utiliser un filtre sur un composant (style combobox) utilisé dans l'UIManager. Si oui, comment??

mercredi 5 avril 2006 à 11:00:44 | Re : Utiliser un filtre RGB sur un composant du Look and Feel

bloofi

coucou,

si tu as un setColor() qui traine quelque part, tu peux toujours lui balancer une couleur dont tu as définie les rgb que tu veux :
Color pouet = new Color( 255 , 255 , 255 , 0 ) ;//(int r , int g , int b , int alpha)


mercredi 5 avril 2006 à 14:15:25 | Re : Utiliser un filtre RGB sur un composant du Look and Feel

peripero

En fait, j'ai peint les coins de mon composant dans une couleur créée dans la perspective d'apliquer un filtre dessus. J'ai ensuite fait référence à ce composant dans mon UIManager mais je ne sais pas du tout quelles méthodes utilisées ensuite. J'ai pensé à modifier le paint mais sans résultat

mercredi 5 avril 2006 à 20:09:45 | Re : Utiliser un filtre RGB sur un composant du Look and Feel

Dobel

Tu veux réaliser un véritable filtrage sur le composant ?

J'ai déjà écrit un truc qui permettait de dessiner sur mon composant avec un ColorSpace perso. En définissant bien le colorspace, ça doit être possible de faire tout type de filtrage RGB.

Si ça correspond à ce que tu cherches, je peux faire un effort pour retrouver ce bout de code

Je ne sais pas si c'est la méthode la plus efficace par contre

Dobel [size=1][Une fois rien, c'est rien; deux fois rien, ce n'est pas beaucoup, mais pour trois fois rien, on peut déjà s'acheter quelque chose, et pour pas cher][/size=1]

jeudi 6 avril 2006 à 08:24:34 | Re : Utiliser un filtre RGB sur un composant du Look and Feel

peripero

Oui, ca semble bien correspondre. Si tu pouvais retrouver ca dans tes archives j'adhère au fan club direct

samedi 8 avril 2006 à 22:00:53 | Re : Utiliser un filtre RGB sur un composant du Look and Feel

Dobel

Salut, désolé d'avoir mis un peu de temps pour répondre.
J'ai refait un exemple adapté de mon code.
Ici, le filtrage consiste à récupérer uniquement la composante rouge du composant, et à la placée sur la composante verte :)
J'ai donc utilisé un ColorSpace à une seule composante

A+




import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
import java.awt.color.ColorSpace;
public class Cadre1
    extends JFrame {
 JPanel contentPane;
  FlowLayout flowLayout1 = new FlowLayout();


//Création d'un JButton filtré : le filtrage se fait dans la méthode paint qu'on redéfini
  JButton jButton1 = new JButton() {  

    //Pour effectuer le filtrage, ce n'est pas fin :
    //J'effectue le dessin sur une BufferedImage ayant le nouveau ColorSpace
    //Puis je dessine la BufferedImage...
    //cf doc :)
    public void paint(Graphics g) {
      MonColorSpace cp = new MonColorSpace();
      ComponentColorModel cm = new ComponentColorModel(cp,false, false, java.awt.Transparency.OPAQUE, DataBuffer.TYPE_USHORT);
      BufferedImage buffered = new BufferedImage(cm, cm.createCompatibleWritableRaster(this.getWidth(), this.getHeight()), false, null);
      super.paint(buffered.getGraphics());
      g.drawImage(buffered, 0, 0, null);
    }

  };
  JButton jButton2 = new JButton();

  public Cadre1() {
    try {
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      jbInit();
    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
  }

  /**
   * Initialisation du composant.
   *
   * @throws java.lang.Exception
   */
  private void jbInit() throws Exception {
    contentPane = (JPanel) getContentPane();
    contentPane.setLayout(flowLayout1);
    setSize(new Dimension(400, 300));
    setTitle("Titre du cadre");
    jButton1.setForeground(Color.orange);
    jButton1.setText("Bouton filtré");
    jButton2.setForeground(Color.orange);
    jButton2.setText("Le même non filtré");
    contentPane.add(jButton1);
    contentPane.add(jButton2);
  }



public static void main(String[] args) {
Cadre1 fenetre = new Cadre1();
fenetre.setVisible(true);
}
}





/**
 * C'est un exemple de ColorSpace à une seule composante.
 * Cette composante est ici définie à partir des valeurs RGB
 * Ici, il s'agit juste la composante rouge qui est récupérée et placée sur la composante verte :)
 */

class MonColorSpace extends ColorSpace {

  private ColorSpace gray;

  public MonColorSpace() {
    super(ColorSpace.CS_GRAY, 1);//le 1 signifie que notre espace de couleur n'a qu'une seule composante (pas besoin de plus!)
    gray = ColorSpace.getInstance(ColorSpace.CS_GRAY);
  }

  public float[] fromCIEXYZ(float[] colorvalue) {
    return gray.fromCIEXYZ(colorvalue);
  }

  //l'unique couleur, crée à partir des valeurs RGB
  public float[] fromRGB(float[] rgbvalue) {
    return new float[] {rgbvalue[0]};
    //Le tableau à une longueur de 1 comme on a qu'une composante
    //étape lente !!!
  }

  public float[] toCIEXYZ(float[] colorvalue) {
    return gray.toCIEXYZ(colorvalue);
  }

  public float[] toRGB(float[] colorvalue) {
    return new float[] {0, colorvalue[0], 0};  //ici, on retourne la valeur RGB qui nous intéresse : tout sur lacomposante verte, rien sur les autres :)
  }

}

Dobel
[Une fois rien, c'est rien; deux fois rien, ce n'est pas beaucoup, mais pour trois fois rien, on peut déjà s'acheter quelque chose, et pour pas cher





Cette discussion est classé dans : composant, utiliser, filtre, rgb, look


Répondre à ce message

Sujets en rapport avec ce message

Look&Feel JApplet [ par RealKEV1 ] Salut,Comment faut-il utiliser le LAF de java????Je fais UIManager.setLookAndFeel(.....), et g bo mettre tous les arguments spécifiques entre parenthe composant de separation [ par didoux95 ] bonjour a tous.je travaille sur une interface graphique et j'aimerai utiliser un composant de separation de type barre continu.  est ce que cela exist Du genre ListView [ par raneria ] Boujour tout le monde!!!!    Je suis débutant en Java et je veux utiliser un composant du type ListView. Quel composant devrais-je utiliser et comment utiliser un look & feels pour SWT/JFace [ par hamster007 ] bonnjour ,savez vous si il existe l equivalent du look & feels de SWING pour l api SWT/JFace?? je suis tout ouie a vos pistes!!!merci d avance panel graphique visible [ par moffer ] bonjour,je voudrais utiliser un composant avec une bordure exterieur dans lequel je peu inserer des composants, mais je ne sais pas quel composant uti USB en java? [ par kaliel ] bonjour!!!quelqu'un sait comment utiliser le port USB en java, ou a des exemples? en fait j'utilise pour l'instant le port série mais vu qu'il y a de filtre dans les JFileChoosen [ par jc_romeo ] Bonjourje voudrais faire un filtre dans les JFileChoosen et on m'a dit que je pouvais utiliser ExampleFileFilter()néanmoins quand je le mets il me dit KeyListener JFrame avec plusieurs composants [ par mouss11 ] Bonjour, J'ai une JFrame avec plusieurs composant dedans, par exemple une JList et des JButtonRadio.J'ai un JButton OK et un CancelJ'aimerai que l'app traitement image [ par shadow73 ] Bonjour en visitant le site j'ai trouvé que vous avez eu des problèmes avec java et j'aimerai bien que vous m'aidier svp.Je veux utiliser java pour le AWT Composant [ par Karlo ] Bonjour,j'ai créé un composant progress bar, juske ici tout est okseulement qd je veux la tester je fais une simple boucle :for (int i =....){ progres


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.