viernes, 24 de junio de 2011

Como usar un JRadioButton y ButtonGroup Java

ButtonGroup se utiliza para presentar al usuario un conjunto de opciones excluyentes entre si, es decir si el usuario selecciona un componente RadioButton todos los demás componentes RadioButton en la forma, se desmarcan solos.
Aquí se muestra la clase en la cual se crean los JRadioButton y el ButtonGroup:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class componentes extends JFrame{

private JTextField tf;
private Font pf;
private Font bf;
private Font itf;
private Font bif;
private JRadioButton pb;
private JRadioButton bb;
private JRadioButton ib;
private JRadioButton bib;
private ButtonGroup group;


public componentes(){
super ("El Dark Blog");
setLayout (new FlowLayout());

// Creamos un JTextField
tf = new JTextField("Dark les explico el JRadioButton", 25);
add(tf);

// Creamos los JRadioButton
pb = new JRadioButton("plain", true);
bb = new JRadioButton("bold", false);
ib = new JRadioButton("italic", false);
bib = new JRadioButton("bold y italic", false);
// Agregamos los JRadioButton a nuestro JFrame
add(pb);
add(bb);
add(ib);
add(bib);

// A los JRadioButton los reunimos en un ButtonGroup
group = new ButtonGroup();
group.add(pb);
group.add(bb);
group.add(ib);
group.add(bib);

pf = new Font("Serif", Font.PLAIN, 14);
bf = new Font("Serif", Font.BOLD, 14);
itf = new Font("Serif", Font.ITALIC, 14);
bif = new Font("Serif", Font.BOLD + Font.ITALIC, 14);
tf.setFont (pf);

// Registramos los escuchas de los JRadioButton
pb.addItemListener (new HandlerClass (pf));
bb.addItemListener (new HandlerClass (bf));
ib.addItemListener (new HandlerClass (itf));
bib.addItemListener (new HandlerClass (bif));

}
private class HandlerClass implements ItemListener{
private Font font;

public HandlerClass (Font f){
font = f;

}
public void itemStateChanged(ItemEvent event){
tf.setFont (font);
}

}

}
---------------------------------------------------------------
También les dejo el archivo en el cual se encuentra el ejemplo realizado en NetBeans, aquí el link para descargarlo.

martes, 14 de junio de 2011

Dibujando grafos en Graphviz

¿Pero que es Graphviz?

Es una aplicación de visualización de gráficos de código abierto que incluye un gran número de programas de trazado de grafico; además cuenta con interfaces interactivas y vía web, así como herramientas auxiliares y bibliotecas de funciones, existiendo versiones tanto para Windows como para Linux.

Graphviz cuenta con muchas características para personalizar los diagramas tales como opciones para etiquetas, colores, fuentes, diseños en forma de tabla, estilos de línea, enlaces y formas. En la práctica, los gráficos suelen ser generados partiendo de fuentes externas de datos, pero también puede hacerse manualmente, bien editando un fichero de texto plano en lenguaje DOT o bien mediante un editor gráfico.

dot: realiza dibujos “jerárquicos” o por capas de gráficos directos. El algoritmo de representación trata de colocar todos los enlaces en la misma dirección (de arriba abajo o de izquierda a derecha) y después trata de evitar los cruces entre enlaces, y por último, reducir sus longitudes.

neato: crea “trazados elásticos”. emplea el algoritmo Kamada-Kawai, que es equivalente a un escalado estadístico multidimensional.

fdp: crea “trazados elásticos”. Implementa el heurístico Fruchterman-Reingold que incluye un solucionador por cuadrículas para manejar los gráficos más grandes y los grupos dentro de los gráficos indirectos.

twopi: diagrama radial. Se sitúan los nodos en círculos concéntricos dependiendo de su distancia a un nodo raíz dado.

*************************************************************************************
Para realizar la instalación en Linux refiriéndome a la distribución de Ubuntu basta con escribir lo siguiente en una terminal:

sudo apt-get install graphviz

Teniendo instalado el programa, crearemos un archivo con extensión .dot en el cual escribiremos el código que generara nuestro grafo.

Ejemplo:

digraph graf {
size = "4,4";
main [shape=box];
main -> parse [weight=8];
parse -> execute;
main -> init [style=dotted];
main -> cleanup;
execute -> {make_string; printf}
init -> make_string;
edge [color=red];
main -> printf [style=bold, label="100 times"];
make_string [label="make a\nstring"];
node [shape=box,style=filled,color=".7 .3 1.0"];
execute -> compare;
}


// Para generar el gráfico abrimos una terminal, nos direccionamos en la carpeta donde tengamos guardado el archivo .dot, ahora en la terminal escribimos lo siguiente:

dot -Tjpg graf.dot -o graf.jpg

graf.dot -> seria el nombre que le demos al archivo que contenga el código para generar el grafo.

graf.jpg -> es el nombre que le daremos a nuestro gráfico y el tipo de formato.

El gráfico tendría que quedar a si :