Réglage de la largeur fixe de JTextArea tandis que la hauteur doit être ajustée automatiquement à son contenu
Quand je exécuter l'exemple de code ci-dessous la largeur de JTextArea est fixe (100px), tandis que sa hauteur est réglé de façon dynamique comme je vous tapez du texte.
Ainsi, par exemple, je commence avec ceci:
--------------------
| some text |
--------------------
et que je tape plus de texte à la hauteur de JTextArea développe de façon à ce qu'il s'adapte le contenu tout en préservant la largeur:
--------------------
| some text, some |
| other longer text|
| etc... |
--------------------
Comment puis-je le double de la largeur de JTextArea?
Quand je le fais en changeant preferredSize
la hauteur n'est pas dynamique plus.
public class TestTextArea extends JFrame {
public static void main(String[] args) {
new TestTextArea().setVisible(true);
}
public TestTextArea() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0,0,800,600);
setContentPane(createPane());
}
protected Container createPane() {
JTextArea textArea = createTextArea();
//------------------------------------------
//UNCOMMENT TO DOUBLE THE WIDTH OF JTextArea
// Dimension oldPrefSize = textArea.getPreferredSize();
// Dimension newPrefSize = new Dimension(oldPrefSize.width * 2, oldPrefSize.height);
// textArea.setPreferredSize(newPrefSize);
JPanel pane = new JPanel(new FlowLayout());
pane.add(textArea);
return pane;
}
protected JTextArea createTextArea() {
JTextArea textArea = new JTextArea();
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
return textArea;
}
}
OriginalL'auteur Michal Vician | 2012-06-13
Vous devez vous connecter pour publier un commentaire.
Utiliser le
JTextArea#setColumns
méthode pour ajuster la largeurOh, je vois maintenant,
JTextArea.getColumnWidth()
explique mon commentaire précédent.OriginalL'auteur Robin
ensemble formatez les lignes à vrai => textArea.setLineWrap(true);
cela permettra de tirer le maximum de la largeur de ligne = textarea avec
OriginalL'auteur Ahmad Moussa
Modifier cette ligne de code textArea.setPreferredSize(newPrefSize);
textArea.setSize(newPrefSize);
La hauteur sera réglé de façon dynamique.
OriginalL'auteur user3015208