de momento mi proyecto largo lo tengoseparado de uno pequeño para primero poder saber implementar el swingworker con el append
de todos modos dejo ambos por si alguien entiende lo que necesito y me pudiese orientar que las paginas y algunos codigos ingleses no me van muy bien
gracias
proyecto corto
Código:
package swingworker2; import java.awt.LayoutManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingWorker; public class Main{ public static JTextArea textArea; public static void main(String[] args) { final JProgressBar progressBar = new JProgressBar(0, 10); final CounterTask task = new CounterTask(); task.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if ("progress".equals(evt.getPropertyName())) { progressBar.setValue((Integer) evt.getNewValue()); } } }); JButton startButton = new JButton("Start"); startButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { task.execute(); } }); JButton cancelButton = new JButton("Cancel"); cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { task.cancel(true); } }); JPanel buttonPanel = new JPanel(); buttonPanel.add(startButton); buttonPanel.add(cancelButton); JPanel cp = new JPanel(); LayoutManager layout = new BoxLayout(cp, BoxLayout.Y_AXIS); cp.setLayout(layout); cp.add(buttonPanel); cp.add(progressBar); JTextArea textArea = new JTextArea(10, 10); JScrollPane scrollPane = new JScrollPane(textArea); cp.add(textArea); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(cp); frame.pack(); frame.setVisible(true); } } class CounterTask extends SwingWorker<Integer, Integer>, Main() { int DELAY = 1000; @Override protected Integer doInBackground() throws Exception { int i = 0; int count = 10; while (!isCancelled() && i < count) { i++; publish(new Integer[] { i }); setProgress(count * i / count); String labela = textArea.getText(); setText(labela + "0/n"); Thread.sleep(DELAY); } return count; } protected void process(List<Integer> chunks) { System.out.println(chunks); } @Override protected void done() { if (isCancelled()) System.out.println("Cancelled !"); else System.out.println("Done !"); } }
proyecto completo
aqui mi idea es que el resultado de la variable line se muestre en un jtextarea pero de momento solo se ve al final, por esto es este lio del swingworker
http://s2d4.usaupload.net/upload.tu?...96ab1a00553e9c
lo dejo en una url debido a que eran demaciaods caracteres para el foro
una ves mas gracias por su ayuda