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

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

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s