嗨,当我将项目导出到 .jar 文件时,图像不会出现,但是当我在 eclipse 中运行代码时,我可以看到它们。我尝试了很多我在谷歌上看到的解决方案,但任何人都对我有用。图像位于 Imagenes 文件夹中,与 src 处于同一级别。 这是我的代码:
package Booo;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Ventana {
public static void main(String[] args) {
// TODO Auto-generated method stub
MarcoPrincipal mimarco=new MarcoPrincipal();
mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mimarco.setVisible(true);
}
}
class MarcoPrincipal extends JFrame {
public MarcoPrincipal() {
setTitle("Invitación PJM Lujan 2021");
Toolkit mipantalla=Toolkit.getDefaultToolkit();
setBounds(400, 10, 750, 850);
this.setResizable(false);
Image miIcono=mipantalla.getImage("Imagenes/pjm.jpeg"); //icono del PJM
setIconImage(miIcono);
fondoPanel fondo= new fondoPanel();
this.setContentPane(fondo);
LaminaPrincipal lamina =new LaminaPrincipal();
lamina.setLayout(new FlowLayout(FlowLayout.CENTER,200,300));
add(lamina);
}
}
class LaminaPrincipal extends JPanel{
public LaminaPrincipal() {
this.setOpaque(false);
JButton botonOpen=new JButton("Abrir la Invitación");
add(botonOpen);
OyenteNuevo oyente=new OyenteNuevo();
botonOpen.addActionListener(oyente);
}
private class OyenteNuevo implements ActionListener{
public void actionPerformed(ActionEvent e) {
MarcoEmergente marco=new MarcoEmergente();
marco.setVisible(true);
}
}
}
class MarcoEmergente extends JFrame{
public MarcoEmergente () {
Toolkit mipantalla=Toolkit.getDefaultToolkit();
Image miIcono=mipantalla.getImage("Imagenes/pjm.jpeg"); //icono del PJM
setIconImage(miIcono);
setTitle("Invitación PJM Luján 2021");
Dimension tamanoPantalla= mipantalla.getScreenSize();
int alturaPantalla=tamanoPantalla.height;
int anchoPantalla=tamanoPantalla.width;
setSize(500,750);
setLocation(500,50);
textoImg lamina1=new textoImg(); //agrego la lamina
add(lamina1);
this.setResizable(false);
}
}
class textoImg extends JPanel{
public void paintComponent(Graphics g) {
super.paintComponent(g);
File miimagen = new File("Imagenes/inv.jpg");
try {
imagen2 = ImageIO.read(miimagen);
}
catch(IOException e) {
System.out.println("xd");
}
this.setOpaque(false);
g.drawImage(imagen2, 0, 0, getWidth(), getHeight(),this );
setOpaque(false);
//g2.drawString("¿Cuándo? El jueves 8 de julio", 150, 100);
}
private Image imagen2;
}
class fondoPanel extends JPanel{
private Image imagen;
public void paintComponent(Graphics g) {
super.paintComponent(g);
File miimagen2 = new File("Imagenes/back.jpg");
try {
imagen = ImageIO.read(miimagen2);
}catch(IOException e) {
System.out.println("Sds");
}
this.setOpaque(false);
g.drawImage(imagen, 0, 0, getWidth(), getHeight(),this);
setOpaque(false);
}
}