@Override public void run() { boolean tieneOrdenes; int tiempo; int sleepTime; while (active) { if (!this.getOrdenes().isEmpty()) { tieneOrdenes = true; } else { tieneOrdenes = false; } try { Orden temp = this.ordenes.get(0); tiempo = temp.getTiempoTotal(); finishedOrder = false; this.bar.setValue(0); sleepTime = tiempo * 10 / 100; sleepTime *= 100; while (!finishedOrder) { if (bar.getValue() != 100) { bar.setValue(bar.getValue() + 1); try { Thread.sleep(sleepTime); } catch (Exception e) { } } else { finishedOrder = true; break; } } this.ordenes.remove(0); int menor = Integer.MAX_VALUE; int index = 0; for (int i = 0; i < this.ordenesCamion.size(); i++) { if (menor > ordenesCamion.get(i).size() && ordenesCamion.get(i).size() != 10) { menor = ordenesCamion.get(i).size(); index = i; } } ordenesCamion.get(index).add(temp); this.bar.setValue(0); } catch (Exception e) { } } }