Bonjour,
je souhaite me créer un composant, dérivé d'un JLabel, qui permettrait en plus des fonctionnalités du JLabel, de sélectionner avec la souris le texte affiché par le composant et d'envoyer le texte dans le presse-papier lors d'un "Ctrl-C"...
Auriez-vous une idée comment je pourrais faire çà ?
Je n'ai pas réussi à aller plus loin dans l'écriture de ma classe. :-( :-(
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public monJLabel extends JLabel implements CaretListener { private static final long serialVersionUID = 0L; // Positions des caractères sélectionnés private int positionDebut = -1; private int positionFin = -1; public monJLabel() { super(); // this.addMouseListener(); } public void caretUpdate(CaretEvent e) { positionDebut = e.getDot(); positionFin = e.getMark(); repaint(); } }
En implémentant l'interface CaretListener, je pourrais détecter la sélection des caractères de mon label mais je ne vois pas bien comment je pourrais colorier uniquement le fond des caractères sélectionnés.
Je pourrais évidement redéfinir paintComponent() en décidant de colorier le fond des caractères sélectionnés, mais comment puis-je faire cela ?
Comment puis-je détecter le "Rectangle" d'un caractère ?
Avez-vous une idée ?
Merci beaucoup pour votre aide.
F.
Partager