2010-10-01 20 views

Respuesta

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 

Ver http://download.oracle.com/javase/6/docs/api/javax/swing/JScrollPane.html o http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html para más detalles sobre JScrollPane

+0

excelente respuesta gracias! –

6

Coloque el JTextArea en el interior de un JScrollPane, y el lugar que en el JPanel con con un diseño que fija el tamaño. Un ejemplo de un GridBagLayout, por ejemplo, podría tener este aspecto:

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); 

Esto es sólo un esbozo, pero debe ilustrar cómo hacerlo.

+0

Casi no votaba esto debido al uso de GridBagLayout para una necesidad tan simple. –

+3

¡Nunca use GridBagLayout! ¡Nunca! –

+2

A través de una larga y completa molestia con cada otro administrador de diseño en Swing, ahora uso GridBagLayout casi exclusivamente. Eso es un artefacto de mi historia personal, en lugar de una recomendación. Utilice el administrador de diseño que se ajuste a sus necesidades. En este caso, creo que la especificación exacta de los pesos muestra explícitamente que el panel de desplazamiento absorbe todos los cambios de tamaño. Pero, ciertamente no vale la pena utilizar un administrador de diseño complejo para un diseño simple. – Zoe

Cuestiones relacionadas