# Vector - Boolean



## Java-Rookie (16. Mrz 2006)

Ich hab mal da so ne Frage....  ???:L 

kann ich einem Vector auch einen wert übergeben wie true und false? Finde irgendwie keine add-Methode die das macht....  :?


----------



## byte (16. Mrz 2006)

```
List<Boolean> myList = new Vector<Boolean>();
myList.add(true);
```


----------



## Java-Rookie (16. Mrz 2006)

hmmm..... 

funzt so auch nicht ganz... sollte vielleicht erwähnen das mein Vector mit Strings gefüllt wird... diese dann in einem JTable ausgegeben werden. ich will jetzt nur als erste oder letzte Reihe in meine Table boolean haben... 

geht das überhaupt? 

weil so wie in deinem beispiel muss ja der ganze vector boolean sein.... oder?!?!?  :?:


----------



## norman (16. Mrz 2006)

```
Vector v = new Vector();
String s = "sdf";
boolean b = true;
v.add(s);
v.add(b);
```
geht doch. ist aber nicht typsicher.


----------



## mikachu (16. Mrz 2006)

Java-Rookie hat gesagt.:
			
		

> sollte vielleicht erwähnen das mein Vector mit Strings gefüllt wird... diese dann in einem JTable ausgegeben werden. ich will jetzt nur als erste oder letzte Reihe in meine Table boolean haben...



warum willst du als erste oder letzte tabelle einen boolean speichern?


----------



## Java-Rookie (16. Mrz 2006)

ich will so eine checkbox in meine Table bekommen.... sonst ist mir kein weg eingefallen.....  :wink:


----------



## Java-Rookie (16. Mrz 2006)

```
Vector row = new Vector(columns);
        boolean f = false;
        row.add(f);
        row.add(f);
```

das funzt bei mir nicht... kommt immer mecker von eclipse

"The method add(Object) in the Vector is not applicable for the arguments (boolean)"

weil so hatte ich das auch schon probiert....  :cry:


----------



## mikachu (16. Mrz 2006)

was soll die boolean-spalte dann anzeigen ?

ob text vorhanden ist ?


am besten du schilderst mal dein ganzes vorhaben, um ein bild von zu machen :roll:


----------



## byte (16. Mrz 2006)

Welche Java-Version verwendest Du? Ich nehme mal an, 1.4 oder niedriger.

Dann darfst Du nicht den primitiven Typ boolean verwenden sondern musst den Wrapper benutzen:


```
Vector row = new Vector();
Boolean f = new Boolean(true);
row.add(f);
```


----------



## Beni (16. Mrz 2006)

Veraltete Java-Version....

```
Vector v = ...
boolean b = ...
v.add( Boolean.valueOf( b )); // Die Wrapper-Klasse benutzen
```


----------



## Murray (16. Mrz 2006)

Ein Vector kann nur Objects enthalten, keine primitiven Typen (wie int oder boolean). Um primitive Typen einzufügen, braucht man ein Wrapper (wie Integer oder Boolean).


```
boolean b = true;
Vector v = new Vector();
v.add( new Boolean( b));
```

Mit dem JDK 1.5 ist aber das sogenannte Auto-Boxing eingeführt worden, damit kann man tatsächlich auch schreiben:

```
boolean b = true;
Vector v = new Vector();
v.add( b); //--- Auto-Boxing
```

Der Compiler generiert hier aber genau den gleichen Code, Performance und Memory-Verbrauch sind in beiden Fällen gleich, da das Wrapper-Objekt so oder so erzeugt wird.

BTW: das Autoboxing kann auch lustige Fehler produzieren:

```
Vector v = new Vector();
	v.add( true);  //--- auto-boxing -> v.add( new Boolean( true));
	v.add( false); //--- auto-boxing -> v.add( new Boolean( false));
	v.add( null);
	
	for ( int i=0; i<v.size(); i++) {
		Boolean bo = (Boolean)(v.elementAt( i));
		boolean b = bo; //--- auto-boxing -> bo.booleanValue()
		if ( b) System.out.println( "element #" + i + " is true");
	}
```

OK, das Bespiel ist sinnlos und auch noch recht übersichtlich, aber etwas überraschend ist es doch, in der "harmlosen" Zuweisung b = bo eine NullPointerException zu bekommen...

/EDT: copy&paster-Fehler korrigiert


----------



## Java-Rookie (16. Mrz 2006)

Also Java Version 1.5.0_01

mein Vectort liest Daten aus der DB aus... Der eine die Daten der andere die Spaltennamen. Diese beiden Vectoren über gebe ich an meinen JTable. funzt alles soweit auch ganz gut... 

nur jetzt will ich noch zwei checkboxen je reihe haben weil ich noch zwei felder mehr brauche um in die neue db zu schreiben... 

hoffe das ist irgendwie verständlich...  :bahnhof:


----------



## byte (16. Mrz 2006)

Du bist zu langsam, oben steht schon dreimal die Lösung. 

Da Du Java 5 benutzt, nehme ich mal an, dass der Compiler Level noch auf 1.4 steht in der IDE. Benutzt Du Eclipse? Dann Project -> Properties -> Java Compiler und auf 5.0 stellen.


----------



## Java-Rookie (16. Mrz 2006)

also mit dem wrapper gehts... 

boah... jetzt steh ich ganz auf dem schlauch... wenn ich das im tutorial für jtable richtig verstanden habe müsste mir der table doch jetzt einfach eine checkbox anzeigen?!!?


----------



## Java-Rookie (16. Mrz 2006)

jo bin irgendwie zu langsam... ;o)

so den compiler hab ich umgestellt... war wirklich noch der alte! ;o)
hab aber immer noch keine checkboxen... lol


----------



## norman (16. Mrz 2006)

Java-Rookie hat gesagt.:
			
		

> also mit dem wrapper gehts...


sollte aber auch ohne es explizit zu schreiben gehen, wenn du java5 hast. :arrow: wie byto gesagt hat: schau mal ob dein compiler level richtig gesetzt ist, sonst nützt dir dein jdk 5.0 garnix


----------



## norman (16. Mrz 2006)

Java-Rookie hat gesagt.:
			
		

> jo bin irgendwie zu langsam... ;o)
> 
> so den compiler hab ich umgestellt... war wirklich noch der alte! ;o)
> hab aber immer noch keine checkboxen... lol



[edit] okay, zu lahm.

wegen den checkboxen -> nur weil du ein boolean dem vector hinzufügst, soll in der tabelle eine checkbox angezeigt werden?  :autsch:


----------



## Java-Rookie (16. Mrz 2006)

jo so hab ich das verstanden.... lol


----------



## norman (16. Mrz 2006)

die stelle im tutorial will ich sehen :shock:
wie schreibst du denn die strings aus dem vector in die tabelle?

(straft mich lügen wenn ich bockmist erzähle)


----------



## Java-Rookie (16. Mrz 2006)

```
jTable1 = new JTable(Datenholen.getData(),Datenholen.getColumnNames());
```

also ich übergebe einfach dem constructor die vectoren.... richtig?!?!? ???:L 

naja... ich hab ja nie behauptet das es so im tutorial steht... sonder nur das ich es so verstanden hab... bzw. interpretiert....  :bae:


----------



## Java-Rookie (16. Mrz 2006)

also irgendwie bekomm ich keine checkbox in meinen jtable... mit dem tutorial komm ich auch nicht klar... wo werden da denn die checkbox initialisiert oder was auch immer?!?!?

wenn ich daten aus der db auslesen, anzeigen will, die möglichkeit der veränderung geben möchte und dann diese daten wieder in eine neue db schreibe....

mach ich das denn über haupt so wie ich das lösen will? daten in zwei vectoren einlesen... vectoren an jtable übergeben dort anzeigen und verändern lassen... model von jtable auslesen und sql in db schreiben....

oder ist das vielleicht viel leichter zu realisieren?!?!  

achso bei dem anzeigen möchte ich noch je datensatz zwei sachen abfragen mit hilfe einer checkbox...


----------



## norman (16. Mrz 2006)

ich hab keine ahnung, aber die strings in einen vector und den so in die tabelle wie du das oben gemacht hast ist sicherlich nicht so verkehrt.
schlecht ist aber, in den vector ein boolean speichern zu wollen. hier solltest du dir eine andere möglichkeit überlegen. welche funktion hat der boolean denn?


----------



## Java-Rookie (16. Mrz 2006)

also eine richtige funktion hat der booleane eintrag nicht... ich will somit nur die checkboxen realisieren die ich für jede zeile brauche damit ich meine abfrage machen kann...  

wenn ich das ganze auch anders in den table bekomme solls mir recht sein... sitze da schon den ganzen morgen dran... lol


----------



## Beni (16. Mrz 2006)

Pro Spalte wird in einer JTable immer derselbe Renderer verwendet (das kann ein Label sein, eine Checkbox, oder irgendwas anderes).

Für Checkboxen ist es am einfachsten, ein DefaultTableModel zu nehmen, die Daten da reinfüllen, die Methode "getColumnClass" überschreiben und für eine Spalte "return Boolean.class" zu verwenden.

Ein Beispiel gibts in der FAQ.


----------



## Java-Rookie (16. Mrz 2006)

also kann ich jetzt meinen table mit den vectoren füllen und dann einfach noch zwei spalten mit einem anderen Renderer dranhängen?!?! 

wenn ja wie soll das gehen... 

jetzt hab ich auch keine consolen ausgabe mehr seid ich den compiler umgestellt habe... man man man... 

glaube es wird zeit aufzuhören für heute...


----------

