Type conversation and casting

Type conversation and casting :

এখন কিভাবে টাইপ কনভার্সেশান করা যায় এবং কাস্টিং সম্পর্কে জানব।
টাইপ কনভার্সেশান হলে এক ধরনের ডেটা টাইপ কে আরেক টাইপের ডেটা টাইপে পরিবর্ত করা। প্রোগ্রামিং করার সময় অনেক সময় দেখা যায় যে int type variable কে float হিসেবে ব্যাবহার বা float কে int হিসেহে ব্যাবহার করা খুবি জরুরি হিসেবে কাজ করে ,এই ক্ষেত্রে cast operator use করে খুব সহজে type conversation করা যায়।
একটি উদাহরনের মাধ্যমে নিষয়টা দেখা যাক-
public class type_conversation {

public static void main(String arg[]){

int a=100;
float b=100.50f;

System.out.println(“a is “+ a+” b is “+ b);

int c;
c= a/(int)b;
System.out.println(“c is = “+c);

}
}
output is:
a is 100 b is 100.5
c is = 1

উপড়ের প্রোগ্রামে আমরা দেখতে পেলাম যে a কে b দিয়ে ভাগ দেওয়ার সময় কাস্টিং করা হয়েছে b কে ।কেন? না করলে কি হত ? জাভাতে সাধানত ফ্লোটকে int type এর সাথে operation করা যায় না । একটি ইরর মেসেজ দেখাবে । তাই b এর আগে (int ) দিয়ে b কে int type এ পরিবর্তন করা হয়েছে ।
এবং b =100.5 থেকে b=100 হয়েছে।

Advertisements

Logical Operator

Logical Operator:
Java language এ কয়েক ধরনের লজিকাল অপারেটর আছে ।  এগুলো সাধারনত শর্ত সত্য বা মিথ্যা অর্থাৎ Boolean  কন্ডিশান চেক করে। জাভাতে মোট তিন ধরনের লজিকাল অপারেটর রয়েছে ।
And——-symbol is         &&
OR  ——-Symbol is        ||
Not  ——-Symbol is        !

And  অপারেটর হল এমন ধরনের যেখানে উভয় কন্ডিশান সত্য হলে তবে ফলাফল সত্য বলে বিবেচিত হয়, একটি বা উভয়টি মিথ্যা হলে ফলাফল মিথ্যা বিবেচিত হয়।

OR  অপারেটর হল এমন যেখানে যে কোন একটি সত্য বা উভয়টা সত্য হলে ফলাফল মিথ্যা বলে বিবেচিত হয়, শুধুমাত্র উভয়টি মিথ্যা হলেই কেবল ফলাফল মিথ্যা হয়।

Not    হল এমন অপারেটর যেখানে শুধু সত্য নাকি মিথ্যা তা বিবেচনা করা হয়।         যেমন  বৃস্টি না এলে আমি ভার্সিটি যাব। এখানে বৃষ্টি হয়ার সম্ভাবনা মিথ্যা হলে   কাজ টি সত্য হবে অর্থাৎ  ভার্সিটি যাব।

একটি উদাহরন  দেখি-

public class logical_oparetor {

public static void main(String arg[]){

int a=5,b=10;

if(a==5&&b==10){
System.out.println(“yes , this is right for and oprerator where both are true  !!”);

}

if(a==5&&b==5){

System.out.println(“yes , this is right for and operator where single one is true !!”);

}

if(a==4&&b==4){

System.out.println(“yes , this is right for and operator where both are false!!”);
}

if(a==5||b==10){

System.out.println(“yes , this is right for or operator where both are true !!”);
}

if(a==5|| b==5){

System.out.println(“yes , this is right for or operator where  single one is true!!”);

}

if(a==4||b==3){
System.out.println(“yes , this is right  for or operator where both are false!!”);

}

if(a!=5){

System.out.println(“yes , this is right for not operator where value is false !!”);

}

if(a!=4){

System.out.println(“yes , this is right where value is true !!”);

}

}
}

Output:
yes , this is right for and oprerator where both are true  !!
yes , this is right for or operator where both are true !!
yes , this is right for or operator where  single one is true!!
yes , this is right where value is true !!

Layout manager

 

গূঈ(GUI) প্রোগ্রাম ডিজাইনের জন্য একটি অন্যতম বিষয় হল এর কম্পনেন্ট গুলোকে নির্দিষ্ট আকার বা বিভিন্ন আকার ও গঠন বলে দেওয়া । তবে অনেক সময় অনেকগুলো কম্পনেন্টের জন্য একই সাইজ দরকার হয় আর এ কারনে লেয়াউট ম্যানেজারের মাধ্যমে তা একই সাথে করা হয় – জাভাতে মুলত ৬ ধরনের লেয়াঊট রয়েছে যার প্রত্যকটি আলাদা আলাদা কাজা / লেয়াঊট দিয়ে থাকে –
1.Flow Layout Manager
2. Border Layout Manager
3. Grid Layout Manager
4. Grid Bag Layout Manager
5.Card Layout Manager
6.Box Layout Manager

এগুলোর মধ্যে Flow Layout manager ডিফল্ট ম্যানেজার হিসেবে কাজ করে থাকে।

Layout manager Description
FlowLayout Default for javax.swing.JPanel. Places components sequentially (left
to right) in the order they were added. It’s also possible to specify the
order of the components by using the Container method add,which
takes a Component and an integer index position as arguments.
BorderLayout Default for JFrames (and other windows). Arranges the components
into five areas: NORTH, SOUTH, EAST , WEST and CENTER.
GridLayout Arranges the components into rows and columns.

BoxLayout A layout manager that allows GUI components to be arranged left-to-
right or top-to-bottom in a container. Class Box declares a container
with BoxLayout as its default layout manager and provides static
methods to create a Box with a horizontal or vertical BoxLayout.
GridBagLayout A layout manager similar to GridLayout, but the components can
vary in size and can be added in any order.
Card layout support all the manager to use in same Layout.

 

লেবেল(Label)

উইডোতে লেবেল প্রদর্শনের জন্য সাধারন্ভাবে লেবেল ব্যাবহার করা হয়-
লেবেল ব্যাবহার করার জন্য সাধারনত তিনটি ফরমেট ব্যাবহার করা হয়ঃ
1. Label()
2. Label(String Text)
3.Label (String Text, int AllignValue)
AllignValue গুলো হলো যথাক্রমে Label.LEFT, Label.RIGHT, Label.CENTER
লেবেল বিশিষ্ট একটি প্রোগ্রাম নিচে দেওয়া হল-
import java.awt.FlowLayout;
import java.awt.Label;

import javax.swing.JFrame;

public class c3 extends JFrame{

c3(){
setLayout(new FlowLayout());
Label lb=new Label(“NSTU”);
Label lb1=new Label(“CSTE”);
Label lbl2=new Label(“Arif Hasnat”);
add(lb);
add(lb1);
add(lbl2);

}
public static void main(String arg[]){

c3 c=new c3();
c.setSize(400, 400);
c.setVisible(true);
c.setDefaultCloseOperation(EXIT_ON_CLOSE);

}
Label
}

গ্রীড লেয়াঊট

GridLayout Arranges the components into rows and columns.
গ্রীড লেয়াঊট ম্যানেজার container কে গ্রীড এ ভাগ করে থাকে তার ফলে কম্পনেন্ট রো ও কলাম এ বিভক্ত হয়।প্রতিটি row and column এর একই width ও height থাকে। row এবং column গুলো বাম পার্শের উপড় থেকে ডান পার্শে বিস্তৃত হতে থাকে । এবং এভাবে চলতে থাকে শেষ পর্যন্ত।

একটি প্রোগ্রামের মাধ্যমে দেখা যাক-
import java.awt.GridLayout;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;

public class GridLayoutFrame extends JFrame implements ActionListener
{
private JButton[] buttons;   private static final String[] names =
{ “one”, “two”, “three”, “four”, “five”, “six” };
private boolean toggle = true;
private Container container;
private GridLayout gridLayout1;
private GridLayout gridLayout2;
public GridLayoutFrame()
{
super( “GridLayout Demo” );
gridLayout1 = new GridLayout( 2, 3, 5, 5 );
gridLayout2 = new GridLayout( 3, 2 );
container = getContentPane();
setLayout( gridLayout1 );
buttons = new JButton[ names.length ];
for ( int count = 0; count < names.length; count++ )
{
buttons[ count ] = new JButton( names[ count ] );
buttons[ count ].addActionListener( this );
add( buttons[ count ] );
}
}
public void actionPerformed( ActionEvent event )
{
if ( toggle )
container.setLayout( gridLayout2 );
else
container.setLayout( gridLayout1 );

toggle = !toggle;
container.validate();
}
}

import javax.swing.JFrame;

public class GridLayoutDemo
{
public static void main( String[] args )
{
GridLayoutFrame gridLayoutFrame = new GridLayoutFrame();
gridLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
gridLayoutFrame.setSize( 300, 200 );
gridLayoutFrame.setVisible( true );
}
}

কোডের ব্যাক্ষা———–

import java.awt.GridLayout;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;

public class GridLayoutFrame extends JFrame implements ActionListener
{
private JButton[] buttons; // array of buttons
private static final String[] names =
{ “one”, “two”, “three”, “four”, “five”, “six” };
private boolean toggle = true; // toggle between two layouts
private Container container; // frame container
private GridLayout gridLayout1; // first gridlayout
private GridLayout gridLayout2; // second gridlayout

// no-argument constructor
public GridLayoutFrame()
{
super( “GridLayout Demo” );
gridLayout1 = new GridLayout( 2, 3, 5, 5 ); // 2 by 3; gaps of 5
gridLayout2 = new GridLayout( 3, 2 ); // 3 by 2; no gaps
container = getContentPane(); // get content pane
setLayout( gridLayout1 ); // set JFrame layout
buttons = new JButton[ names.length ]; // create array of JButtons

for ( int count = 0; count < names.length; count++ )
{
buttons[ count ] = new JButton( names[ count ] );
buttons[ count ].addActionListener( this ); // register listener
add( buttons[ count ] ); // add button to JFrame
} // end for
} // end GridLayoutFrame constructor

// handle button events by toggling between layouts
public void actionPerformed( ActionEvent event )
{
if ( toggle )
container.setLayout( gridLayout2 ); // set layout to second
else
container.setLayout( gridLayout1 ); // set layout to first

toggle = !toggle; // set toggle to opposite value
container.validate(); // re-lay out container
} // end method actionPerformed
} // end class GridLayoutFrame

import javax.swing.JFrame;

public class GridLayoutDemo
{
public static void main( String[] args )
{
GridLayoutFrame gridLayoutFrame = new GridLayoutFrame();
gridLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
gridLayoutFrame.setSize( 300, 200 ); // set frame size
gridLayoutFrame.setVisible( true ); // display frame
} // end main
} // end class GridLayoutDemo

ফ্রেম উইন্ডো

ফ্রেম উইন্ড্রো হল স্ট্যান্ডার্ড উইন্ডো যাতে টাইটেল্বার , মেনুবার, বর্ডার থাকে । Frame class এর দুটি method সচারচর ব্যাবহার করা হয়।
Frame()
Frame(String title)

এখানে একটি প্রোগ্রাম দেওয়া হল যার মাধ্যমে বিষয়টা দেখা যাক

import java.awt.Dimension;
import javax.swing.JFrame;

public class c1 extends JFrame{

public static  void main(String arg[]){
JFrame p=new JFrame();//ফ্রেম উইন্ড্রো
p.setSize(new Dimension(400,400));
p.setVisible(true);
p.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

}

Frame Window