OOP Verwaltungssystem von MP3 Dateien/ Strukturfehler bzw. Denkfehler

  • Themenstarter Themenstarter CyanAlex
  • Beginndatum Beginndatum
C

CyanAlex

Gast
r84k9qad_png.htm

Folgendes Problem habe ich
-die Eingabe klappt nicht
habe versucht die MP3 Objekte nach der Klasse MP3 zu gestalten
jedoch glaube ich, irgendwo hängt es sich bei der Erstellung auf!
Habe ein Textfield erstmal in die Mitte erstellt um zu gucken ob der Zähler(AnzahlMP3) überhaupt hochzählt.. leider tut es das doch die Liste füllt sich nicht
Stehe momentan völlig auf dem schlauch 🙁
Java:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 16.03.2012
  * @author
  */

public class GUI extends Applet {
  // Anfang Attribute
  private Verwaltungs_Applet Verwaltung1;
  private List Liste = new List();
  private Button btnAusgabe = new Button();
  private TextField tFTitel = new TextField();
  private TextField tFKuenstler = new TextField();
  private TextField tFAlbum = new TextField();
  private Button btnEingabe = new Button();
  private TextField tFTitelsuche = new TextField();
  private Button btnTitelsuche = new Button();
  private TextField tFTitelloeschen = new TextField();
  private Button btnTitelloeschen = new Button();
  private Checkbox cbTitel= new Checkbox();
  private Button btnSortieren = new Button();
  private TextField textField1 = new TextField();
  // Ende Attribute

  public void init() {
    Verwaltung1 = new Verwaltungs_Applet();
    Panel cp = new Panel(null);
    cp.setBounds(0, 0, 401, 300);
    add(cp);
    // Anfang Komponenten

    Liste.setBounds(248, 32, 121, 145);
    cp.add(Liste);
    btnAusgabe.setBounds(272, 192, 75, 25);
    btnAusgabe.setLabel("btnAusgabe");
    btnAusgabe.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnAusgabe_ActionPerformed(evt);
      }
    });
    cp.add(btnAusgabe);
    tFTitel.setBounds(8, 32, 121, 24);
    tFTitel.setText("tFTitel");
    cp.add(tFTitel);
    tFKuenstler.setBounds(8, 64, 121, 24);
    tFKuenstler.setText("tFKuenstler");
    cp.add(tFKuenstler);
    tFAlbum.setBounds(8, 96, 121, 24);
    tFAlbum.setText("tFAlbum");
    cp.add(tFAlbum);
    btnEingabe.setBounds(8, 128, 75, 49);
    btnEingabe.setLabel("btnEingabe");
    btnEingabe.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnEingabe_ActionPerformed(evt);
      }
    });
    cp.add(btnEingabe);
    tFTitelsuche.setBounds(8, 192, 121, 24);
    tFTitelsuche.setText("tFTitelsuche");
    cp.add(tFTitelsuche);
    btnTitelsuche.setBounds(128, 192, 75, 25);
    btnTitelsuche.setLabel("btnTitelsuche");
    btnTitelsuche.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnTitelsuche_ActionPerformed(evt);
      }
    });
    cp.add(btnTitelsuche);
    tFTitelloeschen.setBounds(8, 224, 121, 24);
    tFTitelloeschen.setText("tFTitelloeschen");
    cp.add(tFTitelloeschen);
    btnTitelloeschen.setBounds(128, 224, 75, 25);
    btnTitelloeschen.setLabel("btnTitelloeschen");
    btnTitelloeschen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnTitelloeschen_ActionPerformed(evt);
      }
    });
    cp.add(btnTitelloeschen);
    cbTitel.setBounds(144, 48, 97, 17);
    cbTitel.setLabel("cbTitel");
    cp.add(cbTitel);
    btnSortieren.setBounds(144, 64, 75, 25);
    btnSortieren.setLabel("btnSortieren");
    btnSortieren.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        btnSortieren_ActionPerformed(evt);
      }
    });
    cp.add(btnSortieren);
    textField1.setBounds(120, 136, 121, 24);
    textField1.setText("textField1");
    cp.add(textField1);
    // Ende Komponenten

  }
  // Anfang Methoden
  public void btnAusgabe_ActionPerformed(ActionEvent evt) {
    textField1.setText(Verwaltung1.getAnzahlMP3()+"");
    for (int i=0;i< Verwaltung1.getAnzahlMP3() ;i++ ) {
     Liste.add(Verwaltung1.Einzelausgabe(i)+" ");
    }


    // TODO hier Quelltext einfügen
  }

  public void btnEingabe_ActionPerformed(ActionEvent evt) {
    Verwaltung1.ObjektEinfuegen( tFTitel.getText(), tFKuenstler.getText(), tFAlbum.getText());

    // TODO hier Quelltext einfügen
  }

  public void btnTitelsuche_ActionPerformed(ActionEvent evt) {
    int z = Verwaltung1.ObjektSuchen(tFTitelsuche.getText());
   if (z==Verwaltung1.getAnzahlMP3()+1) {
     Liste.add("Titel ist nicht vorhanden!");
   } else {
     Liste.add(Verwaltung1.Einzelausgabe(z) +" ");
   }
    // TODO hier Quelltext einfügen
  }

  public void btnTitelloeschen_ActionPerformed(ActionEvent evt) {
    Verwaltung1.ObjektLoeschen(tFTitelloeschen.getText());
    // TODO hier Quelltext einfügen
  }

  public void btnSortieren_ActionPerformed(ActionEvent evt) {
    int a= 2;
    if (a==2) {
     Verwaltung1.Sortieren();
    }
    // TODO hier Quelltext einfügen
  }

  // Ende Methoden

}
---------------------------------------------------------
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 16.03.2012
  * @author
  */

public class Verwaltungs_Applet {

  // Anfang Attribute
  private int defaultGroesse = 10;
  private int AnzahlMP3;
  private MP3[] MP3Sammlung;
  // Ende Attribute

  public Verwaltungs_Applet() {
  MP3[] MP3Sammlung = new MP3[defaultGroesse];
  setAnzahlMP3(0);
  }

  // Anfang Methoden


  public void ObjektEinfuegen (String Titel, String Kuenstler, String Album){
                                                                       //MP3 Datei einfügen + Zähler +1
   MP3Sammlung[getAnzahlMP3()]= new MP3(Titel,Kuenstler, Album );
   setAnzahlMP3(getAnzahlMP3()+1);
   if ( getAnzahlMP3() == MP3Sammlung.length -1) {               // Erweitern
    MP3[] MP3SammlungT = new MP3[2*MP3Sammlung.length];
    for (int r=0;r< AnzahlMP3 ;r++ ) {
     MP3SammlungT[r]= MP3Sammlung[r];
    }
    MP3Sammlung= MP3SammlungT;
   }
  }
  public void ObjektLoeschen(String Titel){
    int y = ObjektSuchen(Titel);
    if (y<=AnzahlMP3) {
    MP3Sammlung[y]=null;
     for (int i=y; i<AnzahlMP3 ;i++ ) {
      MP3Sammlung[i]=MP3Sammlung[i+1];
      MP3Sammlung[i+1]= null;
     }

    AnzahlMP3 = AnzahlMP3-1;
    }

  }
  public int ObjektSuchen(String Titel){
    for (int i = 0;i<=AnzahlMP3 ;i++ ) {
     if (MP3Sammlung[i].getTitel()==Titel) {
      return i;
     }
    }

    return AnzahlMP3+1;
  }

  public String Einzelausgabe(int i){
   String Tem = MP3Sammlung[i].getTitel()+ ", " + MP3Sammlung[i].getKuenstler()+ ", " + MP3Sammlung[i].getAlbum();
   return Tem;
  }

  public void Sortieren(){
   //Bubblesort

   for (int i=0;i < AnzahlMP3 ;i++ ) {
    for (int j= AnzahlMP3;j> i ;j-- ) {
      String a= MP3Sammlung[j-1].getTitel();
      String b= MP3Sammlung[j].getTitel();
      if (a.compareTo(b)>0) {
       Tausch(j);
      }
    }
   }
  }
  public void Tausch(int i){
     MP3 TEMP = MP3Sammlung[i];
     MP3Sammlung[i]= MP3Sammlung[i-1];
     MP3Sammlung[i-1]= TEMP;
  }
  
  public int getAnzahlMP3() {
    return AnzahlMP3;
  }

  public void setAnzahlMP3(int AnzahlMP3) {
    this.AnzahlMP3 = AnzahlMP3;
  }

  // Ende Methoden
}
--------------------------------------------------------------
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 16.03.2012
  * @author
  */

public class MP3 {

  // Anfang Attribute
  private String Titel;
  private String Kuenstler;
  private String Album;
  // Ende Attribute

  public MP3(String cTitel, String cKuenstler, String cAlbum) {
    this.Titel = cTitel;
    this.Kuenstler = cKuenstler;
    this.Album = cAlbum;
  }

  // Anfang Methoden
  public String getTitel() {
    return Titel;
  }

  public void setTitel(String Titel) {
    this.Titel = Titel;
  }

  public String getKuenstler() {
    return Kuenstler;
  }

  public void setKuenstler(String Kuenstler) {
    this.Kuenstler = Kuenstler;
  }

  public String getAlbum() {
    return Album;
  }

  public void setAlbum(String Album) {
    this.Album = Album;
  }

  // Ende Methoden
}
Wäre toll wenn ihr mich auf meine Fehler hinweisen könntet.
Der Sortieralgho. ist ebenfalls nicht ausgereift, denke ich. Konnte ihn jedoch noch nicht testen.
Hoffe meine Anfrage wird der Form des Forum gerecht
mfG Alex
 
Java:
 public void Sortieren(){
   //Bubblesort

   for (int i=0;i < AnzahlMP3 ;i++ ) {
    for (int j= AnzahlMP3;j> i ;j-- ) {
      String a= MP3Sammlung[j-1].getTitel();
      String b= MP3Sammlung[j].getTitel();
      if (a.compareTo(b)>0) {    // PROBLEM !
       Tausch(j);
      }
    }
   }
  }
  public void Tausch(int i){
     MP3 TEMP = MP3Sammlung[i];
     MP3Sammlung[i]= MP3Sammlung[i-1];
     MP3Sammlung[i-1]= TEMP;
  }
so den rest habe ich i-wie selber zusammengeflickt bekommen
Nun den sortieralgho.
problem ist das ich nicht weiß wie ich die Strings alphabetisch sotrieren kann bzw. Den TEXT in einen Wert umwandeln kann den ich vergleichen kann =/
ich darf keinen .sort befehl verwedenen

mfG Cyan
 
oder wie würdet ihr das machen ?
habe mein Array MP3Sammlung[] und will nach dem Attribut Titel alphabetisch sortieren
mhh bin echt ein wenig am verzweifeln bis MO muss das fertig sein ^^
 
Java:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortCollection {
	
	private String[] inhalt = {"Klaus", "Dieter", "Alfred", "John", "Stefan"};
	
	public SortCollection(){
		List<String> collection = new ArrayList<String>();
		
		System.out.println("Unsortiert:");
		for(int i=0;i<inhalt.length;i++){
			collection.add(inhalt[i]);
			System.out.println(collection.get(i));
		}
		
		System.out.println("\n\n");
		
		
		// hier ist der wichtige Teil
		Collections.sort(collection, new Comparator<String>() {
			@Override
		    public int compare(String s1, String s2) {
		        return s1.compareTo(s2);
		    }
		});
		
		System.out.println("Sortiert:");
		for(int i=0;i<collection.size();i++){
			System.out.println(collection.get(i));
		}
}
	
	public static void main(String[] args) {
		new SortCollection();
	}
	
}

Ausgabe:

Unsortiert:
Klaus
Dieter
Alfred
John
Stefan


Sortiert:
Alfred
Dieter
John
Klaus
Stefan
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben