2016-05-31 3 views
-3

Да, я исследовал онлайн-стек, я считаю, был одним местом. И у них есть вопросы, что «звук/звук», и я считаю, что «картинки» не воспроизводятся из исполняемого файла jar.Файл как исполняемый файл jar - звук/картинки не работают с кнопками gui

Файлы wav находятся в файле jar ... я использовал winrar для проверки.

Я побежал из командной строки, и звук не воспроизводится. И одна из ошибок, который был дан в том, что:

java.io.FileNotFoundException: C: \ Users \ Bijan \ Desktop \ Звуки \ SexySounds1.wav (Система не может найти указанный путь)

и т.д. ... У меня есть еще кое-что добавить. То, что изображения на самом деле работают на кнопке, когда только изображения используются из исполняемого файла jar, но звук, похоже, не воспроизводится, когда я пытаюсь использовать кнопку, которая реализует аудиофайлы (wav).

Этот код ниже устанавливает JOptionPane, и я просто помещаю изображения внутри этого окна и аудиофайлы (wav). Этот ниже код предназначен для кнопки «Расслабьтесь» для программы gui.

JButton btnNewButton_1 = new JButton("Relax"); 
     btnNewButton_1.addActionListener(new ActionListener() { 
      private int counter = 0; 
      public void actionPerformed(ActionEvent e) { 

        String soundName1 = "Sounds/SexySounds1.wav"; 
        String soundName1a = "Sounds/SexySounds2a.wav"; 
        String soundName2 = "Sounds/HoShit.wav"; 
        String soundName3 = "Sounds/SexySounds2.wav"; 
        AudioInputStream audioInputStream = null; 

        JOptionPane opt = new JOptionPane(""); 
        opt.setPreferredSize(new Dimension(210, 325)); 
        final JDialog dialogBoxTitle = opt.createDialog("Sexy Woman"); 
        try{ 
        if(counter == 0){ 


         Image pic = new ImageIcon(this.getClass().getResource("/SexyWoman.png")).getImage(); 
         opt.setIcon(new ImageIcon(pic)); 
         audioInputStream = AudioSystem.getAudioInputStream(new File(soundName1).getAbsoluteFile()); 


        } 
        if(counter == 1){ 
         Image pic = new ImageIcon(this.getClass().getResource("/Sexy Woman #2.jpeg")).getImage(); 
         opt.setIcon(new ImageIcon(pic)); 
         audioInputStream = AudioSystem.getAudioInputStream(new File(soundName2).getAbsoluteFile()); 
         try { 
          Thread.sleep(500L); 


         } catch (InterruptedException e1) { 

          e1.printStackTrace(); 
         } 
         } 
        if(counter == 2){ 
         Image pic = new ImageIcon(this.getClass().getResource("/SexyWoman#3.jpeg")).getImage(); 
         opt.setIcon(new ImageIcon(pic)); 
         audioInputStream = AudioSystem.getAudioInputStream(new File(soundName1a).getAbsoluteFile()); 

         } 
        if(counter == 3){ 
         Image pic = new ImageIcon(this.getClass().getResource("/SexyWoman#4.jpeg")).getImage(); 
         opt.setIcon(new ImageIcon(pic)); 
         audioInputStream = AudioSystem.getAudioInputStream(new File(soundName3).getAbsoluteFile()); 

         } 
        if(counter == 4){ 
         Image pic = new ImageIcon(this.getClass().getResource("/Bijan's Picture.png")).getImage(); 
         opt.setIcon(new ImageIcon(pic)); 
         }} catch (UnsupportedAudioFileException e1) { 

          e1.printStackTrace(); 
         } catch (IOException e1) { 

          e1.printStackTrace(); 
         } 
         Clip clip = null; 
         try { 
          clip = AudioSystem.getClip(); 
         } catch (LineUnavailableException e1) { 

          e1.printStackTrace(); 
         } 
         try { 
          clip.open(audioInputStream); 
         } catch (LineUnavailableException e1) { 

          e1.printStackTrace(); 
         } catch (IOException e1) { 

          e1.printStackTrace(); 
         } 
         clip.start(); 
         counter++; 
        new Thread(new Runnable() 
         { 
          public void run() 
          { 
          try{ 


           Thread.sleep(1500); 

           }catch (InterruptedException e) { 

           e.printStackTrace(); 
          }}}).start(); 
           dialogBoxTitle.setVisible(true); 

      } 

      } 
     ); 

Bijan

PS: Я хотел, чтобы действительно увидеть, если WAV файлы были в файле фляги, и при запуске из командной строки: Java -jar «SuperMathBattler1a.jar» работает программа. Тем не менее, когда я пытаюсь просмотреть содержимое файла банку с помощью:

баночка ТФ SuperMathBattler1a.jar

Затем он дает эту ошибку:

«банка» не распознается как внутренней или внешней командой, исполняемой программный или командный файл.

Я исследовал и было написано, что мне нужно изменить «PATH», но это не имеет смысла, поскольку, когда я запускаю его, он работает, поэтому путь должен быть правильным? Возможно, что-то действительно работает с этим компьютером. Я бегу из командной строки с:

C: \ Users \ Bijan \ Desktop>

и я вхожу Jar ТФ filename.jar

баночка файл находится в папке рабочего стола, но не делает просмотр содержимого файла JAR , но запускает его, когда я ввожу --- java -jar "filename.jar"

ответ

0

Я сам начинаю в java. Создал GUI исполняемый файл .jar. У меня была та же проблема, что и у вас. Мой графический интерфейс имеет разные фотографии для разных слушателей и .wav для одного. Мой исполняемый файл .jar не показывал и не воспроизводил их. Что мне никто не сказал, и я узнал, просто сделав предположение. Банкомат только «сохраняет» пути к этим файлам, но сами файлы все равно должны быть включены в ту же папку, что и файл jar. Если когда-либо они будут отделены, банка будет выполняться без них.

Пример: Я сделал оригинальную .jar в исходной папке класса, в которой я запускал все, начиная с JCreator. .jar работает так, как предполагалось, потому что все фотографии и .wav были в этой папке.

Я копирую и вставляю .jar в новую папку исключительно для себя на своем рабочем столе. Щелкнул его, чтобы бежать, и он бежал без фото или wav.

Я копировал и вставлял фотографии и .wav в ту же самую эксклюзивную папку .jar, и она выполнялась точно так же, как я предполагал, фотографии, музыку и все такое.

Одна из замечательных вещей, которые я узнал из новичка в java, это то, что я могу создать общий путь к файлу, но использовать разные фотографии в разных папках .jar, чтобы сделать .jar настраиваемым. Пример: К той же вышеупомянутой .jar я добавил слушатель, чтобы установить друзья сталкиваются ПИК на графическом интерфейсе после входа в системе

Пути в коде есть friendsPic = новый ImageIcon («friend.jpg»)..

В моем слушателе для «Войти» Я добавил If (logIn.equals («Sarah») || logIn.equals («Deena»)), затем добавьте friendsPic в панель.

Разница есть, я сделал .jar с этим кодом. Я дублировал .jar в две отдельные папки. Я хочу отправить моему другу Дине, другой для Сары. Папка Deena имеет .jar и .jpg ее названия «друг». В папке Сары есть тот же самый .jar, а также .jpg ее под названием «друг». .jar не знает разницы между фотографиями только в том, что у него есть путь к файлу с именем friend. Я могу запустить оба .jars из соответствующих папок. Поскольку в папке Диены есть значок, написанный Дикой, ее баночка показывает ее рисунок. Поскольку в папке Сары есть ее подруга с надписью pic, ее кувшин отображает ее рис.

Надеюсь, это поможет, даже если это был не точный ответ, который мог бы дать более опытный программист.

+0

Прежде всего спасибо за попытку ура помочь мне. Но я в замешательстве. Поскольку после того, как я получаю файл jar для работы нормально, я затем преобразую его в обычный .exe-файл, чтобы он мог открываться с помощью двойного щелчка. Способ, объясняющий, что я не уверен, но мне нужно было бы создать другой файл jar, и он будет работать только как исполняемый файл jar во вновь созданной папке, но что, если я преобразую его в .exe, то он все равно будет работать? Не уверен. Так что, пожалуйста, объясните мне, что я должен делать. Я в замешательстве, поэтому я добавляю еще одну папку и свой путь ... мог бы у вас сломать ее больше ... – Bjon123abc

+0

Так что я могу сделать файл jar внутри другой папки u написал что файл будет выполняться, если он разделен, поэтому в основном ур логика заключается в том, что файлы разделяются, поэтому звук не воспроизводится. Но картинки действительно работают. Звук не будет работать. Это как-то связано с нажатием кнопки gui. Когда у меня есть предустановленные фотографии, которые не реализованы при нажатии кнопки, отображаются фотографии. Когда я использую pics самостоятельно с нажатием кнопки, pics работают. Когда я использую звук с нажатием кнопки, звук, похоже, не воспроизводится. Я предполагаю, что u означает путь, как в Sounds/SexySounds1.wav? – Bjon123abc

+0

Папка проекта настроена следующим образом: AwesomeGuiRpg1a (название проекта)> AwesomeGuiRpg1aCharacterPics (исходная папка)> AwesomeGuiProject1aPackage (package)> и внутри пакета есть 11 файлов.java ... в папке проекта AwesomeGuiRpg1a У меня также есть 4 источника folders --- pic, Sounds, Sounds2, dataSaveLoad ... поэтому я замечаю, когда создаю файл jar, он показывает, какие файлы помещаются в банку, и он показывает, что файлы wav вставлены. Поэтому я предполагаю wav файлы находятся в файле jar. Что значит по пути? Вы имеете в виду, что я – Bjon123abc