Я делаю приложение с java Swing. В кнопке приложения мне нужно каждые x минут что-то делать. Я думаю, что я должен сделать это с новой нитью, но у меня есть две проблемы. Во-первых, я должен передать параметр в этот поток. Я решил это с помощью класса, который расширяет поток и конструктор. Я думаю, что этот путь правильный нет? Второе, что я не могу решить, это то, что мне нужно обновить jtextpane во время работы потока, но если я попытаюсь обновить свойства JTextPane, Eclipse скажет мне, что это невозможно решить. Я думаю, что проблема в том, что эти потоки не являются основными потоками. Но... есть способ это исправить? Большое спасибо и извините за мой английский!
Код:
btnIniciar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//String file = "D:\\prueba.torrent";
// while (true) {
Hilo ejecutar = new Hilo(listaBuscar);
ejecutar.run();
public class Hilo extends Thread {
public Hilo(List<String> aBuscar){
}
public void run(){
System.out.println("Trabajo por hacer dentro de MiHilo");
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
lblNewLabel.setText("hola");
}
});
}
}
Он говорит мне, что lblNewLabel не может быть разрешен.
Любая помощь? Спасибо
Я пытаюсь использовать этот код сейчас и не работает:
public class Hilo implements Runnable {
private JLabel etiqueta;
public Hilo (List <String> aBuscar, JLabel label){
System.out.println("Hemos entrado en el puto hilo");
etiqueta = label;
}
@Override
public void run() {
etiqueta.setText("hola");
System.out.println("vamos a coneseguirlo");
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
etiqueta.setText("hola");
System.out.println("vamos a coneseguirlo");
}
});
}
}