Partage
  • Partager sur Facebook
  • Partager sur Twitter

listener personnalisé

    16 juin 2008 à 17:37:41

    Bonjour tout le monde,

    Je me casse les dents sur un script.

    J'essaie d'implémenter un listener personnalisé.

    Donc, j'ai bien tout lu dans les tuto que j'ai trouvé et j'ai bien tout fait comme on m'a dit.

    En gros :

    Je crée une interface qui implémente le listener que je souhaite : Mouse, List...
    Je crée une classe qui implémente ce listener
    Je crée une classe de mon composant dans laquelle je code ceci :

    addXXXlistener() // J'ajoute
    removeXXXlistener() // Je supprime
    getlisteners()// Je renvois
    fireXXXlistener() // J execute
    


    Mais après ? Comment j'appelle ces méthodes dans mon composant ?

    A quel endroit je dois appeler addXXXlistener(),removeXXXlistener(),getlisteners() et fireXXXlistener() ?

    Merci d'avance de votre aide

    HELP.SOS.MAYDAY
    • Partager sur Facebook
    • Partager sur Twitter
      1 juillet 2008 à 14:48:58

      Salut,

      Il faut faire gaffe au fait que tu dois associer ton Listener à quelque chose : un bouton par exemple, ou un Panel.

      Par exemple, si tu es dans une fenêtre et que tu veux que dans l'un de ses panels la souris soit réactive, tu rajoute monJPanel.addMouseListener(arg).
      Le paramètre argument est généralement this.

      Le plus simple pour gérer les actions est de faire implémenter ta classe de XXXListener, puis de surcharger les méthodes. Dans celles-ci, tu peux mettre des removeXXXListener.

      Quelque part, je me demande si tu ferais pas mieux de commencer par traiter des actions très simples : renvoyer dans la console un string quand tu cliques sur un bouton par exemple. Un site sympa qui pourrais t'aider : Clique ici

      Voilà, j'espère t'avoir aidé ...
      • Partager sur Facebook
      • Partager sur Twitter
        1 juillet 2008 à 21:10:20

        ben dans le code de ton composant quand il se passe une action et si un listenet a ete ajoute tu appel la fonction du listener associe

        tien exemple d'un listener perso :

        package com.daedric.swing.text;
        
        import java.awt.Color;
        
        public interface ChangeStyleEvent {
        	public void newTextStyle(String font, int size, boolean underline,
        			boolean strike, boolean bold, boolean italic, Color col);
        }
        


        package com.daedric.swing;
        
        import java.awt.Color;
        import java.util.ArrayList;
        
        import javax.swing.text.BadLocationException;
        import javax.swing.text.Document;
        import javax.swing.text.Style;
        import javax.swing.text.StyleConstants;
        import javax.swing.text.StyleContext;
        import javax.swing.text.StyledDocument;
        
        import com.daedric.swing.text.ChangeStyleEvent;
        import com.daedric.swing.text.Formatter;
        import com.daedric.swing.text.TextFormatter;
        import com.daedric.swing.text.TextStylizer;
        
        public class DJTextPane extends javax.swing.JTextPane {
        	public transient static Style	def					= StyleContext
        																.getDefaultStyleContext()
        																.getStyle(
        																		StyleContext.DEFAULT_STYLE);
        
        	private static final long		serialVersionUID	= -8905324578389242069L;
        
        	public transient Style			style				= null;
        
        	private ChangeStyleEvent		chev				= null;
        
        	public DJTextPane() {
        		super();
        		style = addStyle("default", def);
        	}
        
        	public DJTextPane(StyledDocument doc) {
        		super(doc);
        		style = addStyle("default", def);
        	}
        
        	public void appendMess(String s, Color col) {
        		try {
        			StyleConstants.setForeground(style, col);
        			Document doc = getDocument();
        			doc.insertString(doc.getLength(), s, getStyle("default"));
        			setCaretPosition(getDocument().getLength());
        		} catch (BadLocationException e) {
        			e.printStackTrace();
        		}
        	}
        
        	public void append(String s) {
        		try {
        			Document doc = getDocument();
        			doc.insertString(doc.getLength(), s, getStyle("default"));
        			setCaretPosition(getDocument().getLength());
        		} catch (BadLocationException e) {
        			// TODO Auto-generated catch block
        			e.printStackTrace();
        		}
        	}
        
        	public Color getBckColor() {
        		return StyleConstants.getBackground(style);
        	}
        
        	public Color getFontColor() {
        		return StyleConstants.getForeground(style);
        	}
        
        	public int getFontSize() {
        		return StyleConstants.getFontSize(style);
        	}
        
        	public String getFontUse() {
        		return StyleConstants.getFontFamily(style);
        	}
        
        	public boolean isBold() {
        		return StyleConstants.isBold(style);
        	}
        
        	public boolean isItalic() {
        		return StyleConstants.isItalic(style);
        	}
        
        	public boolean isStrike() {
        		return StyleConstants.isStrikeThrough(style);
        	}
        
        	public boolean isUnderLined() {
        		return StyleConstants.isUnderline(style);
        	}
        
        	public void setBckColor(Color couleur) {
        		StyleConstants.setBackground(style, couleur);
        		this.setCharacterAttributes(style, true);
        	}
        
        	public void setBold(boolean b) {
        		if (chev != null)
        			chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        					isStrike(), isBold(), isItalic(), this.getFontColor());
        
        		StyleConstants.setBold(style, b);
        		this.setCharacterAttributes(style, true);
        
        	}
        
        	public void setColor(Color couleur) {
        		if (chev != null)
        			chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        					isStrike(), isBold(), isItalic(), this.getFontColor());
        
        		StyleConstants.setForeground(style, couleur);
        		this.setCharacterAttributes(style, true);
        
        	}
        
        	public void setFont(String f) {
        		if (chev != null)
        			chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        					isStrike(), isBold(), isItalic(), this.getFontColor());
        
        		StyleConstants.setFontFamily(style, f);
        		this.setCharacterAttributes(style, true);
        
        	}
        
        	public void setFontSize(int s) {
        
        		if (chev != null)
        			chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        					isStrike(), isBold(), isItalic(), this.getFontColor());
        		StyleConstants.setFontSize(style, s);
        		this.setCharacterAttributes(style, true);
        
        	}
        
        	public void setItalic(boolean b) {
        		if (chev != null)
        			chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        					isStrike(), isBold(), isItalic(), this.getFontColor());
        		StyleConstants.setItalic(style, b);
        		this.setCharacterAttributes(style, true);
        
        	}
        
        	public void setSize(int s) {
        		if (chev != null)
        			chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        					isStrike(), isBold(), isItalic(), this.getFontColor());
        		StyleConstants.setFontSize(style, s);
        		this.setCharacterAttributes(style, true);
        
        	}
        
        	public void setStrike(boolean b) {
        		if (chev != null)
        			chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        					isStrike(), isBold(), isItalic(), this.getFontColor());
        		StyleConstants.setStrikeThrough(style, b);
        		this.setCharacterAttributes(style, true);
        
        	}
        
        	public void setUnderLine(boolean b) {
        		if (chev != null)
        			chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        					isStrike(), isBold(), isItalic(), this.getFontColor());
        		StyleConstants.setUnderline(style, b);
        		this.setCharacterAttributes(style, true);
        
        	}
        
        	public void insert(TextStylizer textStylizer) {
        		ArrayList<TextFormatter> dc = textStylizer.getFormatText();
        		for (TextFormatter tf : dc) {
        			applyFormatter(tf.getFormatter());
        			this.append(tf.getText());
        		}
        	}
        
        	public void applyFormatter(Formatter f) {
        		this.setUnderLine(f.isUnderline());
        		this.setStrike(f.isStrike());
        		this.setBold(f.isBold());
        		this.setItalic(f.isItalic());
        		this.setSize(f.getSize());
        		this.setFont(f.getFont());
        		this.setColor(f.getColor());
        	}
        
        	public void addChangeStyleListener(ChangeStyleEvent chev) {
        		this.chev = chev;
        	}
        
        }
        


        tu noteras les :
        if (chev != null)
        chev.newTextStyle(getFontUse(), getFontSize(), isUnderLined(),
        isStrike(), isBold(), isItalic(), this.getFontColor());

        et la fonction
        public void addChangeStyleListener(ChangeStyleEvent chev) {
        this.chev = chev;
        }
        • Partager sur Facebook
        • Partager sur Twitter

        listener personnalisé

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown