Ciao Ragazzi,
con NetBeans ho sviluppato un programma pienamente funzionante nel momento che premo il pulsante RUN dell'ambiente di sviluppo. Ora il mio programma prevede l'uso di librerie grafiche con pulsanti e contenuti personalizzati (led, pulsanti, ecc) che dall'ambiente di sviluppo vengono correttamente caricati. Purtroppo però appena creo il file jar, e lancio il programma dal file compilato, le immagini non vengono più caricate. So che c'è un discorso di path assolute e relative, ho googlato un po e, anche accedendo con
this.getClass().getResource("/Img/Led/").getPath();
non ricavo un ragno dal buco. Sotto potete trovare il codice della classe Leds.
Potreste darmi un aiutino per cortesia?? Dove sbaglio?
package GuestUserInterface;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
/**
*
* @author Luca
*/
public class Leds
{
private String path_folder=this.getClass().getResource("/Img/Led/").getPath();
public static final String BLUE_LED = "Blue.png";
public static final String GREEN_LED = "Green.png";
public static final String GREY_LED = "Grey.png";
public static final String ORANGE_LED = "Orange.png";
public static final String PURPLE_LED = "Purple.png";
public static final String RED_LED = "Red.png";
public static final String YELLOW_LED = "Yellow.png";
public static final int EVENT_MOUSE_CLICKED = 0;
public static final int EVENT_MOUSE_ENTERED = 1;
public static final int EVENT_MOUSE_EXITED = 2;
public static final int EVENT_MOUSE_PRESSED = 3;
public static final int EVENT_MOUSE_RELASED = 4;
private static final int MOUSE_BUTTON_LEFT = 1;
private static final int MOUSE_BUTTON_MIDDLE = 2;
private static final int MOUSE_BUTTON_RIGHT = 3;
private boolean default_state;
private ArrayList<JLabel> al;
public Leds(boolean default_state)
{
this.al = new ArrayList<JLabel>();
this.default_state = default_state;
System.out.println(path_folder);
JOptionPane.showMessageDialog(MainGui.frame, path_folder);
}
public void addComponent(String color_false, String color_true, int x, int y)
{
String path_image_false = this.path_folder + color_false;
String path_image_true = this.path_folder + color_true;
ImageIcon iitre = new ImageIcon(path_image_true);
ImageIcon iifls = new ImageIcon(path_image_false);
int w = iitre.getIconWidth();
int h = iitre.getIconHeight();
JLabel jl = new JLabel();
String name = Integer.toString((al.size() + 1));
jl.setName(name);
jl.setIcon(iitre);
jl.setDisabledIcon(iifls);
jl.setBounds(x, y, w, h);
jl.setEnabled(default_state);
al.add(jl);
}
public void setLedStatus(boolean state, int index)
{
JLabel jl;
jl = al.get(index);
jl.setEnabled(state);
al.remove(index);
al.add(index, jl);
}
public boolean getLedStatus(int index)
{
return al.get(index).isEnabled();
}
public int getListSize()
{
return al.size();
}
public ArrayList<JLabel> getLedList()
{
return this.al;
}
synchronized public JLabel getComponent(int index)
{
return al.get(index);
}
synchronized public void printLeds(JFrame jf)
{
JLabel jl = null;
for(int scan=0; scan<al.size(); scan++)
{
jl = this.getComponent(scan);
jf.add(jl);
}
}
synchronized public void printLeds(JInternalFrame jiif)
{
JLabel jl = null;
for(int scan=0; scan<al.size(); scan++)
{
jl = this.getComponent(scan);
jiif.add(jl);
}
}
}
Grazie a tutti,
Ciao