// Demostración de la limpieza de la pila.
public class UsoExcepciones {
public static void main( String args[] )
{
// llamar a lanzaExcepcion para demostrar la limpieza de la pila
try {
lanzaExcepcion();
}
// atrapar excepción lanzada en lanzaExcepcion
catch ( Exception excepcion ) {
System.err.println( "La excepcion se manejo en main" );
}
}
// lanzaExcepcion lanza la excepción que no es atrapada en este método
public static void lanzaExcepcion() throws Exception
{
// lanzar una excepción y atraparla en main
try {
System.out.println( "El metodo lanzaExcepcion" );
throw new Exception(); // generar excepción
}
// catch es del tipo incorrecto, por lo que la excepción no es atrapada
catch( RuntimeException excepcionTiempoEjecucion ) {
System.err.println(
"La excepcion se manejo en el metodo lanzaExcepcion" );
}
// la cláusula finally siempre se ejecuta
finally {
System.err.println( "Finally siempre se ejecuta" );
}
} // fin del método lanzaExcepcion
}
jueves, 3 de noviembre de 2011
Uso de Exceptions I
// Demostración del mecanismo try-catch-finally para manejar excepciones.
public class UsoExcepciones {
public static void main( String args[] )
{
try {
lanzarExcepcion(); // llamar al método lanzarExcepcion
}
// atrapar excepciones lanzadas por el método lanzarExcepcion
catch ( Exception excepcion ) {
System.err.println( "La excepcion se manejo en main" );
}
noLanzaExcepcion();
}
// demostrar try/catch/finally
public static void lanzarExcepcion() throws Exception
{
// lanzar una excepción y atraparla inmediatamente
try {
System.out.println( "El metodo lanzarExcepcion" );
throw new Exception(); // generar excepción
}
// atrapar la excepción lanzada en el bloque try
catch ( Exception excepcion ) {
System.err.println(
"La excepcion se manejo en el metodo lanzarExcepcion" );
throw excepcion; // volver a lanzar para procesarla posteriormente
// cualquier código aquí no llegaría a ejecutarse
}
// este bloque se ejecuta, sin importar lo que ocurra en try/catch
finally {
System.err.println( "Finalmente se ejecuto en lanzarExcepcion" );
}
// cualquier código aquí no llegaría a ejecutarse
} // fin del método lanzarExcepcion
// demostrar finally cuando no ocurre excepción
public static void noLanzaExcepcion()
{
// el bloque try no lanza una excepción
try {
System.out.println( "El metodo noLanzaExcepcion" );
}
// catch no se ejecuta, porque no se lanzó una excepción
catch( Exception excepcion ) {
System.err.println( excepcion );
}
// la cláusula this se ejecuta, sin importar lo que ocurra en try/catch
finally {
System.err.println(
"Finalmente se ejecuto en noLanzaExcepcion" );
}
System.out.println( "Fin del metodo noLanzaExcepcion" );
} // fin del método noLanzaExcepcion
} // fin de la clase UsoExcepciones
public class UsoExcepciones {
public static void main( String args[] )
{
try {
lanzarExcepcion(); // llamar al método lanzarExcepcion
}
// atrapar excepciones lanzadas por el método lanzarExcepcion
catch ( Exception excepcion ) {
System.err.println( "La excepcion se manejo en main" );
}
noLanzaExcepcion();
}
// demostrar try/catch/finally
public static void lanzarExcepcion() throws Exception
{
// lanzar una excepción y atraparla inmediatamente
try {
System.out.println( "El metodo lanzarExcepcion" );
throw new Exception(); // generar excepción
}
// atrapar la excepción lanzada en el bloque try
catch ( Exception excepcion ) {
System.err.println(
"La excepcion se manejo en el metodo lanzarExcepcion" );
throw excepcion; // volver a lanzar para procesarla posteriormente
// cualquier código aquí no llegaría a ejecutarse
}
// este bloque se ejecuta, sin importar lo que ocurra en try/catch
finally {
System.err.println( "Finalmente se ejecuto en lanzarExcepcion" );
}
// cualquier código aquí no llegaría a ejecutarse
} // fin del método lanzarExcepcion
// demostrar finally cuando no ocurre excepción
public static void noLanzaExcepcion()
{
// el bloque try no lanza una excepción
try {
System.out.println( "El metodo noLanzaExcepcion" );
}
// catch no se ejecuta, porque no se lanzó una excepción
catch( Exception excepcion ) {
System.err.println( excepcion );
}
// la cláusula this se ejecuta, sin importar lo que ocurra en try/catch
finally {
System.err.println(
"Finalmente se ejecuto en noLanzaExcepcion" );
}
System.out.println( "Fin del metodo noLanzaExcepcion" );
} // fin del método noLanzaExcepcion
} // fin de la clase UsoExcepciones
Juego Marcianitos
Demostracion Apariencia visual basica
// Cambio de la apariencia visual.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DemoAparienciaVisual extends JFrame {
private final String cadenas[] = { "Metal", "Motif", "Windows" };
private UIManager.LookAndFeelInfo apariencias[];
private JRadioButton opcion[];
private ButtonGroup grupo;
private JButton boton;
private JLabel etiqueta;
private JComboBox cuadroCombinado;
String s1="";
// configurar la GUI
public DemoAparienciaVisual()
{
super( "Demo de apariencia visual" );
Container contenedor = getContentPane();
// establecer panel para región NORTH de esquema BorderLayout
JPanel panelNorte = new JPanel();
panelNorte.setLayout( new GridLayout( 3, 1, 0, 5 ) );
// establecer etiqueta para panel NORTH
etiqueta = new JLabel( "Ésta es la apariencia visual Metal seleccionada",
SwingConstants.CENTER );
panelNorte.add( etiqueta );
// establecer botón para panel NORTH
boton = new JButton( "JButton" );
panelNorte.add( boton );
// establecer cuadro combinado para panel NORTH
cuadroCombinado = new JComboBox( cadenas );
panelNorte.add( cuadroCombinado );
// crear arreglo para botones de opción
opcion = new JRadioButton[ cadenas.length ];
// establecer panel para región SOUTH de esquema BorderLayout
JPanel panelSur = new JPanel();
panelSur.setLayout( new GridLayout( 1, opcion.length ) );
// establecer botones de opción para panel SOUTH
grupo = new ButtonGroup();
ManejadorEventos manejador = new ManejadorEventos();
for ( int cuenta = 0; cuenta < opcion.length; cuenta++ ) {
opcion[ cuenta ] = new JRadioButton( cadenas[ cuenta ] );
opcion[ cuenta ].addItemListener( manejador );
grupo.add( opcion[ cuenta ] );
panelSur.add( opcion[ cuenta ] );
}
// adjuntar paneles NORTH y SOUTH al panel de contenido
contenedor.add( panelNorte, BorderLayout.NORTH );
contenedor.add( panelSur, BorderLayout.SOUTH );
// obtener información de la apariencia visual instalada
apariencias = UIManager.getInstalledLookAndFeels();
setSize( 300, 200 );
setVisible( true );
opcion[ 0 ].setSelected( true );
} // fin del constructor de DemoAparienciaVisual
// usar UIManager para cambiar la apariencia visual de la GUI
private void cambiarLaAparienciaVisual( int valor )
{
// cambiar la apariencia visual
try {
UIManager.setLookAndFeel( apariencias[ valor ].getClassName() );
SwingUtilities.updateComponentTreeUI( this );
s1= apariencias[ valor ].getClassName();
}
// procesar problemas al cambiar la apariencia visual
catch ( Exception excepcion ) {
excepcion.printStackTrace();
}
}
public static void main( String args[] )
{
DemoAparienciaVisual aplicacion = new DemoAparienciaVisual();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
// clase interna privada para manejar eventos de botones de opción
private class ManejadorEventos implements ItemListener {
// procesar selección de apariencia visual del usuario
public void itemStateChanged( ItemEvent evento )
{
for ( int cuenta = 0; cuenta < opcion.length; cuenta++ )
if ( opcion[ cuenta ].isSelected() ) {
etiqueta.setText( "Ésta es la apariencia visual " +
s1 + " seleccionada"+cuenta );
cuadroCombinado.setSelectedIndex( cuenta );
cambiarLaAparienciaVisual( cuenta );
}
}
} // fin de la clase interna privada ManejadorEventos
} // fin de la clase DemoAparienciaVisual
Suscribirse a:
Entradas (Atom)

