Thread startet nicht, verstehe nicht warum

Status
Nicht offen für weitere Antworten.

richardkrieger

Aktives Mitglied
anscheinend 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();
			
		}
	}
	
	
	

}
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?
 
Thread versServer=new Thread();

ist ein leerer Standard-Thread,
nirgendwo steht geschrieben, dass die run-Operation von VersandButton was damit zu tun hat,

schreibe
Thread versServer=new Thread(this);
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben