Você está na página 1de 5

Interfaz paquete;

automatas.Automata importacin;
automatas.Arco importacin;
automatas.Estado importacin;
automatas.ListaEstados de importacin;
graphviz.GraphViz importacin;
javax.swing.ImageIcon importacin;
javax.swing.JLabel importacin;
javax.swing.JOptionPane importacin;
/ **
* Clase Encargada de Obtener la imagen del grafo y ponerla en Pantalla
*
*author Marco Alvarez
*author Sebastian Lena
* /
public class DibujarAutomata extiende javax.swing.JFrame {
autmatas Autmatas privado;
/ ** Crea forma nueva DibujarAutomata
* @ Param un Autmatas un Graficar
* /
pblica DibujarAutomata (Autmatas a) {
this.automata = a;
initComponents ();
this.dibujarAutomata ();
Aceptar.requestFocus ();
}
/ ** Este mtodo se llama desde dentro del constructor para
* Inicializar el formulario.
* ADVERTENCIA: NO modifique el cdigo. El contenido de este mtodo
es
* Siempre regenerado por el editor de formularios.
* /
SuppressWarnings ("Sin control")
// <DefaultState editor veces = "colapsado" desc = "cdigo generado">
// GEN-BEGIN: initComponents
initComponents private void () {
jLabelExpReg = new javax.swing.JLabel ();
jTextFieldExpReg = new javax.swing.JTextField ();
Aceptar = new javax.swing.JButton ();
jPanel1 = new javax.swing.JPanel ();
jScrollPane1 = new javax.swing.JScrollPane ();
imagen = new javax.swing.JLabel ();
setTitle ("Grfico Autmatas");
setResizable (false);
jLabelExpReg.setText ("Expresin regular:");
jTextFieldExpReg.setEditable (false);
Aceptar.setText ("Aceptar");

Aceptar.addActionListener (nuevo java.awt.event.ActionListener ()


{
public void actionPerformed (evt java.awt.event.ActionEvent)
{
AceptarActionPerformed (evt);
}
});
jPanel1.setBackground (javax.swing.UIManager.getDefaults ()
getColor ("Menu.selectionBackground").);
jScrollPane1.setBackground(javax.swing.UIManager.getDefaults().getColor("
Menu.selectionBackground"));
jScrollPane1.setBorder
(javax.swing.BorderFactory.createTitledBorder (null, "Grafico",
javax.swing.border.TitledBorder.CENTER,
javax.swing.border.TitledBorder.DEFAULT_POSITION, nueva java.awt.Font
("Tahoma", 0 , 11), nueva java.awt.Color (255, 255, 255))); // NOI18N
jScrollPane1.setViewportView (imagen);
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout (jPanel1);
jPanel1.setLayout (jPanel1Layout);
jPanel1Layout.setHorizontalGroup (
jPanel1Layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 626,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
jPanel1Layout.setVerticalGroup (
jPanel1Layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 502,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
diseo javax.swing.GroupLayout = new javax.swing.GroupLayout
(getContentPane ());
getContentPane () setLayout (layout).;
layout.setHorizontalGroup (
layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup ()
.addContainerGap (565, Short.MAX_VALUE)
.addComponent (Aceptar)
.addContainerGap ())
.addGroup (layout.createSequentialGroup ()
.addContainerGap ()
.addGroup (layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup (layout.createSequentialGroup ()
.addComponent (jLabelExpReg)
.addPreferredGap
(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent (jTextFieldExpReg,
javax.swing.GroupLayout.PREFERRED_SIZE, 246,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap (javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
layout.setVerticalGroup (
layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addContainerGap ()
.addGroup (layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (jLabelExpReg)
.addComponent (jTextFieldExpReg,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap
(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent (jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap
(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent (Aceptar)
.addContainerGap (javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
pack ();
} // </ Editor veces> // GEN-END: initComponents
void AceptarActionPerformed (evt java.awt.event.ActionEvent) private
{// GEN-PRIMERA: event_AceptarActionPerformed
this.setVisible (false);
} // GEN-LAST: event_AceptarActionPerformed
/ **
* Setea la Expresion Regular Dentro del JTextField
* @ Param texto Expresion Regular
* /
public void setExpresion (String text) {
this.jTextFieldExpReg.setText (texto);
}
/ *
* Metodo Que COLOCA la imagen en el JLabel imagen
* /
void dibujarAutomata privado () {

this.imagen.setIcon (null);
ImageIcon i = null;
i = this.obtenerImagen ();
if (i! = null) {
this.imagen.setIcon (i);
} Else {
JOptionPane.showMessageDialog (this,
"Ha ocurrido inesperado error un!",
"Error", JOptionPane.ERROR_MESSAGE);
volver;
}
this.imagen.setHorizontalAlignment (JLabel.CENTER);
this.imagen.repaint ();
}
/ *
* Metodo Que obtiene la imagen del GraphViz
* /
ImageIcon privado obtenerImagen () {
GraphViz graphviz = new GraphViz ();
Icono ImageIcon;
byte [] imagenBytes;
imagenBytes = graphviz.dibujar (this.generarDot ());
icon = new ImageIcon (imagenBytes);
icono de volver;
}
/ **
* Genera la sintaxis Para La Construccion del autmata MEDIANTE EL
Graphviz
* @ Return Sintaxis Dot
* /
public String generarDot () {
Cadena de cabecera = "dgrafo finite_state_machine {\ n \
trankdir = LR; \ n \ toverlap = escala; \ n";
Nodos String = "\ TNODE [shape = circle]; \ n";
Cadena arcos = "";
Estilos String = "";
ListaEstados ESTADOS = this.automata.getEstados ();
para (e Estado: Estados) {
if (e.isEstadofinal ())
Estilos = "[shape = doublecircle]";
else if (e.isEstadoinicial ())
Estilos = "[label = inicio]";
dems
Estilos = "[shape = circle]";
nodos + = "\ t" + e.getId () + "" + Estilos + "\ n";
para (Arco de ENLACE: e.getEnlaces ()) {
Estado orig = enlace.getOrigen ();
Estado dest = enlace.getDestino ();
Etiqueta String = enlace.getEtiqueta ();

Cadena EnlaceStyle = "[label = \" "+ etiqueta +" \ "]";


arcos + = "\ t" + orig.getId () + "->" + dest.getId () +
"" + EnlaceStyle + "\ n";
}
}
String result = cabecera + nodos + arcos + "}";
return resultado;
}
// Variables declaracin - no modifique // GEN-COMIENZO: Las
variables
privada Aceptar javax.swing.JButton;
imagen javax.swing.JLabel privado;
privado jLabelExpReg javax.swing.JLabel;
privado jPanel1 javax.swing.JPanel;
privado jScrollPane1 javax.swing.JScrollPane;
privado jTextFieldExpReg javax.swing.JTextField;
// Fin de la declaracin de variables // GEN-END: Variables
}

Você também pode gostar