Friday, July 23, 2010

Java වැඩසටහන් සඳහා User Interfaces සැකසීම :: Swing පැකේජය හැඳින්වීම I කොටස

අතුරු මුහුණත්(Graphical User Interfaces) යනු යම් පරිගණක වැඩසටහනක් භාවිතා කිරීම පහසු කරවන්නක්. සාමාන්‍ය පරිගණක පරිශීලකයෙක් නම් මේ වකවානුවේ බොහෝ දුරට භාවිතා කරනුයේ මෙවැනි වැඩසටහන්. ජාවා පරිගණක භාෂාව යොදාගෙන මෙවැනි GUI සහිත වැඩසටහන් සැකසීමට විශේෂ පහසුකම් ලබාදී තිබෙනවා. මේ සඳහා යොදාගත හැකි ප්‍රධාන ජාවා පැකේජ 2ක තමයි
  • AWT (Abstract Window Toolkit)
  • Swing
විශේෂ හේතූන් කිහිපයක් නිසා Swing පැකේජය භාවිතා කිරීම ප්‍රයෝජනවත් වනවා. ඉන් ප්‍රධානම හේතුව වන්නේ swing පැකේජය pure Java වලින් ලියැවුනු එකක් වීම. එම නිසා සුවිශේෂ වාසි කිහිපයක් අදාල වැඩසටහනට ලැබෙනවා. මීට අමතරව AWT සහය දක්වන සියලුම පහසුකම් සඳහා swing ද සහය දක්වනවා. AWT හි නොමැති පහසුකම් ගනණාවක්ද swing හි අඩංගු වනවා.
AWT සහ Swing හි වාසි අවාසි පිලිබඳ වැඩි විස්තර කියවීම සඳහා මෙම ලින්ක් එක භාවිතා කරන්න.


අපි මෙම පාඩම් මාලාවේදී වැඩිදුර සාකච්ඡා කිරීමට බලාපොරොත්තු වන්නේ Swing පැකේජය පිලිබඳවයි. NetBeans වැනි IDE එකක් යොදාගෙන ඉතා පහසුවෙන් GUI (අතුරු මුහුනත්) සාදාගත හැකිවුවද මෙය නවකයින්ගේ දැණුම මොට කරදැමීමට එය හේතුවන බව මගේ අදහසයි. එම නිසා මුලදී Notepad හෝ Notepad++ වැනි text editor භාවිතා කර GUI සඳහා අදාල කේත ලිවීමෙන් ඒ සම්බන්ද හොඳ අවබෝධයක් ලබාගෙන පසුව ක්‍රමලේඛන කටයුතු පහසු කරගැනීමට NetBeans භාවිතාකිරීම වරදක් නැහැ.

දැන් අපි බලමු swing components කිහිපයක විස්තර කිහිපයක්.

JLabel
jLabel එක වැදගත් වනුයේ user ට යම් විස්තරයක් පෙන්වීමේදීය.
jLabel එකක් සාදාගැනීම.
Constructors
JLabel(String text)
JLabel(Icon ico)
JLabel(Strnig text,Icon ico,int align)

note : align සඳහා දියහැකි අගයන් 
JLabel.LEFT
JLabel.CENTER
JLabel.RIGHT
JLabel.LEADING
ඉහත constructors යොදාගෙන JLabel 3ක් සාදන ආකාරය දැන් අපි බලමු.
Constructor 1
JLabel lbl1=new JLabel("Sri Lanka");
Constructor 2
ImageIcon ico=new ImageIcon("sriLanka.png");
JLabel lbl2=new JLabel(ico); 
Constructor 3
JLabel lbl3=new JLabel("Sri Lanka",ico,JLabel.LEFT); 
දැන් අපි බලමු ඉහත Label 3ක්. යොදාගෙන සාදන ලද සරළ GUI එකක් සඳහා කේතය.
Note: පහත කේතයේ ඇති සියලු කොටස් ඉදිරියේදී සාකච්ඡා කෙරේ එබැවින් එහි JLabel සම්බන්ද කේත කොටස් පමණක් මෙහිදී අධ්‍යයනය කරන්න.
SwingDemo.java 
import javax.swing.*;
import java.awt.*;

class SwingDemo extends JFrame{
 public SwingDemo(){
  setTitle("Swing Demo");
  setLayout(new GridLayout(3,1));
  JLabel lbl1=new JLabel("Sri Lanka");
  ImageIcon ico=new ImageIcon("sriLanka.png");
  JLabel lbl2=new JLabel(ico);
  JLabel lbl3=new JLabel("Sri Lanka",ico,JLabel.LEFT);
  add(lbl1);
  add(lbl2);
  add(lbl3);
  setSize(300,300);
  setVisible(true);  
 }

 public static void main(String args[]){
  new SwingDemo();
 }
}
Output:
JLabel class එකෙහි methods
setText(String txt) ->JLabel එකෙට text එකක් ලබා දීමට .
getText() JLabel ->එකෙහි දැනට ඇති text එක ලබාගැනීමට. 
JLabel එකට අදාල documentation එක කියවීම සඳහා මෙම ලින්ක් එකෙන් යන්න.

JButton

කිසියම් විධානයක් user ගේ අනුදැනුම මත ක්‍රියාත්මක කරවීම සඳහා යොදාගැනේ. මෙය Swing components අතුරින් බහුල වශයෙන් යෙදෙන component එකකි.
Constructors 
JButton(String text)
JButton(String text,Icon ico)

උදා:


Code:
ImageIcon ico=new ImageIcon("icon5.jpg");
  JButton button2=new JButton("Show Details",ico);
  add(button1);
  JLabel lbl1=new JLabel("");
  add(lbl1);
  add(button2);

JButton එකට අදාල documentation එක කියවීම සඳහා මෙම ලින්ක් එකෙන් යන්න.

JTextField

User ගෙන් කිසියම් text input එකක් ලබාගැනීම සඳහා භාවිතා කෙරේ. (උදා: user name, age )
Constructors 
JTextField()
JTextField(String text)
JTextField(int Columns)
JTextField(String text,int Columns)
උදා:
Methods:
getText() user විසින් textbox එකට ඇතුලුකල text එක ලබාගැනීමට
setText(String str) textbox එකට text එකක් set කිරීම සඳහා

JTextField එකට අදාල documentation එක කියවීම සඳහා මෙම ලින්ක් එකෙන් යන්න.

අපි ඊලඟ පාඩමෙන් අනෙකුත් swing components පිලිබඳ සාකච්ඡා කරමු.

5 comments:

  1. මැක්සා වැඩක්. ඔය ජාවා වලට ඩිෆෝල්ට් පෙනුම ගන්න විදියත් දැම්මොත් ප්‍රයෝජනවත් වේවි.

    ReplyDelete
  2. ඔබගේ අදහස් දැක්වීමට තුති.
    මෙහිදී මම Swing package එකේ components භාවිතා කරපු නිසා ජාවා වලට ඩිෆෝල්ට් පෙනුම ගැනීමට විශේෂයෙන් සකස් කිරීමට අවශ්‍ය වෙන්නේ නෑ. මම හිතන්නෙ windows වල ඩිෆෝල්ට් පෙනුම ගන්න විධිය ගැන වෙන්න ඕන ඔබ කියල තිබෙන්නෙ.
    ඉදිරි පාඩමකදී UIManager එක ගැන විස්තරයක් දාන්න මම හිතාගෙන ඉන්නෙ.

    ReplyDelete
  3. මෙම පාඩම ඉතා වැදගත්.. මේ වාගේ පාඩමක් ඉදිරිපත් කිරීම ගැන ඔබට ස්තතියි.
    මම දැන ගන්න කැමතියි ජවා swing package එක screen එකට ලබා ලබා‍ගන්නේ කොහාමද කියලා. site එකේ දාන්න...

    ReplyDelete
  4. try {
    UIManager.setLookAndFeel(new SyntheticaSkyMetallicLookAndFeel());
    } catch (ParseException ex) {

    } catch (UnsupportedLookAndFeelException ex) {

    }
    ///මෙතනින් පස්සෙ ඔයාගෙ frame hadagana.. like this
    JFrame frame= new JFrame();
    frame.setVisible(true);///

    ReplyDelete
  5. JText Field ekata adala documentation ekata yana link eka wada na.eka hadannako...getText,setText bawita karana hati pahadiliwa saralawa kiyannako plz

    ReplyDelete