S
salmec
Hi All,
I'm a newbie in java programming
I've a problem:
I'm using Java(TM) 2 SDK, Standard Edition Version 1.4.2 because the
libraries comm.jar works good (in the latest version is non true).
In this version SwingWorker does not work very well.
I'm creating a Swing Interface that have to refresh every time that a
file was modified, I know that i've to use SwingUtilities.invokeLater()
but i dont know how and where i've to put it
This is a part of the code:
Principal (Main Class)
Class1 (Graphic Interface)
Class2 (Check if a File was modified)
Class3 (Find a String in that File)
//***PSEUDO CODE ***
public class Principal {
public static void main(String[] args) {
final Class1 mov = new Class1();
final Class2 FWT = new Class2();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
mov.jTextField1.setText(FWT.misura_letta);
}
});
}
}
public class Class1 extends JPanel {
JTextField jTextField1;
Class1(){
jTextField1 = new javax.swing.JTextField();
JPanel Panel2 = new JPanel();
Panel2.add(jTextField1);
JFrame f = new JFrame("Graphics");
f.getContentPane().add(Panel2);
f.pack();
f.setVisible(true);
}
}
class Class2 implements Runnable {
Thread readThread;
public String misura_letta ="";
public Class2(){
readThread = new Thread(this);
readThread.start();
}
public void run() {
try {
Thread.sleep(20000);
TimerTask task = new FileWatcher( new
File("DaSerialeAll_prova.txt") ) {
protected void onChange( File file ) {
System.out.println( "File "+ file.getName() +" have change !"
);
Class3 CTDF = new Class3();
misura_letta = CTDF.str;
System.out.println("misura letta: " +misura_letta);
}
};
java.util.Timer timer = new java.util.Timer();
timer.schedule( task , new Date(), 10 );
} catch (InterruptedException e) {}
}
}
public class Class3 {
String str ="";
public Class3 () {
// (...) Read the File and find a string that i want to put in the
graphical interface
str = str.trim();
}
}
//*** end PSEUDO CODE ***
Thanks to all
Sal
I'm a newbie in java programming
I've a problem:
I'm using Java(TM) 2 SDK, Standard Edition Version 1.4.2 because the
libraries comm.jar works good (in the latest version is non true).
In this version SwingWorker does not work very well.
I'm creating a Swing Interface that have to refresh every time that a
file was modified, I know that i've to use SwingUtilities.invokeLater()
but i dont know how and where i've to put it
This is a part of the code:
Principal (Main Class)
Class1 (Graphic Interface)
Class2 (Check if a File was modified)
Class3 (Find a String in that File)
//***PSEUDO CODE ***
public class Principal {
public static void main(String[] args) {
final Class1 mov = new Class1();
final Class2 FWT = new Class2();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
mov.jTextField1.setText(FWT.misura_letta);
}
});
}
}
public class Class1 extends JPanel {
JTextField jTextField1;
Class1(){
jTextField1 = new javax.swing.JTextField();
JPanel Panel2 = new JPanel();
Panel2.add(jTextField1);
JFrame f = new JFrame("Graphics");
f.getContentPane().add(Panel2);
f.pack();
f.setVisible(true);
}
}
class Class2 implements Runnable {
Thread readThread;
public String misura_letta ="";
public Class2(){
readThread = new Thread(this);
readThread.start();
}
public void run() {
try {
Thread.sleep(20000);
TimerTask task = new FileWatcher( new
File("DaSerialeAll_prova.txt") ) {
protected void onChange( File file ) {
System.out.println( "File "+ file.getName() +" have change !"
);
Class3 CTDF = new Class3();
misura_letta = CTDF.str;
System.out.println("misura letta: " +misura_letta);
}
};
java.util.Timer timer = new java.util.Timer();
timer.schedule( task , new Date(), 10 );
} catch (InterruptedException e) {}
}
}
public class Class3 {
String str ="";
public Class3 () {
// (...) Read the File and find a string that i want to put in the
graphical interface
str = str.trim();
}
}
//*** end PSEUDO CODE ***
Thanks to all
Sal