Estoy buscando un buen ejemplo de agregar una imagen a un applet
-
28-10-2019 - |
Pregunta
Estoy tratando de agregar una imagen a mi applet. He buscado en Google esto, pero no he encontrado un ejemplo decente que entiendo. ¿Alguien sabe dónde puedo encontrar un buen ejemplo de agregar una imagen y applet?
Obtuve esto en línea, pero cuando ejecuto el applet no muestra mi imagen.
public class Lab5 extends JApplet {
//Lab5(){}
Image img;
public void init() {
img = getImage(getDocumentBase(), "img\flag0.gif");
}
public void paintComponent(Graphics g) {
g.drawImage(img, 50, 50, this);
}
}
A continuación se muestra mi archivo HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<applet code="Lab5.class" width= 250 height = 50></applet>
</body>
</html>
Solución
Aquí hay un ejemplo simple que muestra una imagen de una URL de Internet. Probablemente usaría un recurso en el lugar de la URL de Internet, como una imagen que se realiza en un directorio del jar de la aplicación:
Clase SimpleAspletIMage.java
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;
@SuppressWarnings("serial")
public class SimpleAppletImage extends JApplet {
@Override
public void init() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
try {
// you might want to use a file in place of a URL here
URL url = new URL("http://duke.kenai.com/gun/Gun.jpg");
BufferedImage img = ImageIO.read(url);
MyPanel myPanel = new MyPanel(img );
getContentPane().add(myPanel);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
clase myPanel.java
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
@SuppressWarnings("serial")
class MyPanel extends JPanel {
private BufferedImage img;
public MyPanel(BufferedImage img) {
this.img = img;
setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (img != null) {
g.drawImage(img, 0, 0, this); // corrected
}
}
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow