bonjour, en fait ce que j'aimerais faire c'est comme sur office word, avoir des bulles relié au texte, qui comporterons des commentaires sur un mot ou une phrse du texte.
bonjour, en fait ce que j'aimerais faire c'est comme sur office word, avoir des bulles relié au texte, qui comporterons des commentaires sur un mot ou une phrse du texte.
Hello,
oui ben sur Office Word ils ont programmé ça, c'est une fonctionnalité assez complexe.
Yapluka le programmer aussi.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
oui, ça je sais déjà, justement je demande de l'aide pour que j'arrive a le réaliser.
donc si quelqu'un sais le faire ou connais quelqu'un, aidez moi svp, parce que c'est assez compliqué et il faut vraiment que j'y arrive xDD 😅
Bonjour,
Il faudrait déjà préciser la technologie utilisée (Swing, JavaFX, Awt, Web, ..) et nous donner un peu plus de contexte.
Etant donné que nous n'avons pas assez d'élements la réponse ne peut qu'être très vague. Mais le principe sera toujours de trouver les coordonnées du texte pour "placer" vos "bulles".
je suis en Java Ant, la zone de texte utilisée est un JTextArea (je code sur NetBeans donc j'ai " l'aide " graphique, et j'aimerais pouvoir crée des bulles comme des commentaire.
le problème c'est que je suis vraiment un débutant en Java, et que donc je ne sais pas comment trouver et utilisé les coordonnées d'un texte xD
Merci de m'avoir répondu en tout cas ! ^^"
Ok, et vos "bulles" doivent être fixes ou n’apparaître qu'au survol du texte ?
Si c'est au survol, vous pouvez utiliser une window non décorée et utiliser la position du curseur. Mais il vous faudra chercher pour retrouver le texte qui se trouve sous le curseur.
Mes bulles doivent être fixe, a coté du texte et lors que je scroll dans le texte elle suivent la ligne a laquelle elles sont liés.
un peu a la manière de office word, comme ceci :
Le problème reste le même, il vous faut trouver les coordonnées qui correspondent à la ligne de texte. Dans votre cas, il ne faut que la coordonnée verticale de votre ligne.
La méthode modelToView(int):Rectangle peut peut-être vous aider dans cette tâche:
Lorsque vous aurez la position, il faudra afficher vos "bulles". Si le texte est petit, le plus simple serait de placer votre JTextArea à côté d'un JPanel avec un layout absolu. Mai si le texte est très grand il faudra peut-être passer sur une système plus dynamique qui affiche uniquement les "bulles" visibles.Converts the given location in the model to a place in the view coordinate system
-- https://docs.oracle.com/javase/7/doc...delToView(int)
Je suis parvenu à quelque chose d'approximatif avec un positionnement absolu et modeToView:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Rectangle2D area = text.modelToView2D(text.getLineStartOffset(index)); JLabel note = new JLabel(paragraph.getNote()); // 450, 150 et 20 sont évidemment des valeurs arbitraires à adapter note.setBounds(450, (int)area.getY(), 150, 20); // container = new JPanel(null); // Un layout null est un positionnement absolu. container.add(note); /* Notez que pour que l'on puisse "scroller" sur le container, il faut également * lui donner un perefered size qui convient pour votre JTextArea et les "bulles"
Les sources complètes sont ici : https://file.io/Uz9fc0kXb26L
le getNote() ne marche pas, il doit me manquer des imports, tu sais ce dont t'il s'agit ?
getNote est une méthode sur la classe Paragraph que j'ai créé (tout est dans le lien). Mais c'est juste pour l'exemple.
Ok merci ! (je sais que c'est pour l'exemple, je voulais d'abord voir comment toi t'avais fais est comment ça rendais pour que j'en comprenne le fonctionnement et la logique !)
Excuse moi mais ton lien est brisé il ne marche pas du tout ^^"
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager