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 !!

Advertisements

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.

 

GUI program এর একটি অন্যতম উপাদান হল কনটেইনার (Container). Container এর মাধ্যমে সাধারনত বিভিন্ন কম্পনেন্ট ধারন করা হয়। অর্থাৎ বিভিন্ন কম্পনেন্ট যেমন বাটন ,লেবেল গুলোকে window তে ধরে রাখে বা ধারক হিসেবে কাজ করে থাকে , কয়েক ধরনের কন্টেইনার উইনডো গুলোর মধ্যে রয়েছে Applet, Frame,Panel,Window।এদের মধ্যে Applet হল Panel এবং Frame Window Container এর অন্তর্গত।

তাই কন্টেইনার মুলত দুই প্রকার-
1. Panel window ——Applet
2. Window window—— Frame
Panel window :
Panel window একটি সাধারন মানের window যার টাইটেল বার , মেনুবার,এবং অন্যান্য কম্পনেন্ট কিছুই থাকে না । শুধু সাধারন মানের একটি উইন্ডো তৈরি হয় ,সে রকম একটি প্রোগ্রাম দেওয়া হলঃ

import java.applet.Applet;
import java.awt.Dimension;
import java.awt.Panel;

public class c1 extends Applet{

public static  void main(String arg[]){

Panel p=new Panel();
p.setSize(new Dimension(400,400));
p.setVisible(true);
}
}
Component

বর্ডারলেয়াউ

Border Layout Manager

Border Layout  JFramer জন্য ডিফল্ট layout manager. এটি ইন্টারফেসকে 5 টি রিজিয়নে ভাগ করে । উপর থেকে যথাক্রমে NORTH, SOUTH, EAST , WEST and CENTER। North কে ঊপর হিসেবে বিবেচনা করা হয়।

(BorderLayout Default for JFrames (and other windows). Arranges the components
into five areas: NORTH, SOUTH, EAST , WEST and CENTER.)

Border Layout এর সাহায্যে একটি প্রোগ্রাম ও তার ব্যাক্ষ্যা করা হল।
প্রোগ্রামটি কপি করে eclipse এ পেস্ট করলে  ভালো বোঝা যাবে
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;

public class BorderLayoutFrame extends JFrame implements ActionListener
{
private JButton[] buttons;
private static final String[] names = { “Hide North”, “Hide South”,
“Hide East”, “Hide West”, “Hide Center” };
private BorderLayout layout;

public BorderLayoutFrame()
{
super( “BorderLayout Demo” );

layout = new BorderLayout( 5, 5 );
setLayout( layout );
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[ 0 ], BorderLayout.NORTH );
add( buttons[ 1 ], BorderLayout.SOUTH );
add( buttons[ 2 ], BorderLayout.EAST );
add( buttons[ 3 ], BorderLayout.WEST );
add( buttons[ 4 ], BorderLayout.CENTER );
}
public void actionPerformed( ActionEvent event )
{
for ( JButton button : buttons )
{
if ( event.getSource() == button )
button.setVisible( false );

else
button.setVisible( true );
}
layout.layoutContainer( getContentPane() );
}
}

মেন ক্লাস তৈরি করলাম –
import javax.swing.JFrame;

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

এখন প্রোগ্রামটি ব্যাক্ষা করা যাক-

প্রোয়জনীয় হেডার ফাইল গুলো ইমপোর্ট করে নিলাম…
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;
BorderLayoutFrame নামে একটি ক্লাস তৈরি করলাম এবং JFrame extends করলাম এবংActionListener ইম্পিমেন্ট করে নিলাম (ActionListener implement না করেও করা যায় তবে implement করে কাজ করা সুবিঝা জনক)
public class BorderLayoutFrame extends JFrame implements ActionListener
{
বাটনের জন্য ভেরিয়েবল তৈরি করলাম
private JButton[] buttons; // array of buttons to hide portions
কিছু স্টিং নেম নিলাম
private static final String[] names = { “Hide North”, “Hide South”,
“Hide East”, “Hide West”, “Hide Center” };
বর্ডারলেয়ঊট অব্জেক্ট তৈরি করলাম
private BorderLayout layout; // borderlayout object

// set up GUI and event handling
কন্সট্রাক্টর কল করলাম
public BorderLayoutFrame()
{
super( “BorderLayout Demo” );
এখানে আমরা প্রতিটি লেয়াঊটের মাঝ ৫ pixel গ্যাপ ডিক্লেয়ার করলাম(BorderLayout (5,5) হল যথাকরমে হরিজন্টাল ও ভার্টিকাল গ্যাপ)
layout = new BorderLayout( 5, 5 ); // 5 pixel gaps
layout কে ফ্রেমে সেট করলাম।
setLayout( layout ); // set frame layout

আমরা যে স্ট্রিং নেম নিয়েছিলাম তা বাটনে অ্যা্রে হিসেবে সেট করলাম

buttons = new JButton[ names.length ]; // set size of array

এখন যে বাটন তৈরি করেছিলাম তা  লিসেনারে রেজিস্টার করলাম
// create JButtons and register listeners for them
for ( int count = 0; count < names.length; count++ )
{
buttons[ count ] = new JButton( names[ count ] );
buttons[ count ].addActionListener( this );// বাটন গুলোকে actionlistener এ register করলাম
} // end for
এখানে প্রতিটি বাটন আলাদা আলাদা ভাবে রেজিয়ন সেট করে দিলাম। উল্লেখ্য প্রথম বাটন নাম ছিল north তাই আমারা north এ সেট করলাম ,এ ভাবে বাকি গুলোও সেট করলাম
add( buttons[ 0 ], BorderLayout.NORTH ); // add button to north
add( buttons[ 1 ], BorderLayout.SOUTH ); // add button to south
add( buttons[ 2 ], BorderLayout.EAST ); // add button to east
add( buttons[ 3 ], BorderLayout.WEST ); // add button to west
add( buttons[ 4 ], BorderLayout.CENTER ); // add button to center
} // end BorderLayoutFrame constructor

// handle button events

এখানে বাটন গুলো কি কাজ করবে তা বলে দিলাম । যে বাটন্ টি ক্লিক করব তা হাইড হবে।
public void actionPerformed( ActionEvent event )
{
// check event source and lay out content pane correspondingly
for ( JButton button : buttons )
{
যদি বাটন পায় তবে ভিসিব্ল ফলস করে দিলাম তার মাধ্যমে ঐ বাটন্টি আর দেখা যাবে না । আর বাকি গুলো দৃশ্যমান থাকবে।
if ( event.getSource() == button )
button.setVisible( false ); // hide button clicked
else
button.setVisible( true ); // show other buttons
} // end for
লেয়াউটকে container এ সেট করলাম ।উল্লেখ্য কন্টেইনার লেয়াউট ও অন্যান্য কম্পনেন্ট কে ধরে রাখে
layout.layoutContainer( getContentPane() ); // lay out content pane
} // end method actionPerformed
} // end class BorderLayoutFrame

*** আরো একটি ক্লাস তৈরি করলাম এবং তা মেন ক্লাস হিসেবে।এখানে আমরা BorderLayoutFrame call করলাম ***
import javax.swing.JFrame;

public class BorderLayoutDemo
{
public static void main( String[] args )
{
BorderLayoutFrame borderLayoutFrame = new BorderLayoutFrame();
borderLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
borderLayoutFrame.setSize( 300, 200 ); // set frame size
borderLayoutFrame.setVisible( true ); // display frame
} // end main
} // end class BorderLayoutDemo
আশা করি বোঝা গেছে। আর কোন সমস্যা বা পরামর্শ থাকলে কমেন্টের মাধ্যমে জানাবেন আশা করি।

প্রোগ্রামটি রান করলে এরকম দেখাবে
borderLayout