2012-01-13 31 views
22

Estoy tratando de agregar una barra de desplazamiento a un JTextArea. ¿Alguien podría decirme qué hice mal con el código a continuación?Agregar un JTextArea desplazable (Java)

JFrame frame = new JFrame ("Test"); 
JTextArea textArea = new JTextArea ("Test"); 

JScrollPane scrollV = new JScrollPane (textArea); 
JScrollPane scrollH = new JScrollPane (textArea); 

scrollV.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
scrollH.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
frame.setVisible (true); 

Gracias de antemano.

EDIT: he arreglado el código con los consejos de Adel Boutros a continuación.

//FRAME 
JFrame frame = new JFrame ("Test"); 
frame.setSize(500,500); 
frame.setResizable(false); 
// 

//TEXT AREA 
JTextArea textArea = new JTextArea("TEST"); 
textArea.setSize(400,400);  

    textArea.setLineWrap(true); 
    textArea.setEditable(false); 
    textArea.setVisible(true); 

    JScrollPane scroll = new JScrollPane (textArea); 
    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
      scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

    frame.add(scroll); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
+0

@AdelBoutros no, el código es correcto PO ahora - por favor, actualice su respuesta a la PO edición :-) – kleopatra

Respuesta

33

No funciona porque no ha colocado el ScrollPane en el JFrame.

Además, no es necesario JScrollPanes 2:

JFrame frame = new JFrame ("Test"); 
JTextArea textArea = new JTextArea ("Test"); 

JScrollPane scroll = new JScrollPane (textArea, 
    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

frame.add(scroll); 
frame.setVisible (true); 
+1

frame.add (desplazamiento, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS) ;? ¿Dónde está este método? –

+0

@JBNizet Lo arreglé, gracias. –

+0

no - ese no era el punto (el complemento directo está bien;) – kleopatra

5

No necesita dos JScrollPanes.

Ejemplo:

JTextArea ta = new JTextArea(); 
JScrollPane sp = new JScrollPane(ta); 

// Add the scroll pane into the content pane 
JFrame f = new JFrame(); 
f.getContentPane().add(sp); 
5

Un panel de desplazamiento es un contenedor que contiene otro componente. No puede agregar su área de texto a dos paneles de desplazamiento diferentes. El panel de desplazamiento se ocupa de las barras de desplazamiento horizontal y vertical.

Y si nunca agrega el panel de desplazamiento al marco, nunca será visible.

Lea el swing tutorial about scroll panes.

2
  1. vista de diseño abierto
  2. Haga clic derecho a textArea
  3. abierta envolvente con opción
  4. seleccione "... JScrollPane".
Cuestiones relacionadas