我正在用 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");
}
});
}
}