also Quellcode von "Sortierverfahren":
import java.awt.*;
import java.applet.Applet.*;
class Sortierverfahren extends KMaske1
{
private Applet app;
protected Choice= new Choice();
Choice auswahl;
Sortierverfahren(Applet a,String ue)
{
super(a,ue,"Visualisierung von Sortierverfahren");
}
public void starte()
{
auswahl.add("BubbleSort");
auswahl.add("austauschSort");
protected void starten()
{
startKnopf.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
switch(auswahl.getSelectedIndex())
{
// da fehlen jetz noch die methoden......
}
}
}
}
Also diese Klasse ist noch nicht vollständig..Aber mein Hauptproblem liegt darin,eine Mehrfachvererbung hinzukriegen.
KMaske1 ist:
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
class KMaske1 extends KMaske0
{
private Applet app;
protected int breiteC = 350, hoeheC = 350;
protected Color hintergrund = Color.black;
protected Color vordergrund = Color.red;
protected Canvas malflaeche = new Canvas();
protected int anzahl = 50;
protected Button generierTaste = new Button("Generieren");
protected Button darstellTaste = new Button("Darstellen");
KMaske1 (Applet a,String ue)
{
super( a,ue,"Anzahl");
}
public void starte()
{
listenFelder = 12;
eingabe1.setText(""+anzahl);
pSued.add(generierTaste);
pSued.add(darstellTaste);
super.starte();
malflaeche.setBackground(hintergrund);
malflaeche.setForeground(vordergrund);
malflaeche.setSize(breiteC, hoeheC);
pMitte.add(malflaeche);
generierTaste.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
generieren();
}
});
darstellTaste.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
darstellen();
}
});}
protected void loeschen()
{
super.loeschen(); //Löschen der Liste
Graphics g = malflaeche.getGraphics(); //Löschen der Malfläche durch Übermalen
g.setColor(hintergrund); // mit der Hintergrundfarbe
g.fillRect(0,0, malflaeche.getSize().width, malflaeche.getSize().height);
g.dispose(); //Freigabe der von g belegten Ressourcen
}
protected void iFuegeAn(int i)
{
super.iSchreibe(i); //Erweitern der Liste
//plott(liste.getItemCount() - 1,i,vordergrund); //Graph.Pendant
}
protected int iLiesListe(int pos) //aus der Liste lesen
{
return Integer.valueOf(liste.getItem(pos)).intValue();
}
protected void plott(int i,int d,Color c) //eine Kreisscheibe in der angg.Farbe
{ //auf Malfläche zeichnen
Graphics g= malflaeche.getGraphics();
g.setColor(c);
g.fillOval(i*5,(int)(hoeheC - 5 - 5*d),5,5); //Mittelpunkt,Achsen(d.Punktes)
g.dispose();
try{
Thread.sleep(50); } //50 Millisekunden Pause
catch (InterruptedException e){ } //Ausnahmebehandlung
}
protected void iErsetze(int i,int k)
{
int vorher;
vorher=iLiesListe(i);
liste.replaceItem(String.valueOf(k),i);
plott(i,vorher,hintergrund); //vorhergehende darstellung wird übermalt
plott(i,k,vordergrund); //neuer Punkt mir Vordergrund
}
protected void iTausche(int i,int k)
{
int di,dk;
di=iLiesListe(i);dk=iLiesListe(k);
iErsetze(i,dk);
iErsetze(k,di);
}
protected void generieren()
{
anzahl=iLies(eingabe1);
super.loeschen(); // "loeschen" =Löschmethode aus KMaske0
for(int i=0;i<anzahl;i++) iFuegeAn(i);
for(int i=0;i<anzahl;i++)
{
int z= (int) (Math.random()*(anzahl-i));
iTausche(z,anzahl - i -1);
}
}
public void darstellen()
{
anzahl=iLies(eingabe1);
for(int i=0;i<anzahl;i++) plott (i,iLiesListe(i),vordergrund);
}
protected void starten()
{
}
}