ලේසියෙන්ම හොයාගන්න මෙතනින්

jLabel එකක Real Time එක display කරමු.

jFrame එකක් තුල, jLabel එකක අපට වෙලාව ලේසියෙන්ම දක්වන්න පුළුවන් Date class එකෙන් current date, current time අරගෙන. නමුත් කාලයත් සමග වෙනස් වෙන ලෙස පෙන්වන්න කිවුවොත් එහෙම ලේසියෙන් ගන්න බෑ. අපට මේ සඳහා තවත් දේවල් කිහිපයක සහය අවශ්‍ය වෙනවා. විශේෂයෙන්ම javax.swing package එකේ Timer class එකත්, java.awt package එකේ ActionListener සහ ActionEvent classes. අපි බලමු මේක කරන්නේ කොහොමද කියල.
NetBeans Project එකක jFrame එකකට, jLabel එකක් add කරගන්නකො. ඊට පස්සේ යමු කෙලින්ම code window එකට.
අපි ඉස්සෙල්ලම අපට දිනය හෝ වෙලාව ගන්න ඕන format එකක් සඳහන් කරන්න ඕන. ඒ සඳහා,
DateFormat seconds = new SimpleDateFormat("ss");
මෙහි " " තුල සඳහන් වන්නේ output එක ලැබිය යුතු ආකාරයයි. ඉන් කිහිපයක් මෙලෙස දක්වන්නම්.
hh - show hours
HH - show hours in 24h
mm - show minutes
ss - show seconds
SS - show milliseconds
yyyy - show year
MM - show month number
MMMM - show month name
dd - show date
EE - show date short form
EEEE - show date long form

දැන් අපි ActionListener object එකක් හදන්, ඒකට ActionPerformed event එකක් set කරමු. මෙහෙම ActionEvent එකක් ලියන්නේ, swing package එකේ Timer එකට අපට set කරන්න පුළුවන්, Timer interval එක සහ, සිදුවෙන්න ඕන ActionListener එකක්.  ActionListener එක තුල, actionPerformed සඳහා ලිවිය යුතු වන්නේ, current Date එක Date class එකෙන් අරන්, ඒක උවමනා කරන format එකට හැරවීමයි.
ActionListener timerListener = new ActionListener(){  
        public void actionPerformed(ActionEvent e)  
        {  
                Date date = new Date();  
                jLabel11.setText(seconds.format(date));
        }  
};
මෙමගින් දැන් jLabel එකට මේ මොහොතේ තත්පර අගය ලැබේ. නමුත් එය වෙනස් වන්නේ නැත. කාලයත් සමග jLabel text එක වෙනස් කිරීමට,
Timer timer = new Timer(1000, timerListener);  
timer.setInitialDelay(0);  
timer.start();
setInitialDelay(0) ලෙස සඳහන් කලේ, Timer එක start වීමට ප්‍රථමව, තත්පරයක කාලයක් ප්‍රමාද කිරීමටයි. එයින් System Time එක සමග එක ලෙස, සමානව වැඩ කිරීමට හැකියාව ලැබේ. timer එකක් start() method එක මගින් ආරම්භ කෙරේ.


Source Code එක මෙතැනින් බා ගන්න.
http://www.mediafire.com/?hx0h4y4q4u7e0ho

No comments :

Post a Comment