Probleme mit der Anzeige in der ComboBox

Lautsprecher

Erfahrenes Mitglied
Hi,
ich lese gerade über Vectoren Einträge aus der Datenbank aus und befülle damit meine Combo-Box:

Dazu habe ich ein paar Fragen:

Hier der Code:

Code:
Vector gruppen = groupIdAuslesen();
jComboBox = new JComboBox(gruppen);


Code:
protected Vector groupIdAuslesen()
 {
	   
      Vector gruppen = new Vector();
	   
	if( null != sDbDrv && 0 < sDbDrv.length() &&
	    null != sDbUrl && 0 < sDbUrl.length() &&
	    null != sTable && 0 < sTable.length() ) 
	  {
			
	  try 
	  {
		// Select fitting database driver and connect:
		Class.forName( sDbDrv );
		cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
		}
		     catch( Exception ex ) 
		{
		         System.out.println( ex );
		} 
	}
	try
    	{
    		st = cn.createStatement();
    		rs = st.executeQuery("SELECT DISTINCT group_id  "  +
           			             "from " + sTable 
           	     
    	);
    	while (rs.next())
    	{	
    		String gruppenid = null;
    		gruppenid = rs.getString("group_id");
    			
    		if (gruppenid != null) 
    		{
    		     if (gruppenid.equals(""))
    		     {
       		     }    
		     else
    		    {
    		    if (gruppenid.equals("C")) 
        		     {
        		     }
        		    else        
		    {
        			gruppen.add(gruppenid);
        		    }
    		   }	
    				
    				
    	      }
    	}
    	}
    	catch (SQLException e)
    	{
    		e.printStackTrace();
    	}
    	finally 
		{
			try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
			try { if( null != st ) st.close(); } catch( Exception ex ) {}
			try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
		}
	    return gruppen;
   }


1. Mein Tabelle liefert mir beim Auslesen immer mind. 1x " " mit. Ich möchte aber
verhindern, das meine Combobox den Eintrag " " anzeigt.
Deswegen der rote Code:
Code:
if (gruppenid.equals(""))
    		{
       		}    
		 else
Weiß jemand vielleicht eine schönere Lösung damit ich das leere if umgehen kann?
Ein notequals gibt es ja glaub ich nicht!

2. Meine ComboBox wird z. B. mit folgenden Werten gefüllt:
A
B
C
D
Da ich nicht weiß ob sich die Reihenfolge der Werte in der Datenbank ändert, habe ich
auch keine feste Reihenfolge in der ComboBox.
Wenn ich nun das Programmstarte soll es aber immer mit dem Wert C initialisiert sein.
Sprich in der ComboBox soll gleich der Wert C angezeigt werden, aber auch für das
spätere Auswählen erhalten bleiben.
 
Hi,

doch des gibt ein notequals.

Code:
if (!"".equals(variable)) {
    //tue etwas
}

Falls du den leeren Eintrag auch aus der DB haben möchtest, dann füge doch nach dem auslesen einen leeren Eintrag hinzu.

Gruß

Romsl
 
Erneuter Fehler aufgetreten

Hallo Leute,
kann mir vielleicht jemand nochmal kurz weiter helfen. Wie schon erwähnt,
möchte ich wenn mein Programm startet gleich in der ComboBox Glasdeckel_ESHD
drin stehen haben. Ich habe jetzt den Code von Dir schnuffie ausprobiert.


Code:
if (gruppenid.equals("Glasdeckel_ESHD")) 
{ 
   [B] jComboBox.setSelectedItem("Glasdeckel_ESHD");[B]   
   gruppenauswahl = gruppenid;
   gruppen.add(gruppenid);
}

Aber komischer weise bekomme ich jetzt eine NullPointerException!!
 
Re: Erneuter Fehler aufgetreten

Hi Leute,
hatte eben ein Geistesblitz. Ich rufe bevor ich die jComboBox anlege die obere Methode auf.
Deswegen NullPointerException.
That's it!
Merci nochmal
 
Zurück