Probleme mit Anzeige von JComboBox

Sqwan

Mitglied
Schönen guten Morgen

Also ich habe ne Klasse geschrieben. Diese erbt von JComboBox.
Wenn ich die jetzt im Constuctor mit this.setLocation und this.setSize einstelle funktioniert das.

Wenn ich die jetzt aber meinem frame hinzufüge wird nichts angezeigt.

setze ich ich size und location in der Klasse in der ich das Frame erzeuge, kann ich es aber sehen... Jemand eine idee worans liegt?

Code:
package gui;
import javax.swing.JComboBox;

Java:
public class MyJCBox<ATyp> extends JComboBox  
{
	private static final long serialVersionUID = 1L;
	ATyp[] werte;
	
	MyJCBox(ATyp w[], int width, int height, int xLocate, int yLocate)
	{
		this.werte = w;
		//System.out.printf("%d",height);
		
		for(int i=0; i<=this.werte.length-1; i++)
		{
			
			this.addItem(this.werte[i].toString());
		}
		this.setLocation(xLocate, yLocate);
		this.setSize(width, height);
		//System.out.printf("%d",this.getLocation().y);
	}
}

Die Prüfungen geben auch die korrekten werde.

Wieso kann ich aber nichts sehen...

Das frame hat null-layout. Ist ein JFrame...

Danke schon mal für eure Antworten

So long
Sqwan
 
Hallo,

habe deine Klasse mal ausprobiert.
Funktioniert bei mir prima:
Java:
import javax.swing.* ;
 
public class Pong
{
	public static void main(String[] args)
	{
		Pong t = new Pong();
		
	}
	
	public Pong()
	{
		JFrame x = new JFrame();
		x.setLayout(null);
		x.setSize(200, 200);
		x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		String[] p = {"1","2","3"};
		
		MyJCBox<String>  y = new MyJCBox<String>(p, 40, 50, 30, 10);
		
		x.add(y);
		
		x.setVisible(true);
	}
	
	public class MyJCBox<ATyp> extends JComboBox  
	{
	    private static final long serialVersionUID = 1L;
	    ATyp[] werte;
	    
	    MyJCBox(ATyp w[], int width, int height, int xLocate, int yLocate)
	    {
	        this.werte = w;
	        //System.out.printf("%d",height);
	        
	        for(int i=0; i<=this.werte.length-1; i++)
	        {
	            
	            this.addItem(this.werte[i].toString());
	        }
	        this.setLocation(xLocate, yLocate);
	        this.setSize(width, height);
	        //System.out.printf("%d",this.getLocation().y);
	    }
	}
}

Du scheinst evtl. da einen Fehler beim Hinzufügen deiner Combobox in das JFrame zu machen. Oder es liegt an deiner Klasse ATyp.

Mach mal ein KSKB.

Ein Tip für die for-Schleife:
Mach es so:
Java:
for(int i=0; i<this.werte.length; i++)
oder noch besser:
Java:
for(int i=0, n=this.werte.length; i<n; i++)
Das letztere soll sehr performant sein, da die Methode .length nur beim ersten Mal ausgeführt wird und nicht bei jeden Schleifendurchlauf.

MfG
hansmueller
 
Herzlichen dank... Ich habe ein Fehler im Frame gehabt. Bzw so halbt. Eine andere JComboBox hat die neue überdeckt, weil ich mit Copy & Paste werte übergeben habe und diese nicht geändert habe. Nach dem ich einfach alles wegkommentiert hatte sah ich das die MyJCBox an einer Position war wo eine normale JComboBox war...
 

Zurück
Oben