JApplet - getItemCount()

Status
Nicht offen für weitere Antworten.

Sindbad1983

Top Contributor
Hi!

Ich hätt mal ne kurze Frage bezüglich JApplet:


Wenn ich ein Auswahlmenü kreiere und dann z.B. fünf Einträge diesem hinzufüge, dann ist es mit der Methode getItemCount() möglich , die Anzahl der enthaltenen Elemente auszugeben!

Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.applet.*;


public class Auswahlmenu extends JApplet{

	int ItemCount;

		public void init(){

			Container c;
			c=getContentPane();
			c.setLayout(new FlowLayout());
			c.setBackground(Color.gray);


			Choice ce=new Choice();
			ce.add("Apples");
			ce.add("Oranges");
			ce.add("Bananas");
			ce.addItem("Telefon");
			ce.add("Frosch");
			ItemCount=ce.getItemCount();

			c.add(ce);
		}

		public void paint(Graphics g){

			g.drawString("Anzahl:"+ItemCount,50,50);
		}
}

Diese Variante funktioniert ohne Probleme!
wenn ich aber jetzt versuche, eine eigene Methode mit dem Namen getItemCount() zu schreiben, dann funktioniert das nicht!Wieso?

Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.applet.*;


public class Auswahlmenu extends JApplet{

	int ItemCount;

		public void init(){

			Container c;
			c=getContentPane();
			c.setLayout(new FlowLayout());
			c.setBackground(Color.gray);

			Choice ce=new Choice();

			ce.add("Apples");
			ce.add("Oranges");
			ce.add("Bananas");
			ce.addItem("Telefon");
			ce.add("Frosch");
			ce.getItemCount();

			c.add(ce);
		}

		public void paint(Graphics g){

			g.drawString("Anzahl:"+ItemCount,50,50);
		}

		public int getItemCount(){
			return ItemCount;
		}
}

Oder hab ich einen Fehler gemacht?
Vielleicht kann mir jemand bitte schnell diese Frage beantworten!!

Danke,Tommy
 
du machst ja in der methode getItemCount nichts!

köntest vieleicht machen:
Code:
public int getItemCount(){
    return super.getItemCount();
}
aber macht ja auch nicht wirklich sinn 😉

wenn du die methode selbst erstellen willst musst du auch etwas darin tun, sonnst passiert auch nichts. und die Var ItemCount wird nie initialisiert....

gruss
 
ja hab auch festgestellt dass es nicht geht. aber dein Problem ist, dass du die Methode getItemCount überschreibt. mit ihr aber nichts machst. kann doch nicht gehen?
und wie gesagt deiene var wird nie initialisiert....
 
Ja und was könnt man dann reinschreiben, dass die Methode die Anzahl ausgibt?
Weißt du das?
Initialisiert hab ichs schon mittlerweile...!
Danke,Tommy
 
hmmm sag dir wies geht, möchte nur noch wissen wieso du das machst 😉

Code:
public int getItemCount(){ 
    return deineComboBox.getModel().getSize();
}
 
Da wird doch kein "getItemCount" überschrieben, es wird ja von JApplet geerbt.

Aber vielleicht musst du nur das Choice (öhms, Swing, AWT, das wird Probleme geben, siehe FAQ) als Variable speichern:
Code:
public class Auswahlmenu extends JApplet{

   Choice ce;

      public void init(){

         Container c;
         c=getContentPane();
         c.setLayout(new FlowLayout());
         c.setBackground(Color.gray);

         ce=new Choice();

         ce.add("Apples");
         ce.add("Oranges");
         ce.add("Bananas");
         ce.addItem("Telefon");
         ce.add("Frosch");
         ce.getItemCount();

         c.add(ce);
      }

      public void paint(Graphics g){

         g.drawString("Anzahl:"+ItemCount,50,50);
      }

      public int getItemCount(){
         return ce.getItemCount();
      }
}
 
Beni..deins geht auch nicht!

Aber egal..ich werd die Methode éinfach nicht überschreiben...! 🙂

Warum ich das mach? Weil ichs einfach ausprobieren wollt, ob das geht..!*javasüchtig* *g*

Danke auf jeden Fall!
 
hast recht. aber deines ist auch nicht ganz richtig! 😉

dein eigentes getItemCount wird nie ausgeführt, das du das getItemCount der ComboBox ausführst. also könnstest du deine eigene getItemCount weglassen und es gäbe das gleiche resultat....
 
müsstest die combobox übergeben:

Code:
public class Auswahlmenu extends JApplet{ 

   Choice ce; 

      public void init(){ 

         Container c; 
         c=getContentPane(); 
         c.setLayout(new FlowLayout()); 
         c.setBackground(Color.gray); 

         ce=new Choice(); 

         ce.add("Apples"); 
         ce.add("Oranges"); 
         ce.add("Bananas"); 
         ce.addItem("Telefon"); 
         ce.add("Frosch"); 
         getItemCount(ce); 

         c.add(ce); 
      } 

      public void paint(Graphics g){ 

         g.drawString("Anzahl:"+ItemCount,50,50); 
      } 

      public int getItemCount(JComboBox ce){ 
         return ce.getModel().getSize();

mein java gott hat nen fehler gemacht ? 🙁
oder hab ich falsch überlegt 😛
 
ist die implementation in Swing. sorry hab nicht so genau geschaut... in diesem fall geht das nicht, weil Choice kein getModel() kennt.
könntest ja auf swing umsteigen 😉
 
dann kannst einfach anstatt Coice überall JComboBox schreiben. dann funktioniert meine letzte variante. geh jetzt essen

Bon Apetit
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben