anscheinend habe ich was übersehen:
Ausgabe "Daten da, Thread" kommt, dann aber nix mehr. Es sollte wenigstens die erste zeile von run() kommen "Thread anfang", kommt aber nicht. habe ich was übersehen?
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import javax.swing.JButton;
public class VersandButton extends JButton implements Konstanten,Runnable{
static final long serialVersionUID=-455637766L;
ArrayList<String[]> empfListRoh = new ArrayList<String[]>();
Thread versServer=new Thread();
public VersandButton(){
setText(xmlStelle.getXMLString(sprachPfad, "M0018"));
}
public void starten(){
statusBar.setSendeAuftrag(true);
datenholen();
System.out.println("Daten da, thread");
versServer.start();
}
private void datenholen(){
try{
URL intadresse=new URL(xmlStelle.getXMLString(iniPfad, "InternetPath"));
HttpURLConnection verbindung=(HttpURLConnection)intadresse.openConnection();
verbindung.setRequestMethod("GET");
verbindung.setUseCaches(false);
String userpassRoh=new String(xmlStelle.getXMLString(iniPfad, "InternetUser")+":"+xmlStelle.getXMLString(iniPfad, "InternetPass"));
byte[] userpass=userpassRoh.getBytes();
String userpass64=new sun.misc.BASE64Encoder().encode(userpass);
verbindung.setRequestProperty("Authorization", "Basic "+userpass64);
verbindung.connect();
if(verbindung.getResponseCode()!=HttpURLConnection.HTTP_OK){
popUp.einfach("fehler", verbindung.getResponseMessage());
}else{
BufferedReader leser=new BufferedReader(new InputStreamReader(verbindung.getInputStream()));
while(leser.ready()){
String akt_linie=leser.readLine().trim();
String[] akt_arr=akt_linie.split("\\|");
empfListRoh.add(akt_arr);
}
}
verbindung.disconnect();
}catch(MalformedURLException mue){
popUp.einfach("fehler", mue.toString());
}catch(IOException ioe){
popUp.einfach("fehler", ioe.toString());
}
}
public void run(){
System.out.println("Thread anfang");
int lauf=0;
for(lauf=0;lauf<empfListRoh.size();lauf++){
System.out.println(empfListRoh.get(lauf)[0]);
while(!statusBar.empfaengerDa()){
try{
Thread.sleep(500);
}catch(InterruptedException ie){
versServer.interrupt();
statusBar.setSendeAuftrag(false);
System.out.println("Abgebrochen");
}
}
statusBar.setEmpfaenger(empfListRoh.get(lauf));
System.out.println("durchlauf schleife");
}
System.out.println("durchlauf ende");
}
public void stopThread(){
while(versServer.getState()==Thread.State.RUNNABLE){
versServer.interrupt();
}
}
}