জাভাতে সুইং প্রোগ্রামিং
গত দুটি পর্বে জাভা ল্যাঙ্গুয়েজে উইন্ডো নির্ভর জাভার নতুন টেকনোলজি সুইংয়ের (Swing) ওপর প্রোগ্রাম দেখানো হয়েছে। এ পর্বে সুইং প্রোগ্রাম দিয়ে লেবেল তৈরি করার একটি প্রোগ্রাম দেখানো হবে। আজ সুইং দিয়ে একটি লেখাকে উইন্ডোর বিভিন্ন পজিশনে তার ব্যাকগ্রাউন্ডসহ বিভিন্ন উপায়ে উপস্থাপন করার পদ্ধতি দেখানো হবে।
জাভা প্রোগ্রামে সুইংয়ের ক্লাস, মেথড, ইন্টারফেস ব্যবহার করার জন্য জাভা লাইব্রেরি থেকে সুইং প্যাকেজটিকে ইম্পোর্ট করে নিতে হবে। সেই সাথে এটি উইন্ডো সংক্রান্ত জাভার মূল ক্লাসগুলো থেকে অনেক আপগ্রেডেড এবং এক্সটেনডেড হওয়ায় javax ফোল্ডারের সুইং ফোল্ডারে এর ক্লাসগুলো রাখা আছে। এজন্য সুইং প্যাকেজটিকে ইম্পোর্ট করার জন্য প্রোগ্রামের শুরুতে নিম্নোক্ত লাইনটি লিখতে হবে
import javax.swing.*;
প্রোগ্রামটি রান করার পদ্ধতি অন্যান্য জাভা প্রোগ্রামের মতোই। এজন্য অবশ্যই আপনার কম্পিউটারে Jdk সফটওয়্যার ইনস্টল থাকতে হবে। আমরা সফটওয়্যারটির Jdk1.4 ভার্সন ব্যবহার করব এবং প্রোগ্রামগুলো D:\ ড্রাইভের java ফোল্ডারে সেভ করব ।
নিম্নের এই প্রোগ্রামটি নোটপ্যাডে টাইপ করে SwingLabel.java নামে সেভ করতে হবে।
import java.awt.*;
import javax.swing.*;
class SwingLabel extends JFrame {
public SwingLabel() {
super("SwingLabel");
setSize(600, 100);
JPanel content = (JPanel) getContentPane();
content.setLayout(new GridLayout(1, 4, 4, 4));
JLabel label = new JLabel();
label.setText("You");
label.setBackground(Color.red);
content.add(label);
label = new JLabel("Are", SwingConstants.CENTER);
label.setOpaque(true);
label.setBackground(Color.blue);
content.add(label);
label = new JLabel("Using");
label.setFont(new Font("Helvetica", Font.BOLD, 18));
label.setOpaque(true);
label.setBackground(Color.red);
content.add(label);
label = new JLabel("Swing Label",
SwingConstants.RIGHT);
label.setVerticalTextPosition(SwingConstants.TOP);
label.setOpaque(true);
label.setBackground(Color.yellow);
content.add(label);
}
public static void main(String args[]) {
SwingLabel frame = new SwingLabel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
কোড বিশ্লেষণ
প্রোগ্রামটিতে JFrame-কে extends করা হয়েছে। ফলে একটি উইন্ডো তৈরি হবে। উইন্ডোর টাইটেল বারে Swing Label লেখাটি দেখানোর জন্য এর super ক্লাসে একটি স্ট্রিং Swing Label পাঠানো হচ্ছে যাতে ফ্রেমের টাইটেল বারে তা প্রদর্শিত হয়। প্রোগ্রামে ব্যবহৃত ফ্রেমে বিভিন্ন কনটেন্ট বসানোর জন্য আমরা একটি প্যানেল নেব। প্যানেলে কনটেন্টগুলো সাজানোর জন্য একটি লেআউট নেয়া হচ্ছে যার নাম Grid Layout। জাভাতে কাজের প্রকৃতি অনুসারে আরও বিভিন্ন ধরনের লেআউট ব্যবহার করা যায় যেমন Grid Bag Layout, Box Layout ইত্যাদি। গ্রিড লেআউটের মাধ্যমে এই প্রোগ্রামে একটি রো ও চারটি কলাম তৈরি করা হবে।
এবার লেবেল তৈরির পর্ব। লেবেল তৈরির জন্য label নামে একটি লেবেল অবজেক্ট তৈরি করা হচ্ছে। এই অবজেক্টের মাধ্যমে কী লেবেল আমরা দেখাতে চাই সেটি set Text মেথডে উল্লেখ করা হচ্ছে। এরপর লেবেলের ব্যাকগ্রাউন্ড সাদা রং সেট করে add মেথডের মাধ্যমে তা প্যানেলে সংযুক্ত করা হচ্ছে কিন্তু এখানে set Opaque মেথড ব্যবহার না করায় এর ব্যাকগ্রাউন্ডের কোনো তারতম্য দেখা যাবে না। বাই ডিফল্ট লেবেলটি ১ম কলামের বামদিকে থাকবে।
প্রোগ্রামটিতে আমরা মোট ৪টি লেবেল তৈরি করব, যা একটি প্যানেলে জাভার গ্রিড লেআউটের মাধ্যমে ভিন্নভাবে সাজানো হবে।
২য় লেবেলটি (Are) label অবজেক্ট তৈরির সাথে সাথেই দেয়া হচ্ছে। এই লেবেলটি দ্বিতীয় কলামের মধ্যস্থলে প্রদর্শনের কোড ব্যবহার করা হয়েছে। এরপর লেবেলের ব্যাকগ্রাউন্ড নীল রং সেট করে add মেথডের মাধ্যমে তা প্যানেলে সংযুক্ত করা হচ্ছে। এখানে setOpaque মেথড ব্যবহার করায় এর ব্যাকগ্রাউন্ডের নীল রঙের দেখা যাবে।
৩য় লেবেলটি (Using) একইভাবে add মেথডের মাধ্যমে প্যানেলে সংযুক্ত করা হচ্ছে। এর ব্যাকগ্রাউন্ড দেয়া হয়েছে লাল রঙের। উপরের দুটি লেবেলের সাথে এর একটি পার্থক্য হলো এতে Using লেখাটি নির্দিষ্ট ফন্ট Helvetica, বোল্ড আকারে এবং ফন্ট সাইজ ১৮তে প্রদর্শিত হবে। ৪র্থ লেবেলটি একইভাবে ৪র্থ কলামের ডান পাশে হলুদ ব্যাকগ্রাউন্ডে প্রদর্শন করা হচ্ছে।
সবশেষে মেইন মেথডে Swing Label ক্লাসের অবজেক্ট তৈরি হবে। অবজেক্ট তৈরি হওয়ার সাথে সাথেই উপরের বর্ণনা মোতাবেক কাজগুলো সংঘটিত হবে। মূলত মেইন মেথড থেকেই প্রোগ্রাম রান করে। প্রোগ্রামটি রান করার পর উইন্ডোর ক্লোজ বাটনে ক্লিক করলে যাতে তা পুরোপুরি বন্ধ হয়ে যায় সেজন্য set Default Close Operation (JFrame.EXIT_ON_CLOSE) ব্যবহার করা হয়েছে। এই মেথডটি ব্যবহার না করা হলে ক্লোজ বাটনে ক্লিক করলে উইন্ডোটি দৃশ্যমান না থাকলেও রানিং অবস্থায় থাকে এবং মেমরি ব্যবহার করতে থাকে। এরপর প্রোগ্রামটি রান করার পর যাতে উইন্ডোটি দেখা যায় সেজন্য set Visible (true) কোড ব্যবহার করা হয়েছে। এটি ব্যবহার না করলে উইন্ডো দেখা যাবে না যদিও তা তৈরি হয়।
প্রোগ্রাম রান করা
জাভার আগের প্রোগ্রামগুলোর মতো কমান্ড প্রম্পট ওপেন করে নিচের চিত্রের মতো করে রান করতে হবে।
সামনের পর্বগুলোতে সুইং নির্ভর প্রয়োজনীয় বেশ কিছু প্রোগ্রাম নিয়ে আলোচনা করা হবে।
০ টি মন্তব্য