JTextPane automatycznie zmienia czcionke

0

Hej!
Mam taki problem z JTextPane.Otóż gdy wstawię sobie jakiś skopiowany tekst który jest wytłuszczony to gdy potem coś dopisuje to chciałbym żeby dopisywał mi już domyślną czcionką ale dopisuje też BOLDEM.Czy wie ktoś jak to obejść??

0

user image

Chodzi mi o to że jeśli w JTextPane chcę teraz dopisać coś po słowie np. "styled" to dopisuje mi boldem a chciałbym żeby dopisywał normalną czcionką ustawioną dla tego componentu.Pomocy:)

0

Wejdź na stronę, z której ściągnąłeś obrazek kliknij odnośnik example index (dwa centymetry pod obrazkiem), ściągnij plik TextSamplerDemo.java i obejrzyj kod.

0

Widziałem go i nie widzę tam nic coby pomogło rozwiązać ten problem,może jestem ślepy:).Zawsze jak próbuje coś dopisać to ustawia mi czcionkę na taką jaką ma poprzedni znak,a chciałbym żeby zawsze wpisywał domyślną czcionką...

0

Zgadzam się, jesteś ślepy. Wiersz 253 i funkcja addStylesToDocument().

0

Nie wiem co masz na myśli szczerze mówiąć,za pomocą tych stylów dodałem programowo te Stringi,ale teraz chcę sobie najechać kursorem na dowolne miejsce w JTextPane i wpisać z palca tekst i jak wpisuję to zawsze ustawiana jest czcionka tego znaku który jest wcześniej,czyli np. jak wpisuje coś po słowie 'styled' to jest to BOLD.Może sie nie zrozumieliśmy albo ja czegoś nie widzę:)

0

A widziałeś jakiś edytor w którym tak można zrobić?
Jeżeli chcesz programowo napisać coś BOLD, a wpisywany przez użytkownika dalej tekst ma być PLAIN, to spróbuje po tym BOLD wstawić pusty String napisany stylem PLAIN.

0

Niezły pomysł ale niestety nie działa:(

0

Dobra,znalazłem rozwiązanie.Trzeba stworzyć klasę dziedzicząca po JTextPane i przesłonić metodę replaceSelection():
public void replaceSelection(String content) {
getInputAttributes().removeAttribute(StyleConstants.Foreground);
getInputAttributes().removeAttribute(StyleConstants.Bold);
super.replaceSelection(content);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1