Mostrando entradas con la etiqueta JOptionPane. Mostrar todas las entradas
Mostrando entradas con la etiqueta JOptionPane. Mostrar todas las entradas

Utilizando JTextArea y JOptionPane en Netbeans

02 abril 2009

JTextArea es un componente básico del Swing de Java y su función principal es la de capturar texto ingresado desde teclado por el usuario. Sin embargo, entre sus métodos está el de asignarle texto para mostrarlo además. Ahora explicaré un poco su uso con la ayuda de un pequeño ejemplo, el cual sería un pequeño bosquejo de un proyecto llamado Librería, en el cual estará para este ejemplo unicamente la clase Libro.

La construiremos de esta manera: Unicamente con tres atributos básicos, un constructor que los inicialice con valores constantes, y con los respectivos get y set de cada atributo. El código de dicha clase quedaría de la siguiente manera:



package
libreriajtextarea;

// @author Hugol

public class libro {

private String nombre;
private String autor;
private int numPags;

public libro(){
this.nombre="Cómo Programar en C/C++";
this.autor="Joyanes Aguilar";
this.numPags=500;
}

public String getNombre(){
return this.nombre;
}

public void setNombre(String n){
this.nombre=n;
}

public String getAutor(){
return this.autor;
}

public void setAutor(String a){
this.autor=a;
}

public int getNumPags(){
return this.numPags;
}

public void setNumPags(int n){
this.numPags=n;
}
}

Ahora en la clase Main la implementaremos para que podamos utilizar, tanto los JTextArea como los JOptionPane en nuestra introducción al Swing. El código del Main es así:

public class Main {

public static void main(String[] args) {

//se crea un nuevo JTextArea
JTextArea salida = new JTextArea();
String cadSalida = "";

//se crea un nuevo libro
libro book = new libro();

//Se coloca texto al JTextArea
salida.setText("El libro "+ book.getNombre()+ " tiene "+book.getNumPags()+ " paginas");

//Se muestra el texto en un JOptionPane
JOptionPane.showMessageDialog(null, salida, "Libreria", JOptionPane.INFORMATION_MESSAGE);

//Se limpia el JTextArea
salida.setText("");

//Se le asigna un tamaño de ancho y alto al JTextArea
salida.setSize(50, 50);

//Se le pide al usuario que escriba dentro del JTextArea en un JOptionPane
JOptionPane.showMessageDialog(null, salida, "Escribe el Editorial del libro JTextArea", JOptionPane.INFORMATION_MESSAGE);

//Se le asigna el texto escrito en el JTextArea a un String
cadSalida = salida.getText();

//Se imprime el String en un JOptionPane, demostrando q el JTextArea se puede utilizar tanto para recibir información como para mostrarla
JOptionPane.showMessageDialog(null, "Editorial de libro: " + cadSalida, "Libreria", JOptionPane.INFORMATION_MESSAGE);

}

}

Cabe mencionar que ya la clase JOptionPane proporciona un método de entrada de datos, el ya conocido showInputDialog(), sin embargo para fines didácticos se agrega un JTextArea para el ingreso de datos. La aplicación luce así:



Se muestra el JTextArea dentro JOptionPane.



El usuario digita dentro del JTextArea la editorial del libro.



Se muestra la respuesta.


Ejemplos creando JFrame y JOptionPane

30 marzo 2009

Es muy útil que nos vayamos introduciendo al mundo del ambiente gráfico en Java. Para ello hoy en día se utiliza el popular paquete de javax.swing. Las librerías swing nos aportan una serie de componentes y contenedores para realizar aplicaciones de escritorio.

Como ya en varios ejercicios se ha estado utilizando la famosa clase estática JOptionPane, ahora veremos las diferencias y cómo instanciar un nuevo formulario, que en el Swing es llamado JFrame. Así podremos ver las diferencias y podemos aprender a crear nuestros primeros formularios en Java.

Lo haremos utilizando el ejercicio que se usó en un parcial. Que se calcularan los factoriales de los números impares menores que 2 y se mostraran al usuario. Se hará de dos formas: con un JOptionPane y con un JFrame.

Antes que nada creamos la clase factorial que nos devolverá el factorial del número que se le ingrese:


package factoriales21;
/** * * @author Hugol */
public class factorial {


private int numero;
private double resultado;

//Constructor
public factorial(int num){
this.numero=num;
this.resultado=1;
}

//Devuelve el factorial
public double devolverFactorial(){
for (int i=1; i<=this.numero;i++){
this.resultado*=i;
}
return this.resultado;
}
}


Ahora, dentro de la clase Main instanciaremos nuestro JFrame y el JOptionPane, para que muestre los factoriales debidos. Se hace de esta manera. Note que el código está debidamente documentado:


package factoriales21;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

/** * * @author Hugol */

public class Main {

public static void main(String[] args) {

//Creamos un nuevo JTextArea
JTextArea area = new JTextArea();

//Instanciamos un nuvo JFrame, pasándole como argumento, el título
JFrame form = new JFrame("Este es un JFrame");

//Variable para almacenar la salida en pantalla
String salida = "Los factoriales de los numeros impares menores que 21 son:\n";

for (int i=1;i<=21;i++){
if
(i%2 != 0){
factorial obj=new factorial(i);
salida = salida + String.valueOf(obj.devolverFactorial()) +", ";
}
}

//La salida en pantalla se la asignamos como texto al JTextArea
area.setText(salida);

//Llamamos un nuevo JOptionPane
JOptionPane.showMessageDialog(null, area, "Este es un JOptionPane", JOptionPane.INFORMATION_MESSAGE);

//Con esta sentencia declaramos que cuando se cierre el JFrame la aplicación se cierra también form.setDefaultCloseOperation(javax.swing.WindowConstants.
EXIT_ON_CLOSE
);

//Añadimos el componente JTextArea al JFrame
form.add(area);

//Le asignamos como posición del JFrame, el centro de la pantalla
form.setLocationRelativeTo(null);

//Con esta sentencia, le asignamos el tamaño de lo que contiene al JFrame
form.pack();

//Colocamos visible al usuario el formulario
form.setVisible(true);
}
}

Y ahi tenemos la aplicación. Se tiene que ver muy parecido a esto: