Buonasera,
Sto avendo un problema enorme da tre giorni e non riesco a risolverlo
Dovrei inserire un immagine in una cartella chiamata /risorse , contenuto nella src di un file eseguibile java.
Questi sono i vari codici che ho utilizzato
Parte di codice della classe "FrameInserisciDisciplina
# sfoglia.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {
{
JFileChooser fc = new JFileChooser();
int sel = fc.showOpenDialog(frame);
if (sel == JFileChooser.APPROVE_OPTION) {
pathprecedente=(fc.getSelectedFile().getPath());
nomefile=(fc.getSelectedFile().getName());
percorso =("risorse");
path=percorso+"/"+nomefile;
immagine.setText(nomefile);
}}}});
JPanel PanelBottom = new JPanel();
PanelBottom.setLayout(new GridBagLayout());
PanelBottom.setBackground(new Color (255,185,0));
JButton btninsdisc = new JButton(im);
JLabel lbl= new JLabel();
VariListener.SettaBtn(PanelBottom, btninsdisc, lbl,"Inserisci disciplina", 1, 1,im2,true);
btninsdisc.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(textnomed.getText().isEmpty()||descr.getText(). isEmpty()){
if(textnomed.getText().isEmpty())
{
lblNomeD.setForeground(Color.RED);
lblNomeD.setFont(new Font("Tahoma", Font.BOLD, 20));
lblErrNome.setText("Il campo è vuoto");
lblErrNome.setVisible(true);
}
if(descr.getText().isEmpty())
{
lblDesc.setForeground(Color.RED);
lblDesc.setFont(new Font("Tahoma", Font.BOLD, 20));
lblErrNome2.setText("Il campo è vuoto");
lblErrNome2.setVisible(true);
}
}
else
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"path im="+path + " nomefile = "+nomefile + " pathprec ="+pathprecedente);
bool=GestioneDAO.inserimentodisc(textnomed.getText (),descr.getText(),combocal.getSelectedItem().toSt ring(),path,nomefile,pathprecedente);
if(bool)
{
frame.setVisible(false);
frame.dispose();
FrameGestione.frame.dispose();
new FrameGestione();
}
}
})
;
contentPane.add(Panel2,BorderLayout.NORTH);
contentPane.add(PanelBottom,BorderLayout.CENTER);
#
ClassiDAO.InserimentoDisciplina
#
public static boolean inserimentodisc ( String dis ,String desc,String cal,String pathim,String nomefile,String pathprec) throws URISyntaxException{
Connection con = DbConnection.db;
Connection con2 = DbConnection.db;
Statement st,st2;
ResultSet rs;
try {
st = con.createStatement();
st2 = con2.createStatement();
rs= st.executeQuery("SELECT disciplina.nomedisciplina FROM disciplina WHERE nomedisciplina ='"+dis+"' ; ");
if(rs.next())
JOptionPane.showMessageDialog(null, "La disciplina "+dis+" è già stata creata, inserirne un' altra"," ",JOptionPane.WARNING_MESSAGE);
else{
VariListener.TraferisciFile(pathprec, pathim);
}}
catch (SQLException ex) {
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame, ex);
}
return false;
}
#
VariListener.TraferisciFile
#
public static void TraferisciFile(String inizio,String fine)
{
InputStream inStream = null;
OutputStream outStream = null;
try{
File afile =new File(inizio);
File bfile =new File(fine);
URL path=null;
if(bfile.exists()){
try
{
// mostriamo il percorso al file
URI pathy = ClassLoader.getSystemResource(fine).toURI();
path = pathy.toURL();
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"fine" + fine);
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"pathy" + pathy);
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Il doc si trova nel percorso" + path);
bfile=new File(path.getFile());
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Nome del file " + bfile);
System.out.println("Nome del file " + bfile);
int i;
// apriamo lo stream di input...
InputStream is=path.openStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
// ...e avviamo la lettura del file con un ciclo
do
{
i=br.read();
System.out.println((char)i);
}
while (i!=-1);
is.close();
}
// intercettiamo eventuali eccezioni
catch (MalformedURLException e)
{
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Attenzione:" + e);
}
catch (IOException e)
{
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Attenzione IO:" + e);
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Immagine"+"path im="+fine + " pathprec ="+inizio);
inStream = new FileInputStream(afile);
outStream = new FileOutputStream(bfile);
byte[] buffer = new byte[1024];
int length;
//copy the file content in bytes
while ((length = inStream.read(buffer)) > 0){
outStream.write(buffer, 0, length);
inStream.close();
outStream.close();
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"successo!");
}else{
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"file inesistente");
}
}catch(IOException e){
e.printStackTrace();
}
}
#
Da notare la struttura del Progetto
PorgettoSportivo/src/risorse
Quale può essere il problema?
Ci sono altri modi per inserire i file in queste benedette cartelle negli eseguibili?