Dynamiczny rozmiar JTextArea, zmiana czcionki

0
  • Jak zrobić aby JTextArea zmieniał swoją wielkość razem z JFrame? Chodzi mi o to, żeby miał taką samą wielkość jak ramka, której wielkość będzie zmieniana w czasie działania programu
  • jak ustawić w JTextArea własną czcionkę, która nie znajduje się w katalogu c:\windows\fonts, ale jest w plikach programu?
0

A czy używasz LayoutManagerów? Zazwyczaj pozwalają na łatwe zarządzanie nie tylko położeniem ale też i wielkością komponentów.

0

Co do pierwszego pytania: zgodnie z tym, co zasugerował Koziołek, dodaj komponent JTextArea w najprostszy możliwy sposób:

ramka.add(obszarTekstowy);

jeżeli nie zmieniałeś wcześniej menedżera układu ramki, to domyślnie będzie to BorderLayout, a jeżeli nie podałeś dodatkowego parametru w metodzie add przy aktywnym BorderLayout, to domyślnym położeniem będzie BorderLayout.CENTER, który ma tą właściwość, że rozciąga dodawany komponent na całą wolną przestrzeń kontenera, do którego jest dodawany.

Co do drugiego pytania: powinno się dać zrobić coś takiego dla czcionek TrueType. Jeżeli masz plik czcionki zapisany w katalogu wraz z innymi klasami programu, to najprościej będzie to zrobić w taki sposób:

InputStream in = JednaZKlasProgramu.class.getResourceAsStream("nazwaCzcionki.ttf");
Font mojaCzcionka = Font.createFont(Font.TRUETYPE_FONT, in);

Otrzymasz czcionkę o stylu normalnym i rozmiarze znaku równym 1. Aby zmienić rozmiar na taki, jaki potrzebujesz, wykorzystaj:

Font cz = mojaCzcionka.deriveFont(rozmiar);

Pozdrawiam!

0

Trochę odgrzewam kotleta ale mam ten sam problem i sposób podany przez Doom77 nie hula.
Chcę dodać jTextArea na panel i chcę żeby jego rozmiar był taki jak rozmiar panelu czyli żeby rozciągał się na bieżąco a z tego co widzę to zawsze ma rozmiar tekstu który wpisałem do środka.
Dodaję go tak jak sugerowano wyżej:
add(jScrollPane, BorderLayout.CENTER);
Pomożecie?

0

Sposób podany przez DooM77 działa. Może gdzieś użyłeś metody setPreferredSize() lub setMaximumSize().

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