Salvar um texto em arquivo a cada 20segundos(automaticamente) usando thread

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import org.eclipse.wb.swing.FocusTraversalOnArray;
import java.awt.Component;
import javax.swing.JScrollPane;
import javax.swing.JEditorPane;

public class Editor extends JFrame {

	private static final long serialVersionUID = 1L;

	/**
	 * Inicia a aplicação.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Editor frame = new Editor();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Cria o frame.
	 */
	public Editor() {
		setTitle("EDITOR DE TEXTO");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		getContentPane().setLayout(new BorderLayout(0, 0));

		JScrollPane scrollPane = new JScrollPane();
		getContentPane().add(scrollPane, BorderLayout.CENTER);

		JEditorPane editorPane = new JEditorPane();
		scrollPane.setViewportView(editorPane);
		setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{getContentPane()}));
	  }

preciso salvar em arquivo ajuda ai! sou novato em interface

[quote=rafaelnet29][code]
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import org.eclipse.wb.swing.FocusTraversalOnArray;
import java.awt.Component;
import javax.swing.JScrollPane;
import javax.swing.JEditorPane;

public class Editor extends JFrame {

private static final long serialVersionUID = 1L;

/**
 * Inicia a aplicação.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				Editor frame = new Editor();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Cria o frame.
 */
public Editor() {
	setTitle("EDITOR DE TEXTO");
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 450, 300);
	getContentPane().setLayout(new BorderLayout(0, 0));

	JScrollPane scrollPane = new JScrollPane();
	getContentPane().add(scrollPane, BorderLayout.CENTER);

	JEditorPane editorPane = new JEditorPane();
	scrollPane.setViewportView(editorPane);
	setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{getContentPane()}));
  }

[/code]

preciso salvar em arquivo ajuda ai! sou novato em interface. estou usando o easyEclipse [/quote]

Primeiramente veremos como salvar em um arquivo:


public void gravar(String texto){

FileWriter writer;
BufferedWriter escrever;

		 try {

					writer = new FileWriter("Local_onde_quer_salvar.txt");
					escrever = new BufferedWriter(writer);
				
					escrever.write(texto);
					escrever.newLine();

					escrever.flush();
					
				}
			 
		 }
		
		
	} catch (IOException e) {
		e.printStackTrace();
	}

	}

Para chamar a função a cada 20 segundos basta criar uma thread e chamar a função.


Thread chamarFuncao = new Thread(new Runnable() {
		
		public void run() {
			gravar("passar_texto");
		
			try {
				Thread.sleep(20000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	});
	
	chamarFuncao.start();	

Implemente o método gravar para que não seja preciso criar sempre as variáveis.

[quote=urbgames]
Para chamar a função a cada 20 segundos basta criar uma thread e chamar a função.

[code]
Thread chamarFuncao = new Thread(new Runnable() {
public void run() {
gravar(“passar_texto”);

		try {
			Thread.sleep(20000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
});

chamarFuncao.start();	

[/code][/quote]
Só uma correção dessa forma acima o método gravar só será executado uma única vez… o correto e colocar o método dentro de um
laço de repetição.

Thread chamarFuncao = new Thread(new Runnable() {	
    public void run() {		
        while (true) {
            try {
                gravar("passar_texto");
		  sleep(20000);
		  } catch (InterruptedException e) {
		      e.printStackTrace();
                  }
        }
    }
});
chamarFuncao.start();	

Ou usar um agendador de tarefas, que a cada 20 seg. executaria a ação necessária.
O java já fornece as classes TimerTask e Timer para agendamento de tarefas. Da uma olhada nesse tutorial: Agendamento de Tarefas com TimerTask

jweibe é verdade, havia me esquecido deste detalhe muito importante.

galera valeu pela ajuda ai… muito obrigado mesmo

presciso salvar em arquivo o que eu to digitando na JTextArea

[code]public class Editor extends JFrame {

private JPanel contentPane;

/**
 * Launch the application.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				Editor frame = new Editor();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Create the frame.
 * @throws IOException
 */
public Editor() throws IOException {
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 450, 300);
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setContentPane(contentPane);
	contentPane.setLayout(new BorderLayout(0, 0));

	JScrollPane scrollPane = new JScrollPane();
	contentPane.add(scrollPane, BorderLayout.CENTER);

	JTextArea textArea = new JTextArea();
	scrollPane.setViewportView(textArea);

[/code]

preciso salvar o que estar sendo digitado na varialvel
JTextArea textArea = new JTexArea();

em arquivo

vlwss