kostenloser Webspace werbefrei: lima-city


Java mehrzeilige Textfelder

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    annica

    annica hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e********l

    Du kannst die Funktion append(String str) der JTextArea nutzen um Text anzuh?ngen. Ich empfehle dir die JDK Doku herunterzuladen. Da findet man alle verf?gbaren Funktionen. Ist h?ufig sehr hilfreich die zur HAnd zu haben :)
  4. Autor dieses Themas

    annica

    annica hat kostenlosen Webspace.

    ?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
  5. e********l

    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
  6. Autor dieses Themas

    annica

    annica hat kostenlosen Webspace.


    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
  7. e********l

    @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.
  8. Autor dieses Themas

    annica

    annica hat kostenlosen Webspace.

    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
  9. e********l

    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.
  10. Autor dieses Themas

    annica

    annica hat kostenlosen Webspace.

    oje, oje ich gib gleich auf :mad:

    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!


  11. e********l

    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?
  12. Autor dieses Themas

    annica

    annica hat kostenlosen Webspace.

    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
  13. e********l

    codetechnisch ist das korrekt. Wieso das jetzt nicht geht entzieht sich im Augenblick meiner Kenntnisse.
  14. j*****i

    denk auch das es so fuktionieren sollte.

    jacuzzi.
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!