Saturday, July 31, 2010

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

JRadioButton
විකල්ප කිහිපයක් දී ඇති විටදී ඉන් එක් විකල්පයක් තෝරාගැනීමට අවකාශ සැලසීමට මෙම component එක යොදාගත හැක. උදාහරණයක් පහත ඉදිරිපත් කර ඇත. Mr,Mrs,Ms,Dr යන විකල්ප වලින් එකක් පමණක් තෝරාගැනීමට මෙහිදී සිදුවේ. මෙම පාඩමෙන් සිදුකෙරෙන්නේ JRadioButton එකක් සාදාගන්නා ආකාරය පමණි. මේවායේ event handling සිදුකිරීම ඉදිරි පාඩම් වලදී සාකච්ඡා කෙරේ.
JRadioButtonDemo.java
import javax.swing.*;
import java.awt.*;

public class JRadioButtonDemo extends JFrame{
 
 public JRadioButtonDemo(){
   setTitle("JRadioButton Demo");
   setLayout(new FlowLayout(FlowLayout.LEADING  ));
   setSize(300,300);
   JRadioButton jrb_mr=new JRadioButton("Mr");
   JRadioButton jrb_mrs=new JRadioButton("Mrs");
   JRadioButton jrb_ms=new JRadioButton("Ms");
   JRadioButton jrb_dr=new JRadioButton("Dr");
   //grouping
   ButtonGroup btnGroup=new ButtonGroup();
   btnGroup.add(jrb_mr);
   btnGroup.add(jrb_mrs);
   btnGroup.add(jrb_ms);
   btnGroup.add(jrb_dr);
   //add them to the JFrame
   add(jrb_mr);
   add(jrb_mrs);
   add(jrb_ms);
   add(jrb_dr);
   setVisible(true);
 }

 public static void main(String args[]){
  new JRadioButtonDemo();
 }
}
Output:

line14:
මෙහිදී අපි සාදාගත් JRadioButton ටික group කිරීම සිදුකෙරේ. මේවා group නොකලහොත් Mr, Mrs, Ms, Dr යන විකල්පයන්ගෙන් එකක් හෝ කිහිපයක් තේරීම සිදුකල හැකිය. නමුත් JRadioButton යෙදීමේ අරමුණ මෙය නොවන නිසා සාමාන්‍යයෙන් JRadioButtons group කිරීම සිදුවේ.

JList
කිසියම් elements ප්‍රමාණයක් පහත ආකාරයට දැක්වීමට JList නම් swing component එක භාවිතාකෙරේ.
උදා: JListDemo.java

import javax.swing.*;
import java.awt.*;

public class JListDemo extends JFrame{
 
 public JListDemo(){
   setTitle("JList Demo");
   setLayout(new FlowLayout(FlowLayout.LEADING  ));
   setSize(300,300);
   
   DefaultListModel dlm=new DefaultListModel();
   JList countries=new JList(dlm);
   dlm.addElement("Sri Lanka");
   dlm.addElement("India");
   dlm.addElement("Japan");
   dlm.addElement("Usa");
   dlm.addElement("UK");
   
   add(countries); 
   setVisible(true);
 }
   
   public static void main(String args[]){
  new JListDemo();
   } 
}
JList එක construct කරගැනීමට පෙර DefaultListModel එකක් සාදාගැනීම කල යුතුයි. පසුව අපි සාදාගත් JList එකට දත්ත add කිරීම්ට JList එක clear කිරීමට, JList එකෙන් elements ඉවත් කිරීම මෙම DefaultListModel object එක හරහා සිදුවේ.Line11 දී මෙම DefaultListModel object එකක් සාදාගෙන ඇත. 

Line12: මෙහිදී අපි සාදාගත් DefaultListModel object එක සහ JList එක සම්බන්ද කිරීම සිදුකෙරේ.

දැන් අපි JList එක හා සම්බන්ද වැදගත් method කිහිපයක් සලකා බලමු.

JList Methods
විස්තරය
int getSelectedIndex()  user විසින් list එකීහි මේ වනවිට select කර ඇති item එකෙහි index එක ලබාදේ.
void setSelectedIndex()  Program එක තුලින් list එකෙහි item එකක් select කර ඇති ලෙසට දක්වයි.
Object getSelectedValue()  user විසින් list එකීහි මේ වනවිට select කර ඇති item එක ලබාදේ
boolean isSelectedIndex(int idx)  ලබාදෙන int value එකක් select වී ඇති item එකේ index value එක නම් true ලෙසටද නැතිනම් false ලෙසටද return කරයි
setModel(ListModel model)  සකස් කරගත් ListModel object එකක් JList එක හා සම්බන්ද කිරීමට යොදාගැනේ
DefaultListModel Methods
විස්තරය
void add(int index, Object element)  ලබාදෙන index අගයකට(location එකකට) item එකක් ඇතුලු කිරීම සිදුකරයි
void addElement(Object obj)  list එකේ අගට item එකක් ඇතුලු කිරීම සිදුකරයි
int capacity()  දැනට list එකේ capacity එක නොහොත් items ගනණ ලබාදේ
void clear()  list එකේ ඇති සියලු items clear කිරීම සිදුකරයි.
boolean  contains(Object obj)  ලබදෙන Object එකක් list එක තුල අන්තර්ගත වේනම් true ලෙසද නැත්නම් false ලෙසටද ලබාදේ.
Object elementAt(int index)  ලබාදෙන index එකක ඇති value එක ලබාදේ
boolean isEmpty()  list එක empty නම් true ලෙසටද නැත්නම් false ලෙසටද ලබාදේ
Object remove(int index)  ලබාදෙන index එකක ඇති item එක ඉවත්කරයි
void removeAllElements()  list එක තුල ඇති සියලු items ඉවත් කරයි

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

JList එකට scroll bar යෙදීමට අවශ්‍ය නම් JScrollPane එකක් යොදාගත හැකිය. එය සිදුකරන අයුරු පහත දැක්වේ.
import javax.swing.*;
import java.awt.*;

public class JListDemo extends JFrame{
 
 public JListDemo(){
   setTitle("JList Demo");
   setLayout(new FlowLayout(FlowLayout.LEADING  ));
   setSize(300,300);
   
   DefaultListModel dlm=new DefaultListModel();
   JList countries=new JList(dlm);  
   
   JScrollPane scrollP=new JScrollPane(countries);
   scrollP.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

   dlm.addElement("Sri Lanka");
   dlm.addElement("India");
   dlm.addElement("Japan");
   dlm.addElement("Usa");
   dlm.addElement("Canada");
   dlm.addElement("Australlia");
   dlm.addElement("Italy");
   dlm.addElement("South Affrica");
   dlm.addElement("Thailand");
   
   add(scrollP); 
   setVisible(true);
 }
   
   public static void main(String args[]){
  new JListDemo();
   } 
}
Output:
පහත ජාවා ඇප්ලට් එක භාවිතයෙන් ඔබට ඉහත සඳහන් කල methods හි ක්‍රියාකාරීත්වය පහසුවෙන් වටහාගත හැකිවෙතැයි සිතමි.
පාඩමේ භාවිතා කර ඇති මූලාශ්‍ර කේත(source codes) බාගත කරගැනීම සඳහා පහත ලින්ක් එක භාවිතා කරන්න.

1 comments: