2013-11-22 7 views
1

У меня есть база данных WAMP, в которой, несмотря на другие поля, я могу вставить имя, за которым следует расширение изображения, например, "imagen1.jpg". Программа, которую я делаю, написана в Java и SQL для предложений, и я использую IDE Netbeans, чтобы сделать это. У меня есть тип, называемый "Imagenes.java", в котором я выбираю маршрут изображения, чтобы таким образом вставить его в мои Jpanel или Jlabel.Вставить изображение в папку ресурсов Java

public class Imagenes extends javax.swing.JPanel { 
    String path; 
    ImageIcon imag; 

    public Imagenes(int width,int height,String path) 
    {  
     this.path=path; 
     this.setSize(width,height);   
    } 

    @Override 
    public void paint(Graphics graph) 
    { 
     Dimension tam = getSize(); 
     if (imag!=null) 
     graph.drawImage(imag.getImage(),0,0,tam.width, tam.height, null); 
     else 
     { 
      ImageIcon imagenFondo = new ImageIcon(getClass().getResource(path));   
      graph.drawImage(imagenFondo.getImage(),0,0,tam.width, tam.height, null);   
     } 
     setOpaque(false); 
     super.paintComponent(graph); 
    } 

} 

Все изображения, которые я вставил, уже сохранены в папке с именем "resources". Поэтому я хочу добавить в папку "resources", изображения с компьютера я выбираю из "fileChooser". Я пробовал это тысячами способов, помещая полный маршрут, и нет возможности распознать папку. Однако он копирует изображения в исходную папку. Я пробовал типы маршрутов, такие как '\\resources\\imagen1.jpg', специфичный для Java, но он не выбирает его правильно. Но если я сделаю печать строки маршрута, это правильно. Что я делаю неправильно?

+0

попробуйте ввести '«SRC/ресурсы/imagen1.jpg»' –

+0

, но какой метод я должен использовать, чтобы скопировать файл с компьютера в папку ресурсов? – user3013767

+0

Итак, все, что вы хотите сделать, это просто скопировать файл из одного каталога в другой каталог? Это ваша единственная проблема? –

ответ

0

Если вы использовали ImageIcon(path) вместо ImageIcon(getClass().getResource(path)). Вы можете попробовать "src/resources/imagen1.jpg". Netbeans будет искать из ProjectRoot. Так что просто набрав "resources/imagen1.jpg", его не найти. Вам нужно добавить src

ProjectRootDir 
      src 
       resources 
         imagen1.jpg 

При использовании ImageIcon(getClass().getResource(path)); программа будет пытаться найти изображение из classes директории в build реж. Если вы размещаете ресурсы реж в classes директорию, используя ImageIcon(getClass().getResource(path)) должен работать

ProjectRootDir 
      build 
       classes 
        resources 
          imagen1.jpg 

В приведенном выше сценарии, ваш path будет "resources/imagen.jpg"

0

Как я мог использовать это, чтобы сохранить в папке ресурсов?

// declare JFileChooser 
JFileChooser fileChooser = new JFileChooser(); 

// let the user choose the destination file 
if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) { 
    // indicates whether the user still wants to export the settings 
    boolean doExport = true; 

    // indicates whether to override an already existing file 
    boolean overrideExistingFile = false; 

    // get destination file 
    File destinationFile = new File(fileChooser.getSelectedFile().getAbsolutePath()); 

    // check if file already exists 
    while (doExport && destinationFile.exists() && !overrideExistingFile) { 
     // let the user decide whether to override the existing file 
     overrideExistingFile = (JOptionPane.showConfirmDialog(this, "Replace file?", "Export Settings", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION); 

     // let the user choose another file if the existing file shall not be overridden 
     if (!overrideExistingFile) { 
      if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) { 
       // get new destination file 
       destinationFile = new File(fileChooser.getSelectedFile().getAbsolutePath()); 
      } else { 
       // seems like the user does not want to export the settings any longer 
       doExport = false; 
      } 
     } 
    } 

    // perform the actual export 
    if (doExport) { 
     // the code to write the file goes here... 
    } 
Смежные вопросы