Halli Hallo liebes Java-Forum Team.
ich habe mal wieder ein Problem, und zwar möchte ich Straßennamen aus einer Textdatei auslesen und diese in einer Combox ausgeben. Also jeder Straßenname ist ein Item.
Bisher sieht mein Ansatz wie folgt aus:
(bei der Pfadangabe steht natürlich der richtige Pfad drin)
Als Fehlermeldung erhalte ich:
Exception in thread "main" java.lang.IllegalArgumentException: Index out of bounds
at org.eclipse.swt.SWT.error(SWT.java:4263)
at org.eclipse.swt.SWT.error(SWT.java:4197)
at org.eclipse.swt.SWT.error(SWT.java:4168)
at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
at org.eclipse.swt.widgets.Combo.remove(Combo.java:1104)
at org.eclipse.swt.widgets.Combo.setItem(Combo.java:1552)
at Text.<init>(Text.java:25)
at Text.main(Text.java:49)
Ich denke mal es liegt an meinem Indexeintrag bei "combo.setItem". Ich weiß aber nicht genau, was jetzt falsch ist. Muss ich den Umweg über ein Array gehen, oder klappt das so. Wenn ja, wie stell ich das mit dem Array an, da ich ja die größe festlegen muss, aber nicht jede Stadt gleich viel Straßen hat.
Ich hoffe ihr könnt mir helfen,
Vielen Dank schon mal.
ich habe mal wieder ein Problem, und zwar möchte ich Straßennamen aus einer Textdatei auslesen und diese in einer Combox ausgeben. Also jeder Straßenname ist ein Item.
Bisher sieht mein Ansatz wie folgt aus:
Java:
import java.io.*;
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.*;
public class Text
{
public Text()
{
Display display = new Display ();
Shell shell = new Shell (display);
Combo combo = new Combo (shell, SWT.READ_ONLY);
Rectangle clientArea = shell.getClientArea ();
combo.setBounds (clientArea.x, clientArea.y, 200, 200);
try
{
FileReader fileIn = new FileReader("...Straßen-VillingenSchwenningen.txt");
BufferedReader buff = new BufferedReader(fileIn);
String zeile = null;
int i = 1;
while((zeile = buff.readLine()) != null)
{
combo.setItem(i, zeile);
i++;
}
}
catch (IOException e)
{
String data = "Datenbank nicht gefunden";
combo.setItem(1, data);
}
shell.pack ();
shell.open ();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
public static void main (String [] args)
{
new Text();
}
}
Als Fehlermeldung erhalte ich:
Exception in thread "main" java.lang.IllegalArgumentException: Index out of bounds
at org.eclipse.swt.SWT.error(SWT.java:4263)
at org.eclipse.swt.SWT.error(SWT.java:4197)
at org.eclipse.swt.SWT.error(SWT.java:4168)
at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
at org.eclipse.swt.widgets.Combo.remove(Combo.java:1104)
at org.eclipse.swt.widgets.Combo.setItem(Combo.java:1552)
at Text.<init>(Text.java:25)
at Text.main(Text.java:49)
Ich denke mal es liegt an meinem Indexeintrag bei "combo.setItem". Ich weiß aber nicht genau, was jetzt falsch ist. Muss ich den Umweg über ein Array gehen, oder klappt das so. Wenn ja, wie stell ich das mit dem Array an, da ich ja die größe festlegen muss, aber nicht jede Stadt gleich viel Straßen hat.
Ich hoffe ihr könnt mir helfen,
Vielen Dank schon mal.