Auf Thema antworten

Im Prinzip wäre der Aufbau etwa so:

[code=Java]

public boolean startPayment(){

    new SwingWorker<Void,String>() {

        @Override

        public void doInBackground() {

            while (true) {

                try {

                    dataString += String.format("%02x", dIn.readByte() & 0xFF);

   

                    if(dataString.contains("04ff")){

                        laenge = dIn.readByte();

                        status = String.format("%02x", dIn.readByte() & 0xFF);

           

                        System.out.println("STATUS : " + status);

                        publish(mainProg.getCaptions().getString(status));

                        dOut.write(commandSuccess);

                        dataString = "";

                    }

                // ...

            }

        }

        @Override

        public void process(List<String> values) {

            info.setText(values.get(0));

        }

    }.execute();

}

[/code]

Ob das reicht, kann ich Dir allerdings nicht sagen, weil ich nicht weiß, wo Du die ganzen Variablen noch überall verwendest, die in doInBackground genutzt werden. Da musst Du ggf. den Zugriff synchronisieren.


Außerdem wirst Du wahrscheinlich verhindern wollen, dass der Spaß mehrfach ausgeführt wird.



Oben