Formularios Java con scroll

Juan Pablo Angamarca.

 

Este va a ser el primero de los pequeños aportes que voy a hacer con respecto a programación en Java, espero que podamos enriquecer este espacio con preguntas y opiniones. No pretendo ser un experto, de hecho no lo soy, y por eso, es bueno que colaboremos todos.

 

Hace unos días una compañera de segundo ciclo me expuso un problema, al diseñar un formulario, eran visibles todos los componentes dentro del JFrame, pero en tiempo de ejecución era necesario cambiar de tamaño al formulario y al hacerlo, perdían visibilidad algunos componentes, siendo necesario tener siempre el JFrame en su tamaño original para poder ver todo lo que contenía.

 

Presento aquí una solución muy sencilla, para esto necesitaremos:

 

1) NetBeans IDE y JDK 1.5 o superior. Por cierto, ya está disponible la versión de NetBeans 5.5.1. Usar un IDE ahorra el tener que pelearse con todo el código Java que antes se escribía por cuenta propia.

2) Conocimientos de Java y NetBeans.

3) Un poco de paciencia.

 

Asumiendo que tenemos creado un proyecto, creamos un nuevo JFrame. En este caso, mi clase será ScrollableJFrame.java.

 

 

 

Insertamos un objeto JPanel para diseñar sobre él nuestra interfaz de usuario.

 

 

 

En el panel Inspector (Menú Window > Inspector, suele estar ubicado a la izquierda en el IDE) cambiaremos el nombre de variable del recién insertado objeto a PanelInterfazUsuario. Es una buena práctica de programación darles nombres significativos a los componentes, y no dejarlos con el nombre que da el IDE por defecto al insertarlos. En este ejemplo sólo renombraré los componentes que interesan por ahora.

 

 

 

Hacemos clic derecho sobre PanelInterfazUsuario y seleccionamos la opción Design This Container. En la nueva vista insertamos los componentes necesarios para nuestra interfaz. Luego, para volver al JFrame, hacemos doble clic en el componente JFrame en la ficha Inspector.

 

 

 

 

 

Insertamos desde la paleta un objeto JScrollPane. Este objeto creará barras de desplazamiento en los bordes del JPanel si no todos sus componentes son visibles con un tamaño de formulario dado. Cambiamos el nombre del JScrollPane a scrollFormulario. Si deseamos podemos cambiarle el tipo de borde en la paleta Properties > Border, donde nos aparecerá una serie de opciones de borde.

 

 

 

 

Arrastramos PanelInterfazUsuario sobre scrollFormulario, y lo soltamos cuando aparezcan líneas discontinuas sobre el scrollFormulario. Ambos quedarán fusionados y PanelInterfazUsuario tendrá barras de desplazamiento en sus bordes. Ajustamos el tamaño del JFrame, seleccionamos el componente scrollFormulario y ajustamos su tamaño hasta que coincida con los bordes del formulario.

 

 

 

Si queremos cambiar algún detalle de PanelInterfazUsuario, podemos sacarlo del JScrollPane. Para esto arrastramos su icono en la pestaña Inspector hasta encima del icono del JFrame, de esta forma scrollFormulario y PanelInterfazUsuario quedarán separados de nuevo.

 

 

A continuación ejecutamos ScrollableJFrame.java. Veremos que podemos hacerlo más grande que su tamaño original, pero si lo hacemos más pequeño, aparecerán las barras para ver lo que falta de formulario.

 

 

Esto ha sido algo bastante sencillo, y todo necesita práctica. Hasta una próxima oportunidad, agradeceré sus preguntas y opiniones.

22 responses

11 09 2007
Maricelys

Chevere… gracias por tu trabajo. Saludos.

8 04 2008
ricardo ramos

Que tal,,, oye, como puedo recuperar la informacion que el usuario escriba en un cuadro de texto, estoy desarrollando un programa que genera archivos aleatorios,,, debo crear una interfaz para recoger los datos de entrada. ya logre hacer el formulario, pero que propiedad uso para vaciar el contenido de los cuadros de texto en variables para despues grabarlas en archivos?

thanks

9 04 2008
Juan Pablo Angamarca

@ricardo, debes usar las propiedades getText() y setText(String t) de objetos ya sean JTextField o JTextArea:


/* texto: variable String para recoger el texto. jtaTexto es un JTextArea.*/
String texto = this.jtaTexto.getText();
RandomAccessFile archivo; // Flujo aleatorio.
try {
// Crear/acceder al archivo "archivo.dat" en modo read/write.
archivo = new RandomAccessFile("archivo.dat", "rw");
archivo.writeUTF(texto); // Escribir el texto en el archivo.
this.jtaTexto.setText(""); // Limpiar el cuadro de texto.
archivo.close(); //Cerrar el archivo.
} catch (IOException ex) { // Capturar posibles excepciones
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "Error al escribir en el archivo",
"Error", JOptionPane.ERROR_MESSAGE);
}

23 02 2010
Jose

Saludos..
Estoy desarrollando un programa el cual debe imprimir un formato de hoja con multiples campos, los cuales deben ser llenados con datos que se ingresen en el programa o se seleccionen de una base de datos. ¿Que me aconsejas?

17 04 2008
Juan

Muy interesante el desarrollo de la clase.
Continua en particular modelando tipos de formulario.
¿Hay algún codigo sobre historia clinica digital modelada en java con formularios apropiados?
Gracias

26 05 2008
xchande

Muy buen aporte Juan Pablo, me parece una solución práctica… tienes el merito… Saludos. Nota: Piensa en JAVA

27 05 2008
xchande

Estoy muy entusiasmado con java, yo particularmente me desenvuelvo es en PHP, y otros lenguajes que ayudan en el desarrollo web como javascript… pero tengo cerca de dos meses metiendome con java y de verdad que me gusta ese lenguaje. Creo que Java tiene mucha potencia ademas de ser robusto.. Bueno mi genta hablamos luego.. saludos

28 05 2008
Juan Pablo Angamarca

@xchande, me alegro que te intereses en Java. Java no es solamente un lenguaje de programación sino una plataforma rica de desarrollo sobre todo tipo de arquitectura y entorno. Y algo muy bueno, desde hace algún tiempo ya es una tecnología Open Source. Mucha suerte en el viaje que estás empezando, estaré presto a ayudarte si así lo necesitas.

26 04 2010
miguel

me gustaria aprender java spy nuevo en esto

16 07 2008
David

Muy Bueno!!!
Yo tambien estoy interesado en aprender el lenguaje, si no es molestia me decis como hago para conectarme a una base de datos Ej: Sql server ’05, asi uso el formulario que hiciste y lo voy cargando en la base de datos.

Saludos.

25 07 2008
xchande

Hola de nuevo, hace unos meses comenté que estaba comenzando con Java, y bueno, el aprendizaje ha sido gradual, y un poco obstaculizado pero a pesar de eso, sigo con paciencia aprendiendo Java, hoy por cierto estoy practicando lo de los formularios y ademas estoy un poquito metido con el Java ME.. En fin, sigan con Java que desde aqui yo seguire dandole.. Saludos a todos.. Un saludo Juan, y te tomare la palabra con eso de ayudarme en las dudas.

20 08 2008
Frank David

Buenas quisiera de su colaboración para conectar mi aplicación que se encuentra en PC con un servidor de la red. Actualmente tengo que configurar windows conectando la unidad de red. Ejemplo Y:\\srvft20\kdm. Lo que quiero evitar es que el cliente no haga esos pasos para poder leer los archivos.
Muchas Gracias de ante mano por su apreciada colaboración.
Saludos Éxito…

4 11 2008
nayi

cual es el codigo en java para crear un formulario cualquiera . Estoy trabajando en el eclipse, perspectiva seam

13 04 2009
einner

ccomo puedo crear un formulario de esos pero en jcreator le?

15 04 2009
Juan Pablo Angamarca

@elnner Debe ser de alguna forma parecida, la verdad no he trabajado con JCreator.

8 06 2009
fausto08

juan pablo, como harias para mostrar el contenido de ese formulario impreso en un jdialog o joptionpane en el netbeans y para que te quede guardado en el disco duro como txt.
Gracias

27 07 2009
Luis

Necesito de alguien q me pueda ayudar, yo tambien estoy empezando en java y mi pregunta es la siguiente: Sera q en netbeans se puede programar un jsrcollbar en jframe sin necesidad de un jscrollpane y si se puede, me pueden dar un ejemplo de como se hace??? Es q lo necesito para una exposicion de la u, agradeceria mucho mi ayuda, si quieren pueden mandarme la respuesta a cresta666@hotmail.com.

21 09 2009
Levi Hurtado

Hola amigos..!!…bueno mi duda es la siguiente: tengo un programa hecho en java y quisiera saber como hago para que el programa se ejecute nada mas con hacer doble clic, ya que el programa es para un usuario «no programador», se los agradeceria..!!..exitos..!!..espero su respuesta…les dejo mi correo por si acaso: levia_22@hotmail.com
Dios Les Bendiga..!!

13 11 2009
lina

hola…de casualidad alguno sabe como es el codigo o como es para crear formularios en jcreator…o java ….. se los agradeceria ………

25 04 2013
alberto sanchez

Excelente muchas gracias es lo que andaba buscando, ya que yo quiero colocar una ficha y dentro colocar los label para mostrar los datos de la base de datos,muchas gracias.

25 05 2013
Evelyn

Hola:
Estoy desarrollando un programa en netbeans de una tienda de ropa,
el cual al dar click a un boton mande la cantidad a otro Jframe y las vaya sumando, me podrias ayudar?

gracias

12 03 2014
Alfredo Valle

Mi amigo, después de horas de búsqueda al fin encontré como hacerlo GRACIAS!!!!!!!!!

Deja un comentario