una poner para manejo insertar imagenes imagen ejemplo como codigo java eclipse image resources

poner - ¿Cómo hago para agregar una imagen a un proyecto java con eclipse?



manejo de imagenes en java (5)

He leído mucho sobre SO y enlaces de Google.

Todavía tengo que descubrir cómo agregar correctamente una imagen a un proyecto de eclipse gui, de tal manera que el sistema lo reconozca. Sé que hay algo de mumbojumbo en CLASSPATH pero probablemente no debería ser tan difícil de hacer.

Permítanme comenzar describiendo lo que estoy haciendo ... (Si alguien pudiera corregirme, se lo agradecería).

Aquí está mi método.

Agrego la imagen usando el "asistente de importación" (clic derecho, "importar", "general", "archivo") en un "directorio de importación" al que llamé "/ resources"

Eclipse crea automáticamente una carpeta llamada "recursos" en la vista de árbol del eclipse package explorer. Justo debajo de la entrada para "Bibliotecas de referencia".

Tenga en cuenta que "recursos" no está en "Bibliotecas de referencia", está en el mismo nivel en el árbol.

Entonces uso el siguiente código:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); InputStream input = classLoader.getResourceAsStream("/resources/image.jpg"); Image logo = ImageIO.read(input);

Y en este punto, ejecuto el programa de prueba y obtengo este error:

Exception in thread "main" java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(Unknown Source) at Test.main(Test.java:17)

Gracias por cualquier ayuda por adelantado!


Coloque la imagen en una carpeta de origen , no en una carpeta normal. Es decir: haga clic con el botón derecho en el proyecto -> Nuevo -> Carpeta de origen. Coloque la imagen en esa carpeta de origen. Entonces:

InputStream input = classLoader.getResourceAsStream("image.jpg");

Tenga en cuenta que el camino se omite. Eso es porque la imagen está directamente en la raíz de la ruta. Puede agregar carpetas debajo de su carpeta de origen para desglosarlo aún más si lo desea. O puede colocar la imagen en su carpeta de origen existente (generalmente llamada src ).


Es muy sencillo agregar una imagen al proyecto y ver la imagen. Primero cree una carpeta en su proyecto que pueda contener cualquier tipo de imágenes.

Luego, haga clic con el botón derecho en Proyecto ->> Ir a Crear ruta ->> configurar Crear ruta ->> agregar carpeta de clases ->> elija su carpeta (que acaba de crear para almacenar las imágenes) debajo del nombre del proyecto.

class Surface extends JPanel { private BufferedImage slate; private BufferedImage java; private BufferedImage pane; private TexturePaint slatetp; private TexturePaint javatp; private TexturePaint panetp; public Surface() { loadImages(); } private void loadImages() { try { slate = ImageIO.read(new File("images//slate.png")); java = ImageIO.read(new File("images//java.png")); pane = ImageIO.read(new File("images//pane.png")); } catch (IOException ex) { Logger.`enter code here`getLogger(Surface.class.getName()).log( Level.SEVERE, null, ex); } } private void doDrawing(Graphics g) { Graphics2D g2d = (Graphics2D) g.create(); slatetp = new TexturePaint(slate, new Rectangle(0, 0, 90, 60)); javatp = new TexturePaint(java, new Rectangle(0, 0, 90, 60)); panetp = new TexturePaint(pane, new Rectangle(0, 0, 90, 60)); g2d.setPaint(slatetp); g2d.fillRect(10, 15, 90, 60); g2d.setPaint(javatp); g2d.fillRect(130, 15, 90, 60); g2d.setPaint(panetp); g2d.fillRect(250, 15, 90, 60); g2d.dispose(); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); doDrawing(g); } } public class TexturesEx extends JFrame { public TexturesEx() { initUI(); } private void initUI() { add(new Surface()); setTitle("Textures"); setSize(360, 120); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { TexturesEx ex = new TexturesEx(); ex.setVisible(true); } }); } }


Puede volver a guardar la imagen y, literalmente, buscar el archivo src de su proyecto y agregarlo a eso cuando guarde. Para mí tuve que ir a netbeans y encontré mi proyecto y cuando surgió tenía 3 archivos src fue el último. No hagas clic en ninguno de ellos, simplemente guarda tu foto allí. Eso debería funcionar. Ahora cambiar el tamaño puede ser un problema diferente y estoy trabajando en ello ahora lol


Si aún tiene problemas con Eclipse para encontrar sus archivos, puede intentar lo siguiente:

  1. Verifique que el archivo exista de acuerdo con el entorno de ejecución actual utilizando la clase java.io.File para obtener un formato de ruta canónica y verifique que (a) el archivo existe y (b) cuál es la ruta canónica.
  2. Verifique el directorio de trabajo predeterminado imprimiendo lo siguiente en su principal:

    System.out.println("Working dir: " + System.getProperty("user.dir"));

Para (1) arriba, coloco el siguiente código de depuración alrededor del archivo específico al que estaba tratando de acceder:

File imageFile = new File(source); System.out.println("Canonical path of target image: " + imageFile.getCanonicalPath()); if (!imageFile.exists()) { System.out.println("file " + imageFile + " does not exist"); } image = ImageIO.read(imageFile);

Por alguna razón, terminé ignorando la mayoría de las otras publicaciones que me decían que pusiera los archivos de imagen en "src" o alguna otra variante, ya que verifiqué que el sistema estaba buscando la raíz de la jerarquía de directorios del proyecto Eclipse (por ejemplo, $ HOME / workspace / myProject).

Tener las imágenes en src / (que se copia automáticamente a bin /) no funcionó en Eclipse Luna.


Si lo está haciendo en eclipse, hay algunas notas rápidas que indican que si pasa el mouse sobre una clase en su script, mostrará un diálogo de enfoque que dice que debe presionar f2 para el enfoque.

para aplicaciones de computadora, use ImageIcon. y por el camino digamos,

ImageIcon thisImage = new ImageIcon("images/youpic.png");

especifique la carpeta (imágenes), luego separe con / y agregue el nombre del archivo pic.

Espero que esto sea útil. Si alguien más lo publicó, no lo leí. Así que ... sí ... Refuerzo de pensamiento.