# Applet mit einer einfach verketteten Liste



## shadow432 (20. Jan 2010)

Hallo!
Ich habe ein Problem:
Ich kenne Java eigentlich noch garnicht und soll jetzt in einem Java Applet eine verkettete liste darstellen.
Durch meine erfahrung in c konnte ich ein Grundprogramm entwerfen dieses hier:

```
import java.util.LinkedList;
 
public class MyClass {
 
  public static void main(String[] args) {

    LinkedList Liste = new LinkedList();
    
    int n;
    n=5;
    for(int i=1;i<=n;i++){
    	Liste.add(i);
    }
    int wahl;
    wahl=2;
   do{ 
    System.out.println("\nDie verkettete Liste enthält : " + Liste);
    System.out.println("Bitte wählen Sie was Sie tun möchten:\n");
    System.out.println("0 - Programm beenden");
    System.out.println("1 - Ein bestimmtes Element anzeigen");
    System.out.println("2 - Ein bestimmtes Element löschen");
    System.out.println("3 - Alle Elemente löschen");
    System.out.println("4 - Elemente hinzufügen");
    System.out.println("5 - Ein Element suchen");
    System.out.println("6 - Alle Elemente anzeigen");

    
    switch (wahl) {
	case 1:{
		System.out.println("\nWelches Element wollen Sie?");
		int a=0;//Das Element was ausgegeben werden soll!
		System.out.println("Das " + a + ". Element lautet: " + Liste.get(a));
	}break;
	case 2:{ 
		int b;//Das Element das entfernt werden soll!
		b=2;
		Object obj=Liste.remove(b);
		System.out.println("\nDas " + b + ". Element wurde entfernt: " + Liste);
		System.out.println("Achtung: Die verkettete Liste fängt bei Null an zu zählen.");
	}break;
	case 3:{
		Liste.clear();
		System.out.println("\nDie Verkettete Liste ist nun leer: " + Liste);
	}break;
	case 4:{
		System.out.println("\nWieviele Elemente möchten Sie hinzufügen?");
		int c;//Wieviele Elemente hinzugefügt werden sollen
		c=2;
		int d;
		d=6;//d wird noch durch eine Eingabe ersetzt
		for(int j=1;j<=c;j++){
			Liste.add(d);
			d++;
		}
		System.out.println(c + ". Elemente wurden hinzugefügt: " + Liste);
	}break;

	default:System.out.println("Der gewählte Menu Punkt ist nicht vorhanden");
		break;
	}
    wahl--;
   }while(wahl!=0);
   System.out.println("\n\n\nProgramm beendet!");
	  

  }
}
```

Bis hierhin Funktioniert alles.
Das Problem ist das ich mit dem Applet nicht so richtig klar komme ein kumpel hat mir schon mal ein bisschen geholfen aber den sehe ich leider zu selten!
kann mir jemand Vorschläge machen wie das als Applet realisieren kann?
Hier mein letzter stand des Programms: 

```
import java.applet.Applet;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;

import javax.swing.JButton;
import javax.swing.JTextField;



public class Liste_ extends Applet {
	LinkedList Liste = new LinkedList();
	public void init(){
		objectanz();
		do{
			
		objectw();
		}while(ueb!=0);
		System.out.println("\n\n\nProgramm beendet!");
	}
	int ueb;
	JTextField txt_wahl;
	JTextField txt_anz;
	private void objectanz(){
		setLayout(null);
		
		
		
		txt_anz= new JTextField();
		txt_anz.setBounds(10, 10, 60, 20);
		
		JButton btt_anz;
		
		btt_anz= new JButton("OK");
		btt_anz.setBounds(10, 30, 60, 40);
		btt_anz.addActionListener(new ActionListener(){
			
			public void actionPerformed(ActionEvent e){
				anz(Integer.valueOf(txt_anz.getText() ).intValue());
				
			}
			
		});
		add(btt_anz);
		add(txt_anz);


		
	}
	private void anz(int anz){
	    
	    for(int i=1;i<=anz;i++){
	    	Liste.add(i);
	    }
	}
	private void objectw(){
		setLayout(null);
		
		
		
		txt_wahl= new JTextField();
		txt_wahl.setBounds(70, 10, 60, 20);
		
		JButton btt_wahl;
		
		btt_wahl= new JButton("OK");
		btt_wahl.setBounds(70, 30, 60, 40);
		btt_wahl.addActionListener(new ActionListener(){
			
			public void actionPerformed(ActionEvent e){
				wahlb(Integer.valueOf(txt_wahl.getText() ).intValue());
				
			}
			
		});
		add(btt_wahl);
		add(txt_wahl);


		
	}
	
	  private void wahlb(int wahl){
		
	    System.out.println("\nDie verkettete Liste enthält : " + Liste);
	    System.out.println("Bitte wählen Sie was Sie tun möchten:\n");
	    System.out.println("0 - Programm beenden");
	    System.out.println("1 - Ein bestimmtes Element anzeigen");
	    System.out.println("2 - Ein bestimmtes Element löschen");
	    System.out.println("3 - Alle Elemente löschen");
	    System.out.println("4 - Elemente hinzufügen");
	    System.out.println("5 - Ein Element suchen");
	    System.out.println("6 - Alle Elemente anzeigen");

	    
	    switch (wahl) {
		case 1:{
			System.out.println("\nWelches Element wollen Sie?");
			int a=0;//Das Element was ausgegeben werden soll!
			System.out.println("Das " + a + ". Element lautet: " + Liste.get(a));
		}break;
		case 2:{ 
			int b;//Das Element das entfernt werden soll!
			b=2;
			Object obj=Liste.remove(b);
			System.out.println("\nDas " + b + ". Element wurde entfernt: " + Liste);
			System.out.println("Achtung: Die verkettete Liste fängt bei Null an zu zählen.");
		}break;
		case 3:{
			Liste.clear();
			System.out.println("\nDie Verkettete Liste ist nun leer: " + Liste);
		}break;
		case 4:{
			System.out.println("\nWieviele Elemente möchten Sie hinzufügen?");
			int c;//Wieviele Elemente hinzugefügt werden sollen
			c=2;
			int d;
			d=6;//d wird noch durch eine Eingabe ersetzt
			for(int j=1;j<=c;j++){
				Liste.add(d);
				d++;
			}
			System.out.println(c + ". Elemente wurden hinzugefügt: " + Liste);
		}break;

		default:System.out.println("Der gewählte Menu Punkt ist nicht vorhanden");
			break;
		}
	    wahl=ueb;
	  }
	  
}
```

Ich hoffe ihr seht durch ich finde es ganz schön durcheinander!

Danke schon wenn ihr es euch überhaupt anguckt!


----------



## nrg (20. Jan 2010)

Also erstmal was zur LinkedList. LinkedList ist eine generische Klasse. Dh du solltest der LinkedList bei der Deklaration ein Typargument übergeben. Dazu ist noch zu sagen (weil du ja anscheinend Umsteiger von c bist), dass es in Java keine primitiven Generics gibt. Dabei helfen aber die Wrapper Klassen. 
z.b.

```
LinkedList<Integer>...
//oder
LinkedList<Object>...
```

das mit dem Applet kuck ich mir jetz mal an aber hab mit Applets selbst net viel gemacht bis jetz..

grüße
nrg

edit:
was du mit

```
Object obj=Liste.remove(b);
```
bezwecken willst, ist mir auch unklar.
Nebenbei: Variablennamen schreibt man in Java klein. z.b Klassennamen Groß oder Konstanten IN_CAPS.


----------



## shadow432 (20. Jan 2010)

nrg hat gesagt.:


> edit:
> was du mit
> 
> ```
> ...



also das habe ich mir als löschen eines bestimmten Elements raus gelesen!

MfG


----------



## nrg (20. Jan 2010)

dazu reicht aber
liste.remove(index)


----------



## shadow432 (26. Jan 2010)

Hat keiner ne Idee??


----------

