Welcome To MyMiniProWorld

Showing posts with label Programming Help. Show all posts
Showing posts with label Programming Help. Show all posts

Variable Declaration-java



අප පරිගණක වැඩසටහනක් ලියා එමගින් බෝහෝ විට දත්ත හැසිරවීම කරනු ලබයි. දත්ත හැසිරවීම ලෙස යම් අගයක් දෙකක් එකතු කර එම අගයන් එකතු කිරීමේන් ලැබෙන ප්‍රතිපලය නැවත ප්‍රදර්ශනය කිරීමට අවශ්‍ය වන්නට පුළුවන්,නම,ගම අතුලත් විස්තරයක් තිරයේ දර්ශණය වනවා වන්නට පුළුවන්.මෙසේ කිරීමෙන් බොහෝ විට අපට පරිගණකයේ පවතින මතක කොටස නොහොත් RAM(Random Access Memory) නමැති උපාාංගය අවශ්‍ය පරිදි යොදා ගත යුතුය.
මේ ක්‍රියාවලිය මැනවින් තහවුරු කිරීම සදහා ඔබගේ අවදානය රූපසටහන වෙත යොමු කරමු.එම පරිගණක වැඩසටහන හොදින් නිරීක්ෂණය කරන්න.

                                                                       PIC 1

මෙහි මෙතෙක් සාකච්චාවට බදුන් නොකළ Statements එකක් පෙනේනවා ඇති.

int numOne,numTwo

මෙමගින් හැදින්වෙන්නේ අප විසින් පරිගණක මතකයන් , මතක ස්ථාන දෙකක් වෙන්කර ඇති බවයි.එම මතක ස්ථානයන් දෙකෙහි නාමයන් වනුයේ numOne හා numTwo ය.එසේම එම නාමයන් පරිගණක වැඩසටහන් කරුට අවශ්‍ය පරිදි ලියන බවද ඔබට මතක ඇති.

මතක නාමයන් බේදීමෙ සම්ප්‍රදානයන් මොනවාද?

අප මෙම මතක ස්ථානයන් වෙන්කිරීම සහ එයට නාමයන් දීම රූපාකාරයෙන්ද නිරුපනය කර ඇති අයුරු නිරීක්ෂණය කර ,එය වඩාත් පැහැදිලි කරගන්න.එසේම එම පරිගණක මතක නාමයන් දීම ක්‍රියාවලිය ආරම්බයේ int නමැති වචනය යොදා ඇති අයුරු නිරීක්ෂණය කරන්න.

Int යනු reserved /key word එකක්ද?

මෙමගින් වැඩසටහන්කරු පරිගණකයට දක්වන්නේ මෙකි වෙන්කරගත් මතක ස්ථාන සදහා අගයන් ලෙස අාංකයන්(numbers) දීමට අපේක්ෂා කරණ බවත් , ඒවා පුර්ණ සංක්‍ය(whole numbers) වන බවත්ය.

එසේම පුර්ණ සංක්‍ය නොවන , අාංකයන් නොවන වචනත් දත්තයන්ද(data) අපට දීමට සිදුවෙනවා නේද .මෙ පිලි දව සවිස්තරව ඉදිරියේ ලියන්නම්.එහෙත් මෙවැනි අාංකයන් ලැයිස්තුවක් ගොඩනගා ගැනීමට උත්සහ කර බලන්න.

නැවතත් අපබේ රූපසටහන වෙත අවදානය යොමු කළහොත් , මෙහි අප මතක ස්ථාන (Variables) දෙකක් වෙන කර ඇති බව ඔබට කිවා මතක ඇති.එසේ එකකට වැඩියේන් එකම ටයිේ එකට අයත්වන Variables වෙන්කිරීබම්දී එක මතක නාමයක් ඇතිතෙක් වෙන් කර ඇත්තේ ,(comma) නමැති separator එකකිනි.එසේනම් ඔබට එකකට වඩා මතක ස්ථාන වෙන් කිරීමෙදී කොමාව යොදා ගත හැකිය.එසේම එක මතක ස්ථානයක්ද වෙන්කර ගත හැක.පහතින් දක්වා ඇත්බත් ද තවත් ගනයක(type) මතක වෙන්  කිරීමකි.

Char ch1,ch2,ch3;

මෙහිදී මතක ස්ථාන 3 ක් char නමැති වර්ගයෙන් දත්ත ගබඩා කර ගැනීම සදහා වෙන කර ඇත.මෙසේ ඔබ විසින් යම් ගණයකට (type එකකට අදාල ව ) මතක ස්ථාන වෙන්කරගත් සැනින් ,යම් අගයක් එකී මතක ස්ථානයෙ ගබඩා නොකළහොත් ,නිරායාසයන් එකී මතක ස්ථානයන් හි යොදා ගන්න type එක අනුව යම් යම් අගයන් ඒවා වෙත යෙදෙන බව දැකිය හැකිය.මෙයට අප default අගයන් නිරායාසයෙන් ගබඩා වීම යයි කියමු.මෙතේක් දත්ත වර්ග /ගණයන් (data types) පිලිබදව අවබොදයක් නැතත් සටහනේ පුර්ණත්වය සදහා එක් එක් දත්ත වර්ගය සදහා ලැබෙන default අගයන් පහතින් සදහන් කරමු.

සියලුම අාංකයන්(Numerical) සහිත data types සදහා 0(zero) ද, අකුරු නොහොත් characters දත්ත වර්ගය සදහා ‘\0’ද,Boolean අගයන් ලෙස false ද, objects අගයන් සදහා null ද ඇතුලත් වේ.

Create Translucent Windows in Java/Swing





මන් කියලා දෙන්න යන්නේ කොහොමද ජාවා වලින් එක හැඩයකට තියෙන විනිවිද වින්ඩෝ එකක් හදා ගන්නේ කියලා .

මේක කරන්න අවශ්‍ය වෙන්නේ මෙන්න මේවා ටික විතරයි .

ස්වින් Application සම්බන්දව මුලික දැනුමක්..
JDK 7 , නැති කට්ටිය මෙතනින් ගන්න .
Netbeans IDE ,නැති කට්ටිය මෙතන්න ගිහින් ඩවුන්ලෝඩ් කරගන්න .

මුලින්ම අපි බලන්න ඕනේ අපේ පරිගණකයේ ප්ලැට් ෆෝම එක Translucent (විනිවිද) එකට Support (සහය) කරනවාද කියල බලන එකයි. එකට අපි මුලින්ම Graphic Device ඒකෙන් instance එකක් හදා ගන්න ඕනේ මෙන්න මේ විදියට .
import static java.awt.GraphicsDevice.WindowTranslucency.* 

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
 


ඔන්න හරි ජාවා වල Transperancy Method ටයිප්ස්‌ 3 තියෙනවා . 

1.gd.isWindowTranslucencySupported(TRANSLUCENT); //for Uniform Transparency
2.gd.isWindowTranslucencySupported(PERPIXEL_TRANSLUCENT);//for per-Pixel Transperancy
3.gd.isWindowTranslucencySupported(PERPIXEL_TRANSPARENT); //for shaped windows


මේ හැම Method එකකින්ම Boolean (True or False) එකක් තමයි Return වෙන්නේ .ලැබෙන ප්‍රතිපලය මත ඇප්ලිකේෂන් එක සාදා ගන්න පුළුවන් .මේ හැම එකක් ගැනම අපි දැන් බලන්න යන්නේ කොහොමද හදා ගන්නේ කියලා .මුලින්ම අපි පලවෙනි එක කරන්නේ කොහොමද කියලා බලමු .


Uniform Transparency(එකීය පාරදෘශ්‍යතාව):

මේ වාගේ ඇප්ලිකේෂන් එකක් හදාගන්න එක හරිම ලේසි මොකද කියනවානම් අපි jframe එකක් හදා ගත්තට පස්සේ "setOpacity()" කියන මෙතඩ් එකට windows class එකේ ඉදලා call කරන්න විතරයි තියෙන්නේ. එක Float අගයක් .පොඩිම අගයේ (ඒ කියන්නේ 0.0 ) ඉදලා ලොකුම අගයට (ඒ කියන්නේ 1.0 ) set කරන්න තියෙන්නේ .1.0 set කරනවා කියන්නේ වින්ඩෝ එක සම්පුර්ණයෙන්ම පාරාන්ධයි .එකේ අනිත් පැත්ත ඒ කියන්නේ 0.0 දැම්මොත් වින්ඩෝ එක සම්පුර්ණයෙන්ම පාරදෘශ්‍යයි.

මේ විදියට තමයි එක කරන්න ඕනේ .

public class MyUniTransperancyWindow extends JFrame {

/*


Extra usage for some method..
*/
MyUniTransperancyWindow myWindow = new MyUniTransperancyWindow ();
myWindow.setLocationRelativeTo(null);
myWindow.setSize(400,300);
myWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

myWindow.setOpacity(0.70f);

myWindow.setVisible(true);

}


මේක හරියට වැඩ කල නම් ඔයාලට 70% විනිවිදභාවයෙන් තියෙන වින්ඩොවක් ලැබෙන්න ඕනේ.ඊලග ලිපියෙන් මන කියලා දෙන්නම් කොහොමද වින්ඩොව් එක අපිට කැමති හැඩය කට හදා ගන්නේ කියලා,ලිපිය කියවපු ඔයාලට බොහොම ස්තුතියි.

SINHALA UNICODE TABLE




PositionDecimalNameAppearance
0x0D823458SINHALA SIGN ANUSVARAYA
0x0D833459SINHALA SIGN VISARGAYA
0x0D853461SINHALA LETTER AYANNA
0x0D863462SINHALA LETTER AAYANNA
0x0D873463SINHALA LETTER AEYANNA
0x0D883464SINHALA LETTER AEEYANNA
0x0D893465SINHALA LETTER IYANNA
0x0D8A3466SINHALA LETTER IIYANNA
0x0D8B3467SINHALA LETTER UYANNA
0x0D8C3468SINHALA LETTER UUYANNA
0x0D8D3469SINHALA LETTER IRUYANNA
0x0D8E3470SINHALA LETTER IRUUYANNA
0x0D8F3471SINHALA LETTER ILUYANNA
0x0D903472SINHALA LETTER ILUUYANNA
0x0D913473SINHALA LETTER EYANNA
0x0D923474SINHALA LETTER EEYANNA
0x0D933475SINHALA LETTER AIYANNA
0x0D943476SINHALA LETTER OYANNA
0x0D953477SINHALA LETTER OOYANNA
0x0D963478SINHALA LETTER AUYANNA
0x0D9A3482SINHALA LETTER ALPAPRAANA KAYANNA
0x0D9B3483SINHALA LETTER MAHAAPRAANA KAYANNA
0x0D9C3484SINHALA LETTER ALPAPRAANA GAYANNA
0x0D9D3485SINHALA LETTER MAHAAPRAANA GAYANNA
0x0D9E3486SINHALA LETTER KANTAJA NAASIKYAYA
0x0D9F3487SINHALA LETTER SANYAKA GAYANNA
0x0DA03488SINHALA LETTER ALPAPRAANA CAYANNA
0x0DA13489SINHALA LETTER MAHAAPRAANA CAYANNA
0x0DA23490SINHALA LETTER ALPAPRAANA JAYANNA
0x0DA33491SINHALA LETTER MAHAAPRAANA JAYANNA
0x0DA43492SINHALA LETTER TAALUJA NAASIKYAYA
0x0DA53493SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
0x0DA63494SINHALA LETTER SANYAKA JAYANNA
0x0DA73495SINHALA LETTER ALPAPRAANA TTAYANNA
0x0DA83496SINHALA LETTER MAHAAPRAANA TTAYANNA
0x0DA93497SINHALA LETTER ALPAPRAANA DDAYANNA
0x0DAA3498SINHALA LETTER MAHAAPRAANA DDAYANNA
0x0DAB3499SINHALA LETTER MUURDHAJA NAYANNA
0x0DAC3500SINHALA LETTER SANYAKA DDAYANNA
0x0DAD3501SINHALA LETTER ALPAPRAANA TAYANNA
0x0DAE3502SINHALA LETTER MAHAAPRAANA TAYANNA
0x0DAF3503SINHALA LETTER ALPAPRAANA DAYANNA
0x0DB03504SINHALA LETTER MAHAAPRAANA DAYANNA
0x0DB13505SINHALA LETTER DANTAJA NAYANNA
0x0DB33507SINHALA LETTER SANYAKA DAYANNA
0x0DB43508SINHALA LETTER ALPAPRAANA PAYANNA
0x0DB53509SINHALA LETTER MAHAAPRAANA PAYANNA
0x0DB63510SINHALA LETTER ALPAPRAANA BAYANNA
0x0DB73511SINHALA LETTER MAHAAPRAANA BAYANNA
0x0DB83512SINHALA LETTER MAYANNA
0x0DB93513SINHALA LETTER AMBA BAYANNA
0x0DBA3514SINHALA LETTER YAYANNA
0x0DBB3515SINHALA LETTER RAYANNA
0x0DBD3517SINHALA LETTER DANTAJA LAYANNA
0x0DC03520SINHALA LETTER VAYANNA
0x0DC13521SINHALA LETTER TAALUJA SAYANNA
0x0DC23522SINHALA LETTER MUURDHAJA SAYANNA
0x0DC33523SINHALA LETTER DANTAJA SAYANNA
0x0DC43524SINHALA LETTER HAYANNA
0x0DC53525SINHALA LETTER MUURDHAJA LAYANNA
0x0DC63526SINHALA LETTER FAYANNA
0x0DCA3530SINHALA SIGN AL-LAKUNA
0x0DCF3535SINHALA VOWEL SIGN AELA-PILLA
0x0DD03536SINHALA VOWEL SIGN KETTI AEDA-PILLA
0x0DD13537SINHALA VOWEL SIGN DIGA AEDA-PILLA
0x0DD23538SINHALA VOWEL SIGN KETTI IS-PILLA
0x0DD33539SINHALA VOWEL SIGN DIGA IS-PILLA
0x0DD43540SINHALA VOWEL SIGN KETTI PAA-PILLA
0x0DD63542SINHALA VOWEL SIGN DIGA PAA-PILLA
0x0DD83544SINHALA VOWEL SIGN GAETTA-PILLA
0x0DD93545SINHALA VOWEL SIGN KOMBUVA
0x0DDA3546SINHALA VOWEL SIGN DIGA KOMBUVA
0x0DDB3547SINHALA VOWEL SIGN KOMBU DEKA
0x0DDC3548SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
0x0DDD3549SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
0x0DDE3550SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
0x0DDF3551SINHALA VOWEL SIGN GAYANUKITTA
0x0DF23570SINHALA VOWEL SIGN DIGA GAETTA-PILLA
0x0DF33571SINHALA VOWEL SIGN DIGA GAYANUKITTA
0x0DF43572SINHALA PUNCTUATION KUNDDALIYA



Java Native Interface-JNI Helloworld






මන් කියලා දෙන්න යන්නේ කොහොමද ජාවා ,සී ප්ලස්‌ භාෂා වලින් Application එකක් හදාගන්නේ කොහොමද කියලා ...


මේක කරන්න අවශ්‍ය වෙන්නේ මෙන්න මේවා ටික විතරයි .


java and c/c++ Application සම්බන්දව මුලික දැනුමක්..
JDK 7 , නැති කට්ටිය මෙතනින් ගන්න .
Dev-Cpp නැති කට්ටිය මෙතනින් ගන්න .
Netbeans IDE ,නැති කට්ටිය මෙතන්න ගිහින් ඩවුන්ලෝඩ් කරගන්න .


දැන් අපි JNI (java native interface) සම්බන්දව කතා කරමු.ඔබ ජාවා පිළිබද උනන්දුවක් දක්වන්නේ නම් ,ජාවා භාෂාව භාවිතා කර නිර්මාණ කරන්නේ නම් ඔබට එහි භාවිතයන් ප්‍රමාණවත් මදි බව ඔබට වැටහෙන බව ඔබ දන්නා කරුණකි.උදාහරණයක් වශයෙන් පරිගණකයේ තොටුපල (Ports ) භාවිතා කර වාහනයක් පාලනය කිරීම.මෙවන් අවසථා සදහා ඔබට වෙනත් භාෂාවක් සමග කටයුතු කරන්නට ඔබට සිදු වේ.(මිට හේතුව වන්නේ මා සිතනා ආකාරයට එහි පවතින cross platform capability එක පවත්වා ගෙන යාම සදහායි.).කෙසේ වෙතත් මෙවන් කටයතු සදහා JNI හදුන්වා දී තිබෙනවා.

ක්‍රමලේකන කිරීම ආරම්භ කිරීමට ප්‍රථම ඉහතින් අප බා ගත් JDK හා Dev-cpp දෙක install කල යුතු වෙනවා.මේ සදහා බා ගත කල ස්ථානයේ එම නමින් පවතින .exe ගොනු මත දෙවරක් එබීමෙන් එය පරිගණකයට ඇතුලත් කල හැක.අනතුරුව පහත සදහන් ආකාරයේ ස්ථානයන් දෙක පරිගණකයේ Path විචල්‍යයට ඇතුලත් කල යුතු වනවා.


C:\Program Files\Java\jdk1.6.0_16\bin;
C\Dev-Cpp\bin;
දැන් පහත වැඩසටහන දෙස බලන්න.එය ටයිප් කරගන්න.අනතුරුව එය Compile කර ගන්න.

public class HelloWorld {
public native void Hello();
static {
System.load("C:/jana/HelloWorld.dll");
System.out.println("Loaded");
}
public static void main(String[] args) {
new HelloWorld().Hello();
}
}





Dos භාවිතා කරන්නේ නම්  javac Helloworld.java මගින් එය සිදු කර ගත.Compile කර ගත් පසු ඔබට HelloWorld.class file එකක් දැක ගත හැක.අනතුරුව පහත සදහන් විදානය ලබා දෙන්න.









එවිට ඔබට මෙය  HelloWorld.h file එක ලැබේ.
.





දැන් අලුත් C++ වැඩසටහන පහත ආකාරයට සකස් කරගන්න

HelloWorld.c
#include
#include
#include "HelloWorld.h"

JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("HelloWorld...!\n");
return 0;
}

 .o file එකක් සදා ඇනීමට පහත විදානය දෙන්න.


gcc -c -I"include" -I"\include\win32" -o HelloWorld.o HelloWorld.c


ex:- gcc -c -I"C:\Program Files\Java\jdk1.6.0_16\include" -I"C:\Program Files\Java\jdk1.6.0_16\include\win32" -o HelloWorld.o HelloWorld.c


.o file එක සාදා ගත් පසු අපට def file අවශ්‍ය වේ.එය පහත පරිදි සකස් කර ගන්න.
(rename its extention to .def)


EXPORTS
Java_HelloWorld_Hello


දැන් අවශ්‍ය කරන සියල්ල සදා ගෙන අවසානය .දන ඔබට .dll file එක සදා ගැනීමට හැකි වේ.ඒ සදහා පහත විදානය භාවුතා කරන්න.


gcc -shared -o HelloWorld.dll HelloWorld.o HelloWorld.def

java HelloWorld විදානය භාවිතා කිරීමෙන් ඔබ දැන් සාදා ගත් පරිගණක වැඩටහන ධාවනය කර ගත හැකි වනු ඇත.එවිට ඔබට පහත දැක්වෙන පරිදි Window එකක් ලැබෙනු ඇත.

















END.

Java-File deletion & openning a file











ජාවා වලින් ෆයිල් එකක් ඩිලීට් කරන්නේ මෙහෙමයි

import java.io.*;
public class DeleteFile { 

 public static void main(String[] args) {
 File newfile = new File("c:\\test.txt"); 
 newfile.delete(); 
 }
}


 
exe ෆයිල් එකක් ජාවා වලින් ඕපන් කරන්නේ කොහොමද ?


public class exeරunner {
public static void main(String[] args) {
try {
Runtime.getRuntime().exec("FileName.exe");
} catch (Exception e) {
e.printStackTrace();
}
}
}

ෆයිල් නේම් එක වෙනුවට වෙන නමක් පාවිච්චි කරනවානම් .exe ෆයිල් එකට අදාළ සම්පුර්ණ ලිපිනය(path) ඇතුලත් කරන්න ඕනේ..සමහර Games exe ( ex :need for speed ) මේ ක්‍රමයට සහය දක්වන්නේ නෑ.නමුත් ගොඩක් Software මේ විදියට වැඩ කරනවා .


මේ විදියට තමා ක්‍රියාවලිය අවසාන කරන්න වෙන්නේ ......

Process pp = Runtime.getRuntime().exec("calc.exe");
pp.destroy();



ලිපිය කියවපු ඔයාලට බොහොම ස්තුතියි. ....



 
Copyright © ~~~MyMiniProWorld~~~ මුදිත ධර්මසේන