Mostrando la Imagen
Descripción
Antes de poder mostrar la imagen es necesario cargarla a memoria (bufferedimage). Para poder crear dicha memoria debemos saber primero de que tamaño debe ser. Dicha información se obtiene de la imagen externa mediante
```
int w = img.getWidth(null);
int h = img.getHeight(null);
```
Con esta información podemos definir el espacio
```
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
```
Ahora se puede proceder a crear el objeto gráfico
```
Graphics g = bi.getGraphics();
```
y seteando el color y dibujarlo en la posición x e y
```
g.setColor(Color.RED);
g.drawImage(img, x, y, null);
```
ID:(1244, 0)
¿Cómo resguardar el programa de errores?
Descripción
El problema con el acceso a un archivo remoto es que el proceso puede fallar, es decir el archivo no ser encontrado con lo que la rutina fracasa generando un error. Si no ""atajamos"" el error es posible que el programa sufra un daño que le impida continuar corriendo e incluso no se deje cerrar. Hablamos de que el programa ""se colgó"".\\
Para evitar esto se puede programar una protección. Esta funciona de la siguiente forma: si el programa no vuelve del block protegido el programa continua desde el punto posterior a dicho block.
Este block se define con los comandos try (trata) catch (ataja):
```
... código previo ...
try{
... código normal ...
}catch(IOException e){
... código en caso de error ...
}
... código posterior ...
```
ID:(1243, 0)
Ejemplo Cargar Imagen
Descripción
El siguiente ejemplo carga y muestra una imagen desde un archivo:
```
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class LoadImageApp extends Component {
BufferedImage img;
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
public LoadImageApp() {
try {
img = ImageIO.read(new File("strawberry.jpg"));
} catch (IOException e) {
}
}
public Dimension getPreferredSize() {
if (img == null) {
return new Dimension(100,100);
} else {
return new Dimension(img.getWidth(null), img.getHeight(null));
}
}
public static void main(String[] args) {
JFrame f = new JFrame("Load Image Sample");
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.add(new LoadImageApp());
f.pack();
f.setVisible(true);
}
}
```
ID:(8828, 0)