Java mehrzeilige Textfelder
lima-city → Forum → Programmiersprachen → Java
applied
beitrag
deutsch
dokumentation
fehlermeldung
final
funktion
gen
grad
import
klasse
kriegen
listen
methode
null
richtig verstehe
textfeld
unterschied
vokabel
vokabeltrainer
-
hallo,
Ich muss bei meinem Vokabeltrainer in ein Textfeld eine Liste schrieben... da diese mehrere Zeilen lang ist muss ich ja JTextArea nehmen... ich wei? jetzt aber nicht wie ich die liste jetzt in das feld kriege... mit setText geht das glaub ich nicht (oder ich mach was falsch :-) )
Kann mir bitte jmd helfen
Lg annica
Beitrag ge?ndert am 21.03.2006 18:30 von annica -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
?hm wo ist der Unterschied zwischen setText und append(String str)?
Aber das war nicht mein Problem.
Auch wenn ich append(String str) verwende hab ich noch nen Fehler, denn ich hab ja keinen String den ich in das TextArea schrieben will sondern eine Liste von vokabeln.
Hab das jetzt so gehabt:
taListe.append(vokListe);
taListe ist ein Textarea und vokListe ist eine Vokabelliste die auf die (von mir erstellte) Klasse Vokabelliste zugreift.
Dann kommt die Fehlermeldung:
append(java.lang.String)in javax.swingJTextArea cannot be applied to (Vokabelliste)
Wenn ich setText verwende kommt eine ?hnliche Fehlermeldung:
setText(java.lang.String)in javax.swingJTextComponent cannot be applied to (Vokabelliste)
Wie krieg ich das anders hin?
Und was genau ist JDK Doku und wo krieg ich das her (sun?) ?
Beitrag ge?ndert am 21.03.2006 19:07 von annica -
Der Download f?r die Dokumentation findet man hier:
http://java.sun.com/j2se/1.5.0/download.jsp
@Problem: Wenn ich das richtig verstehe hast du deine Vokabeln in einer Liste wie zb. ArrayList. Richtig? Dann musst du nat?rlich die Objekte die in der Liste gespeichert sind zun?chst in einen String casten da sie sicher vorher auch vom Typ String waren. Und dann kannst du sie einfach in der TextArea anf?gen.
private List vokabelListe = null; private void addVokabel(String vokabel) { if (vokabelListe == null) vokabelListe = new ArrayList(); vokabelListe.add(vokabel); // downcast zu Object } private String getVokabelAt(int index) { final String vokabel; vokabel = (String)vokabelListe.get(index); return vokabel; }
So stell ich mir das ungef?hr vor. Geht nat?rlich auch anders.
Unterschied zwischen setText(String str) und append(String str) ist einfach. setText(String str) setzt den aktuellen Text der JTextArea, hingegen append(String str) f?gt dem bereits vorhandenen Text den neuen TExt hinzu.
Beitrag ge?ndert am 21.03.2006 19:12 von evil-devil -
Der Download f?r die Dokumentation findet man hier:
http://java.sun.com/j2se/1.5.0/download.jsp
Ja und was ist das jetzt genau und gibts das auch auf deutsch?
@Problem: Wenn ich das richtig verstehe hast du deine Vokabeln in einer Liste wie zb. ArrayList. Richtig?
Ja genau!
Dann musst du nat?rlich die Objekte die in der Liste gespeichert sind zun?chst in einen String casten da sie sicher vorher auch vom Typ String waren. Und dann kannst du sie einfach in der TextArea anf?gen.
Klingt logisch :-).. aber wie bitte "caste" ich ddie denn? Was hei?t casten ?berhaupt? Denn ich kann aus den Vokabeln ja jetzt nicht einfach Strings machen, da sie ja eine deutsche und eine englische Bedeutung haben die auch (zusammen!) in der Liste auftauchen soll.
Aber vielen Dank erstmal f?r die Hilfe!!!!
/ edit:
Deinen Quelltext hatte ich grad noch nicht gelesen... so ?hnlich wie deine Methode addVokabel sieht meine auch aus die eine Vokabel der Liste hinzuf?gt... aber was hei?t das // downcast zu Object was du da geschrieben hast? Ansonsten kann ich das eigentlich nachvollziehen, au?er das final wof?r steht das?
Aber wenn ich das jetzt so mache dann muss ich doch alle Vokabeln wieder einzeln in das Tf schrieben oder?
Sorry, f?r meine dummen fragen :-)
Beitrag ge?ndert am 21.03.2006 19:22 von annica -
@JDK Doku: Da sucht du folgendes:
J2SE 5.0 Documentation Download
Und das l?dst du dann runter. Gibt es soviel ich wei? nicht auf deutsch. Wat das ist? Eine Dokumentation ?ber die FUnktionen der einzelnen Java Klassen die mit dem JDK (Java Development Kit) daher kommen. Sind auch ein paar Hilfestellungen zur Verwendung der ein oder anderen Klasse dabei.
BTT: K?nntest du vielleicht ein wenig COde posten? Da man im Augenblick nicht genau wei? wie du deine Vokabeln speicherst. Listen kann man ja auch verschachteln ;)
@casten: Caste nennt man die Umwandung von einem Typ in einen anderen. Ein Upcast ist zb. von Object nach String. Ein Downcast hingegen von String nach Object. Da Object die Mutter aller Klassen ist, ist sie der unterste Typ zu dem man casten kann.
-
Okay die wichtigen Teile der Klasse Vokabelliste:
import java.util.ArrayList;
import java.util.Random;
/**
* Beschreiben Sie hier die Klasse Vokabelliste.
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Vokabelliste
{
// Instanzvariablen
ArrayList vokliste = new ArrayList();
public Vokabel tausch;
/**
* Konstruktor f?r Objekte der Klasse Vokabelliste
*/
public Vokabelliste()
{
}
/**
* Methode
* @param Parameterbeschreibung
* @return R?ckgabewert
*/
public void hinzuf?gen(Vokabel neu)
{
vokliste.add(neu);
}
/**
* Methode
* @param Parameterbeschreibung
* @return R?ckgabewert
*/
public void hinzuf?gen(String pDeutsch, String pEnglisch)
{
Vokabel neu = new Vokabel (pDeutsch, pEnglisch);
vokliste.add(neu);
}
/**
* Methode
* @param Parameterbeschreibung
* @return R?ckgabewert
*/
public void voklisteanzeigen()
{
for (int i = 0; i<vokliste.size();i++)
{
Vokabel vokabel = (Vokabel)vokliste.get(i);
vokabel.ausgeben();
}
}
Dann hab ich in der Klasse vokabeltrainer das Tf erstellt:
taListe = new JTextArea();
taListe.setBounds(560,50,200,260);
add(taListe);
Und in das soll jetzt die Liste kommen
sonst noch was?
Beitrag ge?ndert am 21.03.2006 19:29 von annica -
ah, gut :)
Du hast in deiner Vokabel Class doch sicher eine M?glichkeit auf den Deutschen und Englischen Wert zuzugreifen, oder? zb. mit
public String getDeutsch() { ... }
Oder halt direkt ?ber meineVokabel.deutsch
Naja, jedenfalls ben?tigt append(...) ja einen String und in deiner Vokabel sind die Werte hoffentlich auch als String hinterlegt. NUn musst du diese nur noch aufrufen und ?bergeben an die Funktion. Thats it. -
oje, oje ich gib gleich auf
Mein Problem ist, dass die Vokabelliste vom Benutzer des Progs erstellt wird. Ich wei? also nicht wie lang die Liste sein wird. Deshalb kann ich ja jetzt nicht schrieben
append(VokListe[1].deutsch)
Kann ich nicht irgenwie die ganze Liste in das Textfeld schreiben? Denn so muss ich ja (wenn ichs richtig verstanden hab) jedes Objekt einzeln hinzuf?gen.
Ich hab da doch schon die Methode voklisteanzeigen() kann ich die nicht irgendwie umschrieben, dass das in das Tf geschrieben wird?
Die Methode ausgeben der Klasse Vokabel, sieht so aus, kann ich das nicht umschrieben?
public void ausgeben()
{
Out.println (deutsch+"-"+englisch);
}
Ich glaub ich stell mich grad ganz sch?n dumm an sorry!
-
Na klar wei?t du wie lang die Liste ist. Die Klasse ArrayListe hat eine Funktion namens size(). Mit dieser kannst du die Anzahl der Elemente die sich in der Liste befinden feststellen. SOmit kannst du dann auch auf die jeweiligen Elemente zugreigen. Beispielsweise ?ber eine Schleife.
Nutzt du Java 1.5 oder 1.4.x? -
Ich hab jetzt:
public void anzeigen()
{
for (int i = 0; i<vokListe.size();i++)
{
Vokabel vokabel = (Vokabel)vokliste.get(i);
}
}
Das deutsche+englische von dieser Vok. muss ich jetzt ins TextArea schrieben, aber wie kann ich in der Klasse Vokabelliste auf das TextArea zugreifen?
Beitrag ge?ndert am 21.03.2006 20:59 von annica -
codetechnisch ist das korrekt. Wieso das jetzt nicht geht entzieht sich im Augenblick meiner Kenntnisse.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage