Java - I need to update JTextFields in a Swing GUI program -


this question has answer here:

i have program looks single notepad file contains information similar to:

cardiff : 3245658  bristol : 4726485  manchester : 4728945 

these places , numbers coming out of automatic system, , numbers change every 20 seconds or so. need create loop(i'm guessing) when numbers change, program notepad file , update number in jtextfield

p.s have created program looks file, gets information needs , puts in correct place, using arraylist,

all need how make code automatically update when there change in file, , need without using sort of jbuttons, needs itself.

my whole code stands:

package window;  import java.awt.color; import java.awt.eventqueue; import java.io.bufferedreader; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; import java.util.arraylist; import javax.swing.imageicon; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jtextfield; import javax.swing.uimanager; import javax.swing.unsupportedlookandfeelexception;  public class maptest {      private jframe frame;     static jtextfield txtcardiff;     static jtextfield txtbristol;     static jtextfield txtsheffield;     static jtextfield txtderby;     static jtextfield txtglasgow;     static jtextfield txtfalkirk;     static jtextfield txtnewcastle;     static jtextfield txtleeds;     static jtextfield txtpreston;     static jtextfield txtmanchester;     static jtextfield txtwolverhampton;     static jtextfield txtbirmingham;     static jtextfield txtmiltonkeynes;     static jtextfield txtpeterborough;     static jtextfield txtcolindale;     static jtextfield txtstepneygreen;     static jtextfield txtslough;     static jtextfield txtfaraday;     static jtextfield txtguildford;     static jtextfield txtsouthbank;      static bufferedreader csvfile = new bufferedreader(new filereader         ("c:/users/606854007/workspace/networkapptest/jar/window/cardiff.txt")); // putting static infront of br ' csvfile' gives:  //unhandled exception type filenotfoundexception.  //but when take away 'static' causes problem in 'filecheckerworker' class. // (will comment , what)      arraylist<string> csv = new arraylist<string>();      /**     private string output = "";     private string output1 = "";     private string output2 = "";     private string output3 = "";     private string output4 = "";     private string output5 = "";     private string output6 = "";     private string output7 = "";     private string output8 = "";     private string output9 = "";     private string output10 = "";     private string output11 = "";     private string output12 = "";     private string output13 = "";     private string output14 = "";     private string output15 = "";     private string output16 = "";     private string output17 = "";     private string output18 = "";     private string output19 = "";     **/     /** * launch application. */     public static void main(string[] args) {          try {                 uimanager.setlookandfeel(                             uimanager.getsystemlookandfeelclassname());              } catch (classnotfoundexception e1) {                 e1.printstacktrace();              } catch (instantiationexception e1) {                 e1.printstacktrace();              } catch (illegalaccessexception e1) {                 e1.printstacktrace();              } catch (unsupportedlookandfeelexception e1) {                 e1.printstacktrace();             }         eventqueue.invokelater(new runnable() {             public void run() {                 try {                     maptest window = new maptest();                     window.frame.setvisible(true);                 } catch (exception e) {                     e.printstacktrace();                 }             }         });      }      /**      * create application.      *       * @throws ioexception      */     public maptest() throws ioexception {         try {             initialize();          } catch (filenotfoundexception e) {             e.printstacktrace();         }     }      /**      * initialise contents of frame.      *       * @param output      * @throws ioexception      */      private void initialize() throws ioexception {                  csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                 csv.add(csvfile.readline());                  system.out.println(csv.get(0));                 system.out.println(csv.get(1));                 system.out.println(csv.get(2));                 system.out.println(csv.get(3));                 system.out.println(csv.get(4));                 system.out.println(csv.get(5));                 system.out.println(csv.get(6));                 system.out.println(csv.get(7));                 system.out.println(csv.get(8));                 system.out.println(csv.get(9));                 system.out.println(csv.get(10));                 system.out.println(csv.get(11));                 system.out.println(csv.get(12));                 system.out.println(csv.get(13));                 system.out.println(csv.get(14));                 system.out.println(csv.get(15));                 system.out.println(csv.get(16));                 system.out.println(csv.get(17));                 system.out.println(csv.get(18));                 system.out.println(csv.get(19));           /**          * jpanel container = new jpanel(); container.add(txtbirmingham);          * container.add(txtbristol); container.add(txtcardiff);          * container.add(txtcolindale); container.add(txtderby);          * container.add(txtfalkirk); container.add(txtglasgow);          * container.add(txtguildford); container.add(txtleeds);          * container.add(txtmanchester); container.add(txtmiltonkeynes);          * container.add(txtnewcastle); container.add(txtpeterborough);          * container.add(txtpreston); container.add(txtsheffield);          * container.add(txtslough); container.add(txtsouthbank);          * container.add(txtstepneygreen); container.add(txtwolverhampton);          * //container.add(); jscrollpane jsp = new jscrollpane(container);          * frame.add(jsp);          **/          frame = new jframe();         frame.setbounds(0, 0, 1000, 1086);         frame.setdefaultcloseoperation(jframe.exit_on_close);         frame.getcontentpane().setlayout(null);         frame.setbackground(color.cyan);          txtcardiff = new jtextfield();         txtcardiff.settext(csv.get(0));         txtcardiff.setbackground(color.green);         txtcardiff.setbounds(305, 699, 102, 20);         frame.getcontentpane().add(txtcardiff);         txtcardiff.setcolumns(10);          txtbristol = new jtextfield();         txtbristol.settext(csv.get(1));         txtbristol.setbackground(color.green);         txtbristol.setbounds(416, 780, 102, 20);         frame.getcontentpane().add(txtbristol);         txtbristol.setcolumns(10);          txtsheffield = new jtextfield();         txtsheffield.settext(csv.get(2));         txtsheffield.setbackground(color.green);         txtsheffield.setbounds(517, 356, 110, 20);         frame.getcontentpane().add(txtsheffield);         txtsheffield.setcolumns(10);          txtderby = new jtextfield();         txtderby.settext(csv.get(3));         txtderby.setbackground(color.green);         txtderby.setbounds(582, 451, 90, 20);         frame.getcontentpane().add(txtderby);         txtderby.setcolumns(10);          txtglasgow = new jtextfield();         txtglasgow.settext(csv.get(4));         txtglasgow.setbackground(color.green);         txtglasgow.setbounds(250, 94, 102, 20);         frame.getcontentpane().add(txtglasgow);         txtglasgow.setcolumns(10);          txtfalkirk = new jtextfield();         txtfalkirk.settext(csv.get(5));         txtfalkirk.setcolumns(10);         txtfalkirk.setbackground(color.green);         txtfalkirk.setbounds(331, 41, 102, 20);         frame.getcontentpane().add(txtfalkirk);          txtnewcastle = new jtextfield();         txtnewcastle.settext(csv.get(6));         txtnewcastle.setcolumns(10);         txtnewcastle.setbackground(color.green);         txtnewcastle.setbounds(424, 141, 111, 20);         frame.getcontentpane().add(txtnewcastle);          txtleeds = new jtextfield();         txtleeds.settext(csv.get(7));         txtleeds.setcolumns(10);         txtleeds.setbackground(color.green);         txtleeds.setbounds(481, 244, 102, 20);         frame.getcontentpane().add(txtleeds);          txtpreston = new jtextfield();         txtpreston.settext(csv.get(8));         txtpreston.setcolumns(10);         txtpreston.setbackground(color.green);         txtpreston.setbounds(356, 221, 102, 20);         frame.getcontentpane().add(txtpreston);          txtmanchester = new jtextfield();         txtmanchester.settext(csv.get(9));         txtmanchester.setcolumns(10);         txtmanchester.setbackground(color.green);         txtmanchester.setbounds(394, 394, 124, 20);         frame.getcontentpane().add(txtmanchester);          txtwolverhampton = new jtextfield();         txtwolverhampton.settext(csv.get(10));         txtwolverhampton.setcolumns(10);         txtwolverhampton.setbackground(color.green);         txtwolverhampton.setbounds(360, 486, 153, 20);         frame.getcontentpane().add(txtwolverhampton);          txtbirmingham = new jtextfield();         txtbirmingham.settext(csv.get(11));         txtbirmingham.setcolumns(10);         txtbirmingham.setbackground(color.green);         txtbirmingham.setbounds(424, 553, 128, 20);         frame.getcontentpane().add(txtbirmingham);          txtmiltonkeynes = new jtextfield();         txtmiltonkeynes.settext(csv.get(12));         txtmiltonkeynes.setcolumns(10);         txtmiltonkeynes.setbackground(color.green);         txtmiltonkeynes.setbounds(474, 604, 135, 20);         frame.getcontentpane().add(txtmiltonkeynes);          txtpeterborough = new jtextfield();         txtpeterborough.settext(csv.get(13));         txtpeterborough.setcolumns(10);         txtpeterborough.setbackground(color.green);         txtpeterborough.setbounds(655, 576, 135, 20);         frame.getcontentpane().add(txtpeterborough);          txtcolindale = new jtextfield();         txtcolindale.settext(csv.get(14));         txtcolindale.setcolumns(10);         txtcolindale.setbackground(color.green);         txtcolindale.setbounds(541, 699, 107, 20);         frame.getcontentpane().add(txtcolindale);          txtstepneygreen = new jtextfield();         txtstepneygreen.settext(csv.get(15));         txtstepneygreen.setcolumns(10);         txtstepneygreen.setbackground(color.green);         txtstepneygreen.setbounds(667, 699, 137, 20);         frame.getcontentpane().add(txtstepneygreen);          txtslough = new jtextfield();         txtslough.settext(csv.get(16));         txtslough.setcolumns(10);         txtslough.setbackground(color.green);         txtslough.setbounds(525, 756, 102, 20);         frame.getcontentpane().add(txtslough);          txtfaraday = new jtextfield();         txtfaraday.settext(csv.get(17));         txtfaraday.setcolumns(10);         txtfaraday.setbackground(color.green);         txtfaraday.setbounds(650, 756, 102, 20);         frame.getcontentpane().add(txtfaraday);          txtguildford = new jtextfield();         txtguildford.settext(csv.get(18));         txtguildford.setcolumns(10);         txtguildford.setbackground(color.green);         txtguildford.setbounds(525, 822, 102, 20);         frame.getcontentpane().add(txtguildford);          txtsouthbank = new jtextfield();         txtsouthbank.settext(csv.get(19));         txtsouthbank.setcolumns(10);         txtsouthbank.setbackground(color.green);         txtsouthbank.setbounds(655, 807, 115, 20);         frame.getcontentpane().add(txtsouthbank);          jlabel lblnewlabel = new jlabel("new label");         lblnewlabel.setforeground(color.black);         lblnewlabel.setbackground(color.black);         lblnewlabel                 .seticon(new imageicon(                         "c:\\users\\606854007\\workspace\\networkapptest\\test\\window\\england_wales.gif"));         lblnewlabel.setbounds(33, 11, 890, 1086);         frame.getcontentpane().add(lblnewlabel);          new filecheckerworker(null).execute(); \\ if dont null in '()' comes error,  \\and makes execute:     /** public filecheckerworker(maptest maptest) {         this.maptest = maptest;     } **/ \\ not want, have tried add commands  \\to run methods within: \\ ' public filecheckerworker(maptest maptest)' method \\ gives me null pointer exception,   }      } 

below 'filecheckerworker' class hoping i've done right :p

package window;  import java.io.bufferedreader; import java.io.file; import java.io.filereader; import java.util.arraylist; import java.util.list; import javax.swing.swingworker;   public class filecheckerworker extends swingworker<object, list<string>> {      private maptest maptest;      public filecheckerworker(maptest maptest) {         this.maptest = maptest;     }           @override         protected void process(list<list<string>> chunks) {            list<string> values = chunks.get(chunks.size() - 1);             maptest.txtcardiff.settext(values.get(0));            maptest.txtbristol.settext(values.get(1));            maptest.txtsheffield.settext(values.get(2));            maptest.txtderby.settext(values.get(3));            maptest.txtglasgow.settext(values.get(4));            maptest.txtfalkirk.settext(values.get(5));            maptest.txtnewcastle.settext(values.get(6));            maptest.txtleeds.settext(values.get(7));            maptest.txtpreston.settext(values.get(8));            maptest.txtmanchester.settext(values.get(9));            maptest.txtwolverhampton.settext(values.get(10));            maptest.txtbirmingham.settext(values.get(11));            maptest.txtmiltonkeynes.settext(values.get(12));            maptest.txtpeterborough.settext(values.get(13));            maptest.txtcolindale.settext(values.get(14));            maptest.txtstepneygreen.settext(values.get(15));            maptest.txtslough.settext(values.get(16));            maptest.txtfaraday.settext(values.get(17));            maptest.txtguildford.settext(values.get(18));            maptest.txtsouthbank.settext(values.get(19));         }          @override         protected object doinbackground() throws exception {             long lastupdated = -1;             file csvfile = new file("c:/users/606854007/workspace/networkapptest/jar/window/cardiff.txt");             while (true) {                 if (csvfile.lastmodified() != lastupdated) {                     bufferedreader csvreader = null;                     list<string> values = new arraylist<string>(20);                     try {                         csvreader = new bufferedreader(new filereader("c:/users/606854007/workspace/networkapptest/jar/window/cardiff.txt"));                         (int index = 0; index < 20; index++) {                             values.add(maptest.csvfile.readline());                         }                         publish(values);                         lastupdated = csvfile.lastmodified();                     } {                         try {                             csvreader.close();                         } catch (exception e) {                         }                     }                      thread.sleep(5000);                     system.out.println("check change");                 }             }         }  } 

updated both codes now.

also when thought had 'doinbackground' working if gave me nullpointerexception on line values.add(maptest.csvfile.readline());

take @ scheduledexecutorservice. using can schedule periodic tasks. (in case reading file @ every 20 seconds).


Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -