/ / Zmena veľkosti zátvoriek JTextArea - java, swing, jtextarea, zábal slov

JTextArea zmena veľkosti slov - java, swing, jtextarea, word-wrap

Takže mám JTextArea na JPanel (BoxLayout). Mám tiež vyplňovač škatule, ktorý vyplní zvyšok JPanelu. Potrebujem, aby moje zariadenie JTextArea začalo s výškou jedného riadku (to môžem zvládnuť) a aby sa podľa potreby rozširovalo a zmenšovalo.

Zalomenie slov je povolené, len ho potrebujem na úpravu výšky, keď sa pridá alebo odstráni nový riadok.

Snažil som sa s documentListener a getLineCount (), ale nerozpoznal wordwrap-newlines.

Ak je to možné, rád by som sa vyhýbal písaniu správ o písmo.

A ŽIADNE SKLÁDACIE PANELY. Je nevyhnutné, aby sa JTextArea vždy zobrazoval úplne.

odpovede:

13 pre odpoveď č. 1

JTextArea má skôr pravý vedľajší účinokpodmienky, z ktorých to môže rásť samé. Narazil som na to náhodou, keď som sa snažil nastaviť jednoduchý dvojriadkový textový editor (dĺžka obmedzených znakov na riadok, s maximálne dvoma riadkami) ...

V podstate, vzhľadom na správcu usporiadania rozloženia, táto zložka môže rásť sama osebe - skutočne to dáva zmysel, ale prekvapilo ma to ...

Som tak malýPozri sa na mňa rast

Teraz môžete tiež použiť a ComponentListener sledovať, kedy sa komponent mení veľkosť, či je to to, čo vás zaujíma ...

public class TestTextArea extends JFrame {

public TestTextArea() {

setLayout(new GridBagLayout());

JTextArea textArea = new JTextArea();
textArea.setColumns(10);
textArea.setRows(1);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);

add(textArea);

setSize(200, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);

textArea.addComponentListener(new ComponentAdapter() {

@Override
public void componentResized(ComponentEvent ce) {

System.out.println("I"ve changed size");

}

});

}


/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new TestTextArea();
}

}