Java: Formulario PDF GTK+

Formulario GTK

Tenia pendiente de subir este proyecto pero por falta de tiempo y situaciones de ocio no me animaba a subirlo, solo es un pequeño formulario que estando lleno cada campo explota el ordenador… No, es broma, como el titulo lo intuye, genera un PDF al dar click en el botón Opciones y Generar PDF, las dependencias usadas para compilarlo son:

  • GTK 3.20
  • java-gnome 4.1.3
  • itextpdf

El proyecto esta bajo Gradle que me esta facilitando tareas al momento de desarrollar software 😀 , la intención por la que quise hacer este mini proyecto es darle seguimiento al uso de la libreria java-gnome, aprender sobre el uso de los ComboBox.

El codigo esta en mi repositorio de GitHub, lo pueden clonar pegando la siguiente linea en la terminal:

$ git clone https://github.com/OrigenData/Formulario-PDF-GTK.git

La interfaz esta generada en Glade así que solo se tendría que generar el contenido que debe tener el ComboBox, dando ejemplo la opción del tipo de Sexo de tal persona, se tiene que llamar a las clases necesarias.

import org.gnome.gtk.Gtk;
import org.gnome.gtk.ListStore;
import org.gnome.gtk.TreeIter;
import org.gnome.gtk.DataColumnString;
import org.gnome.gtk.ComboBox;
import org.gnome.gtk.CellRendererText;

public class Main {

	ListStore listStoreSex;
	DataColumnString sexId;
	CellRendererText sex_cellRendererId;
	TreeIter row;
	String sex[] = {"Hombre","Mujer"};
	// Continua ....
}

Crearemos un modelo en lista con la clase ListStore es parecido a generar un TreeView, también se crea un Array donde se almacena la lista de opciones que contendrá nuestro ComboBox.

SEX = (ComboBox) BUILDER.getObject("ID_sexo");

listStoreSex = new ListStore(new DataColumnString[] {

	sexId = new DataColumnString(),
	});

SEX.setModel(listStoreSex);
sex_cellRendererId = new CellRendererText(SEX);
sex_cellRendererId.setText(sexId);

for (String string : sex) {
	row = listStoreSex.appendRow();
	listStoreSex.setValue(row, sexId, string);
}

Habiendo creado nuestro modelo también cargamos lo que tenemos en nuestro Array sex con un foreach para que sea visible en nuestro ComboBox.

Cada vez que el usuario seleccione el tipo de sexo el propio ComboBox debe de detectarlo con el método getActive() para que al momento de generar el PDF sea el resultado que selecciono.

String sx = null;

if(SEX.getActive()!=-1) {
	sx = String.format("Sexo : "+sex[SEX.getActive()]);
}

Dejo un video con el proyecto ya compilado y funcionando:

Referencia:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s