K
k-s
Gast
Also, ich muss aus der Console Fenster erzeugen und sie in eine Liste speichern können, und dann sie auch löschen.
Die Methode "delete" soll bestimmte Anzahl von Fenstern vorne in der Liste löschen, wie angegeben. Dabei müssen Fenster auch geschlossen werden.
Das Problemm ist, dasss bei mir Fenster geschlossen werden, die hinten angehäng wurden und nicht die, die vorne stehen, voran das liegt kann ich nicht finden
Die Methode "delete" soll bestimmte Anzahl von Fenstern vorne in der Liste löschen, wie angegeben. Dabei müssen Fenster auch geschlossen werden.
Das Problemm ist, dasss bei mir Fenster geschlossen werden, die hinten angehäng wurden und nicht die, die vorne stehen, voran das liegt kann ich nicht finden
Code:
class WindowManager
{
private static Sequence liste;
public static void main (String[] args) {
Scanner tastatur = new Scanner(System.in);
liste = new Sequence();
................................
................................
}
/**
* Methode create() erzeugt übergebene Zahl von Fenstern und hängt sie hinten an der Liste
*/
public static void create(int number)
{
for (int i=0; i<number; i++)
{
liste.insert(new MyFrame());
}
System.out.println("\n!!>> "+number + " Fenster wurden erzuegt");
System.out.println("!!>> "+liste.getSize()+" Fenster in der Liste");
}
/**
* Methode delete()
*/
public static void delete(int number)
{
if(!(number>liste.getSize()))
{
for(int i=0; i<number; i++)
{
liste.getErstenElement().setVisible(false);
liste.removeErstenElement();
}
System.out.println(number+ " Fenstern wurden aus der Liste entfernt");
System.out.println(In der Liste sind "+liste.getSize()+" Fenstern");
}
else System.out.println("So vile Fenster gibt es nicht!");
}
}
class Node
{
public MyFrame data;
public Node link;
public Node (MyFrame w, Node n)
{link = n; data = w; }
}
class Sequence
{
private Node start, prev, now;
public Sequence()
{start = null; prev = null; now = null;}
public void insert (MyFrame x)
{
Node newElem = new Node (x, now);
if (prev == null) {start=newElem;}
else {prev=now; prev.link=newElem;}
now = newElem;
}
public void removeErstenElement ()
{
if (start != null)
{
if (getSize()==1)
{start=null; now=null;}
else
if (getSize()==2)
{start=start.link; prev=null;}
else start=start.link;
}
else System.out.println("Es gibt keine Fenstern");
}
public MyFrame getErstenElement() {return start.data;}
public int getSize()
{
Node p = start;
int counter = 0;
for(;p!=null;p=p.link)
counter++;return counter;
}
public boolean isEmpty() {return start == null;}
}
class MyFrame extends JFrame
{
static int fensterNummer = 1;
MyFrame()
{
......
}
}