Doter un JTextComponent d'un tooltip
Projet gus05 de développement Java :: Développements :: Quelque-unes de mes entités :: Programmation graphique Swing :: Fonctionnalités de tooltip dynamique
Page 1 sur 1
Doter un JTextComponent d'un tooltip
Voici une entité qui permet de doter n'importe quel objet JTextComponent d'une fonctionnalité de tooltip qui fait afficher dans une bulle chaque mot du texte lorsque vous passez la souris dessus.
gus.graphic.textcomp.tooltip
Cette entité comporte deux classes dont le code source est donné ci-dessous :
gus.graphic.textcomp.tooltip
Cette entité comporte deux classes dont le code source est donné ci-dessous :
- Code:
package gus05.entity.gus.graphic.textcomp.tooltip;
import javax.swing.text.JTextComponent;
import gus05.framework.core.Entity;
import gus05.framework.features.Give;
public class TextCompTooltip implements Entity, Give {
public String getName() {return "gus.graphic.textcomp.tooltip";}
public String getCreationDate() {return "2006.08.15";}
public void give(Object obj) throws Exception
{
JTextComponent comp = (JTextComponent) obj;
new TooltipHandler(comp);
}
}
- Code:
package gus05.entity.gus.graphic.textcomp.tooltip;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.text.JTextComponent;
public class TooltipHandler implements MouseMotionListener {
public static String wordDelimListing = "\n\r\t/\\[\\] ,;(){}!:=\\-\"\\*\\.\\?\\+<>&";
private JTextComponent comp;
public TooltipHandler(JTextComponent comp)
{
this.comp = comp;
comp.addMouseMotionListener(this);
}
public void mouseDragged(MouseEvent e) {}
public void mouseMoved(MouseEvent e)
{
Point p = e.getPoint();
String word = findWord(p);
comp.setToolTipText(word);
}
private String findWord(Point p)
{
int pos = comp.viewToModel(p);
String text = comp.getText();
int length = text.length();
if(length==0)return null;
if(pos>=length)return null;
// find word start position
int start = pos;
while(start>0 && !isDelimChar(text.charAt(start)))
{start--;}
// find word end position
int end = pos;
while(end<length && !isDelimChar(text.charAt(end)))
{end++;}
if(start<end)return text.substring(start+1,end);
else return null;
}
private boolean isDelimChar(char c)
{return wordDelimListing.contains(""+c);}
}
Sujets similaires
» Doter une JTable d'un tooltip
» Doter une JList d'un tooltip
» Doter un JTree d'un tooltip
» Doter une JTable d'une sélection instantanée sur les lignes
» Doter une JTable d'une sélection instantanée sur les cellules
» Doter une JList d'un tooltip
» Doter un JTree d'un tooltip
» Doter une JTable d'une sélection instantanée sur les lignes
» Doter une JTable d'une sélection instantanée sur les cellules
Projet gus05 de développement Java :: Développements :: Quelque-unes de mes entités :: Programmation graphique Swing :: Fonctionnalités de tooltip dynamique
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus