# Jlist Daten anzeigen



## bernd (15. Nov 2004)

```
public static void main(final String[] args) {
    new Abruf("Abruf");
    try {
         in = new BufferedReader(new FileReader(file));  // ließt die Datei aus
         while ((zeile = in.readLine()) != null) {
             String[] teile = zeile.split(";");

            if(zeile.indexOf("Bernd") != -1)
             {
                System.out.println(teile[2]);
                jlinamen.setSelectedValue(teile[0]);
            }
         }
         in.close();
       }
       catch (Exception e) {
         System.err.println("Fehler bei Datei "+e.toString());
         System.exit(1);
       }
  }
```

Mit diesem Code kann ich stücke einer Textdatei wiedergeneb! (System.out.println(teile[2])
Versuche ich das in einer Jlist wiederzugeben funktionierts nicht!
Müsste aber doch oder? :?:


----------



## CelikBlek (16. Nov 2004)

ich weiss nicht wie du in veruchst in jlist zu schreiben?
aber der hat bspw. einen konstruktor den du ein Object[] übergeben kannst. Die zeigt er dann auch an.


----------



## bernd (16. Nov 2004)

```
public static void main(final String[] args) {
    new Abruf("Abruf");
        try {
        BufferedReader in = new BufferedReader(new FileReader("dat1.txt"));  // ließt die Datei aus
         while ((zeile = in.readLine()) != null) {
              String[] teile = zeile.split(";");

            if(zeile.indexOf("Bernd") != -1) {
                System.out.println(teile[1]);
                jlinamen.setListData(teile);
            }
         }
         in.close();
       }
       catch (Exception e) {
         System.err.println("Fehler bei Datei "+e.toString());
         System.exit(1);
       }
  }
```

Ich dachte eigentlich daß ich wie mit (System.out.println(teile[1])
auch Teile der Datei in der Jlist anzeigen kann! so in etwa! ( jlinamen.setListData(teile[1]);

Gruß Bernd.


----------



## CelikBlek (16. Nov 2004)

wenn du deine teile in ein array packst oder in einem vector kannst auch diese zeigen


----------



## bernd (16. Nov 2004)

```
String[] teile = zeile.split(";");
```

Ja aber sind die nicht schon in einem Array?
 ???:L


----------



## CelikBlek (16. Nov 2004)

bernd hat gesagt.:
			
		

> Ich dachte eigentlich daß ich wie mit (System.out.println(teile[1])


also mit teile[1] hast du nur den String an der Stelle 1 des Stringarrays. das kannst du nicht übergeben. was willst du denn genau machen?


----------



## bernd (16. Nov 2004)

Ich möchte in meiner Jlist genau das ausgeben, was mir auch System.out.println(teile[1]) ausgibt!
Und das geht wohl nicht!


----------



## CelikBlek (16. Nov 2004)

ja was steht denn da drin? es ist doch nur ein String oder? da macht doch eine liste keinen sinn oder?


----------



## bernd (16. Nov 2004)

```
import java.util.*;
import java.io.*;


public class auslesen {
    static BufferedReader in;
    static String zeile;
    static String file = "dat1.txt";
  public static void main(final String[] args) {

   try {
         in = new BufferedReader(new FileReader(file));  // ließt die Datei aus
         while ((zeile = in.readLine()) != null) {
              String[] teile = zeile.split(";");

            if(zeile.indexOf("Bernd") != -1) {
                System.out.println(teile[0] + " "
                 + teile[1] + " "
                 + teile[2] + " "
                 + teile[3] + " "
                 + teile[4] + " "
                 + teile[5]);
            }
         }
         in.close();
       }
       catch (Exception e) {
         System.err.println("Fehler bei Datei "+e.toString());
         System.exit(1);
       }
  }
}
```

Schlecht zu erklären!
Der Code oben hat mich zu dem veranlasst!
Idee war diese, wenn es mir möglich ist, bestimmte Teile eines String in der Konsole zur Anzeige zu bringen,
dann muss es doch auch möglich sein diese in einer Jlist auszugeben!
Ich kann ja auch den kompletten String ausgeben!


----------



## CelikBlek (16. Nov 2004)

was mir spontan einfällt angenommen:

```
JList jLi = null;
String s = "Hallo";
String[] sArr = new String[s.length];
for(int i=0; i<s.length; i++) {
    sArr[i] = s.charAt(i);
}
jLi = new JList(sArr);
```
ist natürlich nicht besonders sinnvoll und kein guter stil. aber ein string in jlist


----------



## bernd (16. Nov 2004)

Danke, ich werde es mal ausprobieren!


----------



## bernd (16. Nov 2004)

Ne, ich glaub ich nehme besser ein JTextArea, damit geht´s !


----------



## CelikBlek (16. Nov 2004)

ja gut wie gesagt für sowas ist JList einfach nicht passend.
Schön das es geklappt hat


----------



## bernd (16. Nov 2004)

Ja, nur das ich die Einträge in einem JTextArea nicht so anklicken bzw. selectieren kann wie in einer
Jlist! 
Ich dreh noch ab!


----------



## CelikBlek (16. Nov 2004)

was ist in deinem array denn drin? dann kann ich dir vielleicht weiterhelfen. was sind diese teile?


----------



## bernd (16. Nov 2004)

Bernd;Loehe;Steinstrasse;28;51379
Peter;Mustermann;Hauptstrasse;30;5090

Strings in dieser Art!
Diese sind in einer Textdatei gespeichert!


----------



## CelikBlek (16. Nov 2004)

dann würde ich es wie folgt lösen:


1. erzeuge String[] 
2. lese den string bis semikolon und schreibe in String_ usw.
3. den übergibst du JList
_
_
ich denke das ist ok, weil du ja immer ein sem. als trennzeichen hast(hoffentlich )._


----------



## bernd (16. Nov 2004)

2. lese den string bis semikolon und schreibe in String_ usw. 

Und genau da hängt es bei mir! _


----------



## CelikBlek (16. Nov 2004)

du kannst mit

```
int i = s.indexOf(";");
```
den index ermitteln und sobald du es hast schmeisst du es in deinen array oder vector. 
und das machst du bis du das ende von deinem string erreichst. und dann kannst du mit

```
s.split(start, ende);
```
so splittest du den bereich den du dir merken wirst und schreibst es.


----------



## bernd (16. Nov 2004)

Ich denke das probiere ich mal hinzukriegen! Danke


----------



## bernd (16. Nov 2004)

Also int i = s.indexOf(";"); gibt mir 5 zurück!
Dann müsste es doch so heissen:
s.split(0, i);
und das geht nicht!


----------



## CelikBlek (16. Nov 2004)

gib bescheid, wenn du hilfe brauchst


----------



## bernd (16. Nov 2004)

Bescheid!


----------



## CelikBlek (16. Nov 2004)

bernd hat gesagt.:
			
		

> Also int i = s.indexOf(";"); gibt mir 5 zurück!
> Dann müsste es doch so heissen:
> s.split(0, i);
> und das geht nicht!


sorry war mein fehler. nimm mal dies:

```
s.substring(start, ende);
```


----------



## bernd (16. Nov 2004)

```
public static void main(final String[] args) {
    new Abruf("Abruf");
        try {
        BufferedReader in = new BufferedReader(new FileReader("dat1.txt"));  // ließt die Datei aus
         while ((zeile = in.readLine()) != null) {
           String[] teile = zeile.split(";");

            if(zeile.indexOf("Bernd") != -1) {
                int i = zeile.indexOf(";");

                System.out.println(zeile.substring(0, i));

            }
         }
         in.close();
       }
       catch (Exception e) {
         System.err.println("Fehler bei Datei "+e.toString());
         System.exit(1);
       }
  }
```

Ja soweit gehts jetzt, jetzt muss das nur noch in ne Jlist!


----------



## CelikBlek (16. Nov 2004)

so wird es nicht wirklich funktionieren. du musst deinen start wert auch jedesmal ändern. angenommen du hast:
Hallo;ich;bin
dann wären deine positionen wie folgt;
substring(0, 4), substring(6, 8), substring(10, 12)
wie gesagt das muss in der schleife laufen und dann so weil laufen bin keine sem. mehr da sind. und alle entstandenen strings in ein vektor oder array


----------



## bernd (16. Nov 2004)

Warum tue ich mir sowas auch an?


----------



## CelikBlek (16. Nov 2004)

man lernt nie aus  kann nur was gutes sein oder? und wie sieht es aus?


----------



## bernd (16. Nov 2004)

```
public static void main(final String[] args) {
    new Abruf("Abruf");
        try {
        BufferedReader in = new BufferedReader(new FileReader("dat1.txt"));  // ließt die Datei aus
         while ((zeile = in.readLine()) != null) {

            if(zeile.indexOf("Bernd") != -1) {
              Vector v = new Vector();

                int i = zeile.indexOf(";");
                  String teile = zeile.substring(0, i);
                  v.addElement(teile);
                System.out.println(v);
                jlinamen.setListData(v);
            }
         }
         in.close();
       }
       catch (Exception e) {
         System.err.println("Fehler bei Datei "+e.toString());
         System.exit(1);
       }
  }
```

Also so krieg ich schon mal den String Bernd in die Jlist!
Mit der Schleife weiss ich noch nicht! 
 :toll:


----------



## CelikBlek (16. Nov 2004)

das geht auf jeden fall. es wäre aber ratsam wenn du als abschluss in deine datei auch einen semikolon einfügst

```
import java.util.*;
...
        String s = "Hallo;Hak;Tro;";
        Vector v = new Vector();
        int st = 0;
        int end = 0;
        for(int i=0; i < s.length(); i++) {
            if(s.charAt(i) == ';') {
                end = i;
                v.addElement(s.substring(st, end));
                st = i+1;
            }
        }
        for (int i = 0; i < v.size(); i++) {
            System.out.println(v.elementAt(i));
        }
        JList list = new JList(v);
```


----------



## bernd (16. Nov 2004)

```
public static void main(final String[] args) {
    new Abruf("Abruf");
        try {
        BufferedReader in = new BufferedReader(new FileReader("dat1.txt"));  // ließt die Datei aus
         while ((zeile = in.readLine()) != null) {
            if(zeile.indexOf("Bernd") != -1) {
             Vector v = new Vector();
             int st = 0;
             int end = 0;
             for (int i = 0; i < zeile.length(); i++) {
                if (zeile.charAt(i) == ';') {
                  end = i;
                  v.addElement(zeile.substring(st, end));
                  st = i+1;
                }
             }
             for (int i = 0; i < v.size(); i++) {
               System.out.println(v.elementAt(i));
             }
                 jlinamen.setListData(v);

            }
         }
         in.close();
       }
       catch (Exception e) {
         System.err.println("Fehler bei Datei "+e.toString());
         System.exit(1);
       }
```

Super! Jetzt listet er die gesamten Teilstücke untereinander in derJlist!
 :applaus: 
Danke, damit kann ich was anfangen!


----------



## CelikBlek (16. Nov 2004)

freut mich wenn ich dir weiterhelfen konnte. wenn noch fragen da sind...


----------

