java - con - barras de desplazamiento en JTextArea
quitar scroll textarea java (6)
Ponlo en un JScrollPane
Editar: Aquí hay un enlace para ti: http://java.sun.com/docs/books/tutorial/uiswing/components/textarea.html
¿Cómo agrego barras de desplazamiento a un JTextArea?
Primero tiene que definir un JTextArea como de costumbre:
public final JTextArea mainConsole = new JTextArea("");
Luego pones un JScrollPane sobre el TextArea
JScrollPane scrollPane = new JScrollPane(mainConsole);
scrollPane.setBounds(10,60,780,500);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
La última línea dice que la barra de desplazamiento vertical siempre estará allí. Hay un comando similar para horizontal. De lo contrario, la barra de desplazamiento solo se mostrará cuando sea necesario (o nunca, si usa _SCROLLBAR_NEVER). Supongo que es tu llamada la que quieres usar.
También puede agregar una palabra de texto a JTextArea si desea: Guiar aquí
Buena suerte,
Norma M
PD Asegúrese de agregar el ScrollPane al JPanel y no agregar el JTextArea.
Solo quería agradecer la primera publicación de un usuario que creo que se llama "coobird". Soy nuevo en este sitio web de .com, pero no puedo creer lo útil y útil que es esta comunidad ... así que gracias a todos por publicar buenos consejos y consejos para otros. De eso se trata una comunidad.
Ahora Coobird dijo correctamente:
Como Fredrik menciona en su respuesta, la forma más simple de lograr esto es colocar el JTextArea en un JScrollPane. Esto permitirá el desplazamiento del área de vista de JTextArea.
Me gustaría decir:
La declaración anterior es absolutamente verdadera. De hecho, había estado luchando con esto en Eclipse usando el plugin de WindowBuilder Pro porque no podía entender qué combinación de widgets me ayudaría a lograrlo. Sin embargo, gracias a la publicación de coobird, pude resolver esta frustración que me llevó días.
También me gustaría añadir que soy relativamente nuevo en Java a pesar de que tengo una base sólida en los principios. Los fragmentos de código y consejos que ustedes dan aquí son tremendamente útiles.
Solo quiero agregar otro tid-bit que pueda ayudar a otros. Noté que Coobird puso un código de la siguiente manera (para mostrar cómo crear un área de texto desplazable). El escribio:
JTextArea ta = new JTextArea();
JScrollPane sp = new JScrollPane(ta);
Me gustaría dar las gracias al fragmento de código anterior de coobird. No lo he probado directamente así, pero estoy seguro de que funcionaría bien. Sin embargo, puede ser útil para algunos que sepan que cuando hice esto usando la herramienta WindowBuilder Pro, obtuve algo más como el siguiente (que creo que es solo una forma ligeramente más "indirecta" para que WindowBuilder logre lo que ver en las dos líneas de arriba. Mi código se lee así:
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(23, 40, 394, 191);
frame.getContentPane().add(scrollPane);
JTextArea textArea_1 = new JTextArea();
scrollPane.setViewportView(textArea_1);`
Tenga en cuenta que WindowBuilder crea básicamente un JScrollPane llamado scrollpane (en las primeras tres líneas de código) ... luego establece la vista viewport en la siguiente línea: scrollPane.setViewportView (textArea_1). Así que en esencia, esta línea agrega el texto de la zona_1 en mi código (que obviamente es un JTextArea) para agregar a mi JScrollPane **, que es precisamente de lo que Coobird estaba hablando).
Espero que esto sea útil porque no quería que los desarrolladores de WindowBuilder Pro se confundieran pensando que los consejos de Coobird no eran correctos o algo así.
Mis mejores deseos para todos y feliz codificación :)
Forma simple de agregar JTextArea en JScrollBar con JScrollPan
import javax.swing.*;
public class ScrollingTextArea
{
JFrame f;
JTextArea ta;
JScrollPane scrolltxt;
public ScrollingTextArea()
{
// TODO Auto-generated constructor stub
f=new JFrame();
f.setLayout(null);
f.setVisible(true);
f.setSize(500,500);
ta=new JTextArea();
ta.setBounds(5,5,100,200);
scrolltxt=new JScrollPane(ta);
scrolltxt.setBounds(3,3,400,400);
f.add(scrolltxt);
}
public static void main(String[] args)
{
new ScrollingTextArea();
}
}
Como Fredrik menciona en su respuesta , la forma más simple de lograr esto es colocar el JTextArea
en un JScrollPane
. Esto permitirá el desplazamiento del área de vista de JTextArea
.
Solo para completar, lo siguiente es cómo se podría lograr:
JTextArea ta = new JTextArea();
JScrollPane sp = new JScrollPane(ta); // JTextArea is placed in a JScrollPane.
Una vez que JTextArea
se incluye en JScrollPane
, se debe agregar JScrollPane
a donde debería estar el área de texto. En el siguiente ejemplo, el área de texto con las barras de desplazamiento se agrega a un JFrame
:
JFrame f = new JFrame();
f.getContentPane().add(sp);
Gracias kd304 por mencionar en los comentarios que se debe agregar JScrollPane
al contenedor en lugar de a JTextArea
. Siento que es un error común agregar el área de texto al contenedor de destino en lugar del panel de desplazamiento con área de texto.
Los siguientes artículos de The Java Tutorials tienen más detalles:
txtarea = new JTextArea();
txtarea.setRows(25);
txtarea.setColumns(25);
txtarea.setWrapStyleWord(true);
JScrollPane scroll = new JScrollPane (txtarea);
panel2.add(scroll); //Object of Jpanel
Las líneas arriba indicadas le muestran automáticamente barras de desplazamiento horizontales y verticales.