2016-04-23 3 views
0

Je fais une application de texte où je peux changer le texte en gras (j'ajouterai plus dans le futur).Comment vérifier si le point d'insertion est sur un texte en gras ou normal

J'ai placé l'option en gras dans un JMenu comme JCheckBox.

Je souhaite que cette case à cocher soit sélectionnée ou désélectionnée selon que le point d'insertion (ligne clignotante) est sur un texte en gras ou normal. Tout comme c'est dans Microsoft Word.

The application

+0

Pourriez-vous nous fournir du code, pas seulement une capture d'écran? – psrcek

+0

Vous devez déterminer le style actuel en fonction de l'emplacement du curseur, quelque chose comme [this] (http://stackoverflow.com/questions/24163370/how-to-get-style-from-jtextpane) pourrait vous donner un point de départ, ou [cet exemple] (http://stackoverflow.com/questions/4360234/get-style-at-caret-position-in-a-jtextpane) ou [cet exemple] (http: // stackoverflow. com/questions/4819780/get-style-de-tout-décalage-dans-jtext) – MadProgrammer

+1

Assurez-vous que vous utilisez les actions 'StyledEditorKit', vu [ici] (http://stackoverflow.com/a/8534162/230513). – trashgod

Répondre

0

réponse rapide de mon téléphone: Vous devez ajouter un CaretListener au document. Une fois déclenché, vous détecterez le style de caractère avec StyledDocument.getCharacterAttributes. Pour obtenir l'attribut en gras, vous devez le vérifier avec StyleConstants.isBold. Veillez à ne pas déclencher votre action audacieuse lors de la définition de l'état de la case à cocher.

+0

Merci beaucoup, cela a fonctionné :) –