2010-10-01 31 views

Répondre

18
JPanel panel = new JPanel(); 
panel.setLayout(new BorderLayout()); //give your JPanel a BorderLayout 

JTextArea text = new JTextArea(); 
JScrollPane scroll = new JScrollPane(text); //place the JTextArea in a scroll pane 
panel.add(scroll, BorderLayout.CENTER); //add the JScrollPane to the panel 
// CENTER will use up all available space 

Voir http://download.oracle.com/javase/6/docs/api/javax/swing/JScrollPane.html ou http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html pour plus de détails sur JScrollPane

+0

bonne réponse merci! –

6

Placez le JTextArea à l'intérieur d'un JScrollPane, et un lieu qui dans le JPanel avec une mise en page qui fixe la taille. Un exemple avec un GridBagLayout, par exemple pourrait ressembler à ceci:

JPanel panel = new JPanel(); 
panel.setLayout(new GridBagLayout()); 

JScrollPane scrollpane = new JScrollPane(); 
GridBagConstraints cons = new GridBagContraints(); 
cons.weightx = 1.0; 
cons.weighty = 1.0; 
panel.add(scrollPane, cons); 

JTextArea textArea = new JTextArea(); 
scrollPane.add(textArea); 

Ceci est seulement une esquisse, mais il devrait illustrer comment le faire.

+0

Presque n'a pas voté en raison de l'utilisation de GridBagLayout pour un besoin si simple. –

+3

N'utilisez jamais GridBagLayout! Jamais! –

+2

En raison d'un ennui long et complet avec tous les autres gestionnaires de disposition dans Swing, j'utilise maintenant GridBagLayout presque exclusivement. C'est un artefact de mon histoire personnelle, plutôt qu'une recommandation. Veuillez utiliser n'importe quel gestionnaire de disposition correspondant à vos besoins. Dans ce cas, je pense que la spécification exacte des poids montre explicitement que le volet de défilement absorbe tous les changements de taille. Mais, ce n'est certainement pas la peine d'utiliser un gestionnaire de mise en page complexe pour une mise en page simple. – Zoe