Ich hab vollgendes Problem: Ich bin dabei einen quasi Speicher mit nem Vector zu programmieren.
Das funktioniert soweit, nur gelingt es mir nicht das erste Element des Vectors zu löschen.
In der klasse Wartschlangenverwaltung werden die einzelnen methoden aus Warteschlange aufgerufen.
Warteschlange besitzt den Vector. In Warteschlangenverwaltung, übergebe ich der Gui, in den Anfragen
naechsterBesitzer() und naechstesTier() einen String, der aus dem Vector in Warteschlange geladen, mit hilfe von zwei Anfragen.Nach der übergabe der Parameter müsste ich das erste Objekt, das ich bereits abgefragt habe, löschen damit ich auf das nächste element des Vectors zugreifen kann, und genau das gelingt mir nicht.
Ich hoffe ihr könnt mir helfen!!
Beim Quelltext hab ich mich auf die Klassen Warteschlangenverwaltung und Warteschlange beschränkt, es gibt aber auch eine Klasse Tierarztpraxis(Gui) und eine Klasse Patient(Element das in den vector geladen wird).
Mfg HAlo_Player
Edit(22.10.05-13:35): Ich hab doch die Klassen Patient und Tierarztpraxis hinzugefügt, vllt wird mein Problem dann
klarer.
Das funktioniert soweit, nur gelingt es mir nicht das erste Element des Vectors zu löschen.
In der klasse Wartschlangenverwaltung werden die einzelnen methoden aus Warteschlange aufgerufen.
Warteschlange besitzt den Vector. In Warteschlangenverwaltung, übergebe ich der Gui, in den Anfragen
naechsterBesitzer() und naechstesTier() einen String, der aus dem Vector in Warteschlange geladen, mit hilfe von zwei Anfragen.Nach der übergabe der Parameter müsste ich das erste Objekt, das ich bereits abgefragt habe, löschen damit ich auf das nächste element des Vectors zugreifen kann, und genau das gelingt mir nicht.
Ich hoffe ihr könnt mir helfen!!
Beim Quelltext hab ich mich auf die Klassen Warteschlangenverwaltung und Warteschlange beschränkt, es gibt aber auch eine Klasse Tierarztpraxis(Gui) und eine Klasse Patient(Element das in den vector geladen wird).
Mfg HAlo_Player
Edit(22.10.05-13:35): Ich hab doch die Klassen Patient und Tierarztpraxis hinzugefügt, vllt wird mein Problem dann
klarer.
Code:
import java.util.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.*;
public class Tierarztpraxis extends Applet implements ActionListener
{
TextField besitzerName, tierName;
Label naechsterBesitzer, naechstesTier, anzahl;
Button speichern,weiter;
Font font1,font2;
Warteschlangenverwaltung subClass;
public void init()
{
setBackground(Color.black);
setForeground(Color.red);
besitzerName=new TextField();
tierName=new TextField();
naechsterBesitzer=new Label("-");
naechstesTier=new Label("-");
anzahl=new Label("0");
speichern=new Button(" speichern ");
weiter=new Button(" weiter ");
this.add(weiter);
this.add(speichern);
this.add(besitzerName);
this.add(tierName);
this.add(naechsterBesitzer);
this.add(naechstesTier);
this.add(anzahl);
speichern.addActionListener(this);
weiter.addActionListener(this);
subClass= new Warteschlangenverwaltung();
}
public void paint(Graphics g)
{
font1=new Font("SansSerif",Font.BOLD,25);
font2=new Font("SansSerif",Font.ITALIC,15);
g.setFont(font1);
g.drawString("Tierartzpraxis",this.getWidth()*1/4,25);
g.setFont(font2);
g.drawString("Besitzername:",this.getWidth()*1/4-100,113);
g.drawString("Tiername:",this.getWidth()*1/4-100,138);
besitzerName.setBounds(this.getHeight()*1/4,100,100,20);
tierName.setBounds(this.getHeight()*1/4,125,100,20);
speichern.setBounds(this.getHeight()*1/4,165,70,20);
g.drawString("nächster Besitzer:",this.getWidth()*2/4,113);
g.drawString("nächstes Tier:",this.getWidth()*2/4,138);
g.drawString("Anzahl Patienten:",this.getWidth()*2/4,163);
naechsterBesitzer.setBounds(this.getHeight()*3/4,100,100,20);
naechstesTier.setBounds(this.getHeight()*3/4,125,100,20);
anzahl.setBounds(this.getHeight()*3/4,150,100,20);
weiter.setBounds(this.getHeight()*3/4-50,190,70,20);
}
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource()==speichern)
{
subClass.neuerPatient(besitzerName.getText(),tierName.getText());
besitzerName.setText("");
tierName.setText("");
};
if(evt.getSource()==weiter)
{
naechsterBesitzer.setText(subClass.naechsterBesitzer());
naechstesTier.setText(subClass.naechstesTier());
anzahl.setText(subClass.wartende());
};
}
}
Code:
public class Warteschlangenverwaltung
{
Warteschlange schlange;
Patient patient;
public Warteschlangenverwaltung()
{
schlange=new Warteschlange();
}
public void neuerPatient(String pName, String pTier)
{
patient=new Patient(pName,pTier);
schlange.anhaengen(patient);
}
public String naechstesTier()
{
return ((Patient)schlange.erstesObjekt()).tier();
}
public String naechsterBesitzer()
{
return ((Patient)schlange.erstesObjekt()).name();
// Hier müsste meiner Meinung nach mit schlange.loeschen(); der Kopf
//des Vectors gelöscht werden,geht aber nicht, der Copiler sagt : Unreachable Statement
}
public String wartende()
{
return Integer.toString(schlange.anzahl());
}
}
Code:
import java.util.*;
public class Warteschlange
{
Vector schlange;
public Warteschlange()
{
schlange=new Vector();
}
public void anhaengen(Object pObjekt)
{
schlange.addElement(pObjekt);
}
public void loeschen()
{
schlange.removeElementAt(0);
}
public Object erstesObjekt()
{
return schlange.elementAt(0);
}
public int anzahl()
{
return schlange.size();
}
}
Code:
public class Patient
{
String zName,zTier;
public Patient(String pName, String pTier)
{
zName=pName;
zTier=pTier;
}
public String name()
{
return zName;
}
public String tier()
{
return zTier;
}
}