Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Converter GUI / 1 сообщений из 1, страница 1 из 1
05.12.2012, 19:48:27
    #38066913
GetIt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Converter GUI
Hello ladies and gentleman,

I'm just trying to Java.

I have created a small GUI to convert mp3, wav, flac files.
My problem now is that when I select the files and then convert, the new files are not created.

The second problem is, if i remove the menubar at the top "Werkzeuge" the program does not start.

Can someone give me a tip or something to supplement my code?


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
/*
 * 
 * 
 */
package sox; //Package Name

import java.awt.BorderLayout;               //Durch eine import-Anweisung wird
import java.awt.Color;                      //eine Klasse nicht geladen, sondern 
import java.awt.GridLayout;                 //lediglich so sichtbar gemacht
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 *
 * @author leichnde
 */
public class LAF extends JFrame { //Classen Name

    //ATTRIBUTE-----------------------------------------------------------------
    private JPanel panelFrame;
    private JPanel panelButtons;
    private JPanel panelFlacFiles;
    private JPanel panelNewFiles;
    private JPanel panelFortschritt;
    private JButton convert;
    private JButton play;
    private JButton removeSong;
    private JButton clearList;
    private JButton addSong;
    private JMenuBar meinMenu;
    private JMenu datei;
    private JMenu auswahl;
    private JMenuItem exit;
    private JMenuItem oeffnen;
    private JMenuItem toMp3;
    private JMenuItem toWav;
    private JLabel newDataLabel;
    private JLabel orgDataLabel;
    private JProgressBar bar;
    private JFileChooser waehlen;
    private JList<String> orgDataList;
    private JList<String> newDataList;
    private File[] liste;
    private String[] oldFileFormat;
    private String[] newSong;
    private String[] cmd;
    @SuppressWarnings("MismatchedReadAndWriteOfArray") //unterdr&#252;ckt Fehlermeldungen
    private String[] Data = {""};
    private String[] flacData;
    String[] orgFormat;
    private String[] newSongFormat;
    private String format;
    private int y = 0;
    boolean eintragGewaehlt;    //dient zum Speichern der logischen Werte true und false
    Image programmIcon;
    DefaultListModel orgListModel;
    DefaultListModel newListModel;
    int[] ausgewaehlteElemente;
    int[] orgElemente;
    int[] eintragSpeichern;
    boolean eintragVergleichen;         //dient zum Speichern der logischen Werte true und false
    String[] orgSongs;
    String SongPfad;
    Object[] orgSongsOld;               //instanz
    @SuppressWarnings("MismatchedReadAndWriteOfArray")
   
    

    //Constructor---------------------------------------------------------------
    public LAF() {
        super("AUDIO CONVERTER");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //schlie&#223;t GUI beim beenden
        this.setSize(800, 300);             //gr&#246;&#223;e des GUI Frames
        this.setLocation(250, 70);          //Position des GUI Frames auf Bildschirm

        bar = new JProgressBar(0, 100);     //Fortschrittsbalken 0-100
        bar.setValue(0);                    //Optionen
        bar.setStringPainted(true);         //Optionen
        bar.setSize(500, 20);               //Gr&#246;&#223;e des Fortschrittsbalkens

        meinMenu = new JMenuBar();          //Men&#252;leiste wird erzeugt
        this.setJMenuBar(meinMenu);

        datei = new JMenu("Datei");             //Men&#252;leiste Datei Button
        oeffnen = new JMenuItem("&#214;ffnen");      //Men&#252;leist &#214;ffnen Button
         auswahl = new JMenu("Werkzeuge");       //Men&#252;leiste Werkzeuge Button
        
        oeffnen.addActionListener(new ActionListener() {
            @Override //erlaubt das einbinden von Metadaten in den Quelltext
            public void actionPerformed(ActionEvent e) {
                chooseSong();
            }
        }); //anonyme Klasse

        exit = new JMenuItem("Beenden");                //Men&#252;leiste wird erzeugt
        exit.addActionListener(new ActionListener() {   // Beim Dr&#252;cken des Men&#252;punktes wird actionPerformed aufgerufen
            @Override                                   //erlaubt das einbinden von Metadaten in den Quelltext
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        }); //anonyme Klasse

        toMp3 = new JMenuItem("MP3 KONVERTER");         //Men&#252;leiste wird erzeugt
        toMp3.addActionListener(new ActionListener() {  // Beim Dr&#252;cken des Men&#252;punktes wird actionPerformed aufgerufen
            @Override
            public void actionPerformed(ActionEvent e) {    //
                if (liste == null) {
                    JOptionPane.showMessageDialog(LAF.this, ".MP3 DATEI ZUM KONVERTIEREN W&#196;HLEN"); //Zeigt Fehlermeldung an wenn keine Datei gew&#228;hlt wurde
                } else {
                    format = ".mp3";
                    convertTO();
                }
            }
        }); //anonyme Klasse

        toWav = new JMenuItem("WAV KONVERTER");     //Men&#252;leiste wird erzeugt
        toWav.addActionListener(new ActionListener() {  // Beim Dr&#252;cken des Men&#252;punktes wird actionPerformed aufgerufen
            @Override
            public void actionPerformed(ActionEvent e) {

                if (liste == null) {
                    JOptionPane.showMessageDialog(null, ".WAV DATEI ZUM KONVERTIEREN W&#196;HLEN"); //Zeigt Fehlermeldung an wenn keine Datei gew&#228;hlt wurde
                } else {
                    format = ".wav";

                    convertTO();
                }
            }
        }); //anonyme Klasse

        datei.add(oeffnen);     //Datei tats&#228;chlich &#246;ffnen
        datei.add(exit);        //tats&#228;chlich verlassen

        auswahl.add(toMp3);     //Auswahl tats&#228;chlich t&#228;tigen
        auswahl.add(toWav);     //Auswahl tats&#228;chlich t&#228;tigen

        meinMenu.add(datei);    //Auswahl tats&#228;chlich t&#228;tigen
        meinMenu.add(auswahl);  //Auswahl tats&#228;chlich t&#228;tigen

        convert = new JButton("Konvertieren");          //Men&#252;button wird erzeugt
        convert.setToolTipText("Datei/en konvertieren"); //Button Tip Text
        convert.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                if (liste == null) {
                    JOptionPane.showMessageDialog(null, "DATEI ZUM KONVERTIEREN W&#196;HLEN");
                } else {

                    Object[] selectionValues = {"mp3", "wav"};
                    String initialSelection = "mp3-320Kb/s-NQ";
                    Object selection = JOptionPane.showInputDialog(null, "WELCHES FORMAT SOLL ERSTELLT WERDEN", "Format", JOptionPane.QUESTION_MESSAGE, null, selectionValues, initialSelection);

                    if (selection == "mp3") {
                        format = ".mp3";
                        convertTO();
                    }
                    if (selection == "wav") {
                        format = ".wav";
                        convertTO();
                    }
                }
            }
        }); //anonyme Klasse

        removeSong = new JButton("Aus Liste entfernen");
        removeSong.setToolTipText("Die ausgew&#228;hlten Dateien von der Liste entfernen");
        removeSong.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        ausgewaehlteElemente = orgDataList.getSelectedIndices();

                        for (int i = ausgewaehlteElemente.length - 1; i >= 0; i--) {

                            System.out.println(ausgewaehlteElemente[i]);
                            orgListModel.removeElementAt(ausgewaehlteElemente[i]);

                        }
                    }
                }); //anonyme Klasse

        addSong = new JButton("Datei hinzuf&#252;gen");
        addSong.setToolTipText("Datei/en zur Liste hinzuf&#252;gen"); //Button Tip Text
        addSong.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        chooseSong();
                    }
                }); //anonyme Klasse
        
        

        orgListModel = new DefaultListModel(); //DefaultListModell wird erzeugt
        newListModel = new DefaultListModel(); //DefaultListModell wird erzeugt
        orgDataList = new JList(orgListModel);
        newDataList = new JList(newListModel);



        orgDataLabel = new JLabel("ORIGINAL SONG:"); //Feld / Liste Original Datei
        newDataLabel = new JLabel("NEUER SONG:"); //Feld / Liste bearbeiteter Dateien

        panelButtons = new JPanel();
        panelButtons.setBackground(Color.gray); //Farbe des Button Panels (K, D, A)
        panelButtons.add(convert);
        panelButtons.add(addSong);
        panelButtons.add(removeSong);

        panelFlacFiles = new JPanel();
        panelFlacFiles.setBackground(Color.green); //Farbe des "ORIGINAL SONG" Frames
        panelFlacFiles.setBorder(BorderFactory.createMatteBorder(10, 10, 10, 10, Color.gray)); //Rahmen & Farbe
        panelFlacFiles.setLayout(new BorderLayout());
        panelFlacFiles.add(orgDataLabel, BorderLayout.NORTH);
        panelFlacFiles.add(orgDataList, BorderLayout.CENTER);

        panelNewFiles = new JPanel();
        panelNewFiles.setBorder(BorderFactory.createMatteBorder(10, 10, 10, 10, Color.gray));
        panelNewFiles.setBackground(Color.green); //Farbe des "NEUER SONG" Frames
        panelNewFiles.setLayout(new BorderLayout());
        panelNewFiles.add(newDataLabel, BorderLayout.NORTH);
        panelNewFiles.add(newDataList, BorderLayout.CENTER);

        panelFrame = new JPanel();
        panelFrame.setBackground(Color.lightGray);
        panelFrame.setLayout(new GridLayout(0, 2));
        panelFrame.add(panelFlacFiles);
        panelFrame.add(panelNewFiles);

        panelFortschritt = (JPanel) this.getGlassPane();
        panelFortschritt.setLayout(null);
        bar.setBounds(150, 250, 300, 25); //Fortschrittsbalken Update


        panelFortschritt.add(bar);


        this.setJMenuBar(meinMenu);
        this.add(panelButtons, BorderLayout.NORTH);
        this.add(panelFrame, BorderLayout.CENTER);
        this.setVisible(true);
    }

    public void chooseSong() {
        FileFilter filterFlac = new FileNameExtensionFilter(".flac", "flac");
        FileFilter filterMp3 = new FileNameExtensionFilter(".mp3", "mp3");      ////Filter f&#252;r Filechooser
        FileFilter filterWav = new FileNameExtensionFilter(".wav", "wav");

        waehlen = new JFileChooser();
        waehlen.addChoosableFileFilter(filterFlac);
        waehlen.addChoosableFileFilter(filterMp3);      //Filter f&#252;r Filechooser
        waehlen.addChoosableFileFilter(filterWav);
        waehlen.setMultiSelectionEnabled(true);
        waehlen.showOpenDialog(null);
        liste = waehlen.getSelectedFiles();

        oldFileFormat = new String[liste.length];
        newSong = new String[liste.length];

        flacData = new String[liste.length];
        orgFormat = new String[liste.length];
        newSongFormat = new String[liste.length];


        for (int i = 0; i < liste.length; i++) {

            oldFileFormat[i] = liste[i].toString();
            flacData[i] = oldFileFormat[i].substring(oldFileFormat[i].lastIndexOf("/") + 1, oldFileFormat[i].length());
            orgFormat[i] = oldFileFormat[i].substring(oldFileFormat[i].lastIndexOf("."), oldFileFormat[i].length());
            System.out.println(orgFormat[i]);
            orgListModel.addElement(flacData[i]);
            panelFlacFiles.setBackground(Color.white);
        }
        SongPfad = oldFileFormat[0].substring(0, oldFileFormat[0].lastIndexOf("/") + 1);
    }

    public void convertTO() {

        orgSongsOld = orgDataList.getSelectedValuesList().toArray();
        orgSongs = new String[orgSongsOld.length];
        for (int i = 0; i < orgSongsOld.length; i++) {
            orgSongs[i] = (String) orgSongsOld[i];

        }
        final int x = 100 / orgSongs.length;
        Thread runner;
        runner = new Thread() {
            @SuppressWarnings("SleepWhileInLoop")
            @Override
            public void run() {
                bar.setValue(0);
                panelFortschritt.setVisible(true);
                for (int i = 0; i < orgSongs.length; i++) {
                    newSong[i] = orgSongs[i].replace(orgFormat[i], format);
                    if (orgFormat[i].toString() == null ? format == null : orgFormat[i].toString().equals(format)) {
                        JOptionPane.showMessageDialog(null, "Gleiches ");
                    } else {
                        cmd = new String[4];
                        cmd[0] = "sox";
                        cmd[1] = "-f";
                        cmd[2] = SongPfad + orgSongs[i];
                        cmd[3] = SongPfad + newSong[i];

                        Runtime rt = Runtime.getRuntime();
                        Process p;
                        try {
                            p = rt.exec(cmd);
                            p.waitFor();

                        } catch (InterruptedException ex) {
                            Logger.getLogger(LAF.class
                                    .getName()).log(Level.SEVERE, null, ex);
                        } catch (IOException ex) {
                            Logger.getLogger(LAF.class
                                    .getName()).log(Level.SEVERE, null, ex);
                        }
                        newSongFormat[i] = newSong[i].substring(newSong[i].lastIndexOf("/") + 1, newSong[i].length());
                        newListModel.addElement(newSongFormat[i]);


                        y = y + x;
                        Runnable runme = new Runnable() {
                            @Override
                            public void run() {
                                bar.setValue(y);
                            }
                        };
                        SwingUtilities.invokeLater(runme);
                        try {
                            Thread.sleep(100); //Platz auf dem Chip freigeben & nach dieser Zeit wieder rechnen lassen
                        } catch (Exception ex) {
                        }
                    }
                    bar.setValue(100);
                    JOptionPane.showMessageDialog(null, "FERTIGGESTELLT"); //Dialog beim fertigstellen der Konvertierung
                    panelFortschritt.setVisible(false);

                }
            }
        };
        runner.start();
    }

    @SuppressWarnings("ResultOfObjectAllocationIgnored")
    public static void main(String[] args) {
        new LAF();
    }
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Converter GUI / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]