Zmiana koloru wyrazu/pogrubienie czcionki wyrazu

0

Witam,
potrzebuję pilnie pomocy w następującej kwestii. Chcę w tekście zmienić kolor danego wyrazu(wszystkie jego wystąpienia) lub zamiast tego pogrubić wszystkie jego wystąpienia. Chodzi o to, aby się wyróżniał, gdyż mój program ma go zaznaczać w tekście.

Nie wiem jak mam to zrobić, myślałem nad metodą replace:

String zaznaczone = jakis_tekst.replace(podany_wyraz, podany_wyraz_czerowną czcionką(I tutaj nie wiem jakiej metody użyć, aby zmienić jego kolor))

Chodzi mi o to, aby podmienić wyraz na ten sam, tylko pisany czerwoną/pogrubioną czcionką.

Bardzo proszę o pomoc jakiegoś doświadczonego programistę Java :) Będę wdzięczny za pomoc!

0

Używam Swinga. Chciałbym to zrobić w Swingu - zmiana wybranego, konkretnego wyrazu na kolor czerwony lub pogrubienie.

0
public class Main {
    public static void main(String[] args) throws BadLocationException {
        JEditorPane editorPane = new JEditorPane();

        editorPane.setContentType("text/html");
        editorPane.setText("ala ma kota,<br>ale nie ma psa");
        editorPane.setText(editorPane.getText().replace("ma", "<b style = 'color: red;'>ma</b>"));
        JOptionPane.showMessageDialog(null, editorPane);
    }
}

https://stackoverflow.com/questions/23757183/html-table-formatting-using-css-not-working-in-jtextpane
https://docs.oracle.com/javase/tutorial/uiswing/components/editorpane.html

0

Dzięki, a dałbyś radę tak przerobić kod, aby zaznaczał wyraz będący zmienną podaną przez użytkownika? Mam początek:

String szukany = JOptionPane.showInputDialog("Podaj szukany wyraz: ");

Sam tekst, w którym wyraz będzie podkreślany musi pochodzić z textArea, gdyż moja aplikacja ma szukać danego przez użytkownika wyrazu w tekście, który może się zmieniać (raz tekstem będzie np. "Janusz ma urodziny" a innym np. "Ala ma kota") . Czy da się to zrobić? Btw. dziękuje za kod :)

0

W JEditorPane użytkownik też może zmieniać tekst. Jak chcesz JTextArea, można zrobić podświetlenie:

JTextArea textArea = new JTextArea();
textArea.setText("aaaaaa");
textArea.getHighlighter().addHighlight(0, 3, new DefaultHighlighter.DefaultHighlightPainter(Color.RED));
0

Największy problem przy tworzeniu tego programu miałem z błędem "variable declaration not allowed here", gdy chciałem zmienić kolor zmiennej, będącej wyrazem podanym przez użytkownika z klawiatury. Zobaczę, czy teraz pójdzie... Dzięki za pomoc, na pewno się przyda.

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