"Mientras tanto el programador trata de entender el mundo a través de código, olvidando que puede hacerlo con un simple vistazo"
1. Creando nuestras propias excepciones, creamos una clase llamada "MyNumberException" que extiende de la clase Exception, si el número es mayor a 500 o menor a 0 ocurrirá la excepción
public class Codemonkey{
static void setValor(int x)throws MyNumberException{
if(x>500 || x<0)
throw new MyNumberException("debes introducir un valor menor a 500 y mayor a 0");
// se ejecutará si el número es mayor a 500 o menor a 0
}
public static void main(String[] args)throws MyNumberException{
System.out.println(" c0D3m0Nk3Y ");
try{
setValor(501);
}catch(MyNumberException me){
System.err.println("Ha ocurrido un error: "+me.getMessage());//mostramos el mensaje
}finally{
System.out.println("finally: esto siempre se ejecutara");
}
System.out.println("esto esta fuera del try-catch-finally");
}
}
class MyNumberException extends Exception{
public MyNumberException(String message){
super(message);
}
}
Para ejecutar es necesario habilitar las "assertions" en java con "-ea":
javac -g Codemokey.java
java -ea Codemonkey
2. En este ejemplo se usa la clase HashSet para insertar un valor de tipo "Persona", si el valor es un duplicado no se podrá insertar.
import java.util.HashSet;
import java.util.Objects;
public class Codemonkey {
public static void main(String[] args){
HashSet persons=new HashSet();
persons.add(new Persona("Laura",31));
persons.add(new Persona("Hortencia",21));
persons.add(new Persona("Laura",31));//duplicado
persons.ass(new Persona("Hortencia",39)); //este valor si se agrega
for(Object p: persons){
Persona per=(Persona)p;
System.out.println(per.getNombre()+" - "+per.getEdad());
}
System.out.println(persons.toString());
}
}
//aquí creamos la clase Persona
class Persona{
private String nombre;
private int edad;
public Persona(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setEdad(int edad) {
this.edad = edad;
}
public String getNombre() {
return nombre;
}
public int getEdad() {
return edad;
}
@Override
public String toString(){
return "nombre: "+nombre+" edad: " +edad;
}
@Override
public int hashCode() {
int hash = 3;
hash = 79 * hash + this.edad;
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Persona other = (Persona) obj;
if (!Objects.equals(this.nombre, other.nombre)) {
return false;
}
if (this.edad != other.edad) {
return false;
}
return true;
}
}
3. Ejecutando un hilo en java swing
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Codemonkey{
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable() {
@Override
public void run() {
new Ventana();
}
});
}
}
class Ventana extends JFrame{
private JPanel panel;
private JButton btnSalir,btnActiva;
Ventana(){
setTitle("Iniciando hilos");
setSize(450,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(getGUI());
}
public JPanel getGUI(){
panel=new JPanel();
panel.setVisible(true);
panel.setSize(700,400);
panel.setBackground(Color.black);
panel.add(new JLabel("<html><h1><font color='white'>Ejecutando un hilo</font></h1></html>"));
panel.add(getBtnActiva());
panel.add(getBtnSalir());
return panel;
}
public JButton getBtnActiva(){
btnActiva=new JButton("<html><font color='white'>Iniciar hilo</font></html>",new ImageIcon("mono.jpg"));
btnActiva.setToolTipText("quitar ventana ...");
btnActiva.setBackground(Color.blue);
btnActiva.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Thread(new Runnable(){
public void run(){
int cont=0;
System.out.println("Inicia hilo");
while(cont<4){
try{
Thread.sleep(1000);
System.out.println("Hola no. "+(cont+1));
cont++;
}catch(InterruptedException ex){
System.err.println(ex.toString());
}
System.out.println("Termina hilo");
}
}
}).start();
}
});
return btnActiva;
}
public JButton getBtnSalir(){
btnSalir=new JButton("<html><font color='white'>Salir</font></html>",new ImageIcon("mono.jpg"));
btnSalir.setToolTipText("quitar ventana ...");
btnSalir.setBackground(Color.red);
btnSalir.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
return btnSalir;
}
}
No hay comentarios:
Publicar un comentario