BorderFactory একটি ফ্যাক্টরি ক্লাস যা জাভাতে বিভিন্ন ধরনের বর্ডার প্রদান করে।
বর্ডার প্রকার
- BevelBorder: এই বর্ডার রেইзд বা লোয়ারড বেভেল্ড এজ আঁকে।
- EmptyBorder: এটি কোনো ড্রয়িং করে না, কিন্তু স্পেস নেয়।
- EtchedBorder: একটি লোয়ারড এচড বর্ডার একটি রেক্ট্যাঙ্গেলের আভাস দেয় এবং একটি রেইзд এচড বর্ডার স্ক্রিনের সারফেসের মতো দেখায়।
- LineBorder: একটি কম্পোনেন্টের চারদিকে একটি সিম্পল রেক্ট্যাঙ্গেল আঁকে। আমরা LineBorder কনস্ট্রাক্টরে লাইনের রঙ এবং প্রস্থ নির্দিষ্ট করতে পারি।
- MatteBorder: আমরা একটি নির্দিষ্ট রঙের MatteBorder তৈরি করতে পারি এবং কম্পোনেন্টের বাম, উপর, ডান, এবং নিচে বর্ডার আকার নির্দিষ্ট করতে পারি। একটি MatteBorder আমাদের একটি আইকন পাস করার অনুমতি দেয় যা বর্ডার আঁকতে ব্যবহার হবে। এটি একটি ইমেজ (ImageIcon) বা Icon ইন্টারফেসের অন্য কোনো ইমপ্লিমেন্টেশন হতে পারে।
- TitledBorder: একটি টাইটেলসহ রেগুলার বর্ডার। একটি TitledBorder আসলে বর্ডার আঁকে না; এটি শুধু অন্য একটি বর্ডার অবজেক্টের সাথে মিলিত होकर একটি টাইটেল আঁকে। এই বর্ডার টাইপ জটিল ইন্টারফেসে ভিন্ন কন্ট্রোল সেট গোষ্ঠীভুক্ত করার জন্য বিশেষভাবে উপযোগী।
- কম্পাউন্ড বর্ডার: একটি বর্ডার যাতে দুটি অন্যান্য বর্ডার থাকে। এটি বিশেষভাবে হ্যান্ডি যদি আমরা একটি কম্পোনেন্টকে একটি EmptyBorder-এ এনক্লোজ করতে চাই এবং তারপর সেটার চারদিকে কিছু ডেকোরেটিভ কিছু রাখতে চাই, যেমন একটি EtchedBorder বা একটি MatteBorder।
উদাহরণ
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class BorderFactoryMain {
public static void main(String[] args) {
SwingUtilities.invokeLater(run);
}
static Runnable run = new Runnable() {
@Override
public void run() {
BorderFactoryTest test;
test = new BorderFactoryTest();
test.setVisible(true);
}
};
public static class BorderFactoryTest extends JFrame {
public BorderFactoryTest() {
setTitle("BorderFactory Test");
setSize(350, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
add(createBorderedPanel(BorderFactory.createRaisedBevelBorder(), "createRaisedBevelBorder()"));
add(createBorderedPanel(BorderFactory.createBevelBorder(BevelBorder.LOWERED), "createBevelBorder(BevelBorder.LOWERED)"));
add(createBorderedPanel(BorderFactory.createBevelBorder(BevelBorder.RAISED), "createBevelBorder(BevelBorder.RAISED)"));
add(createBorderedPanel(BorderFactory.createCompoundBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED),BorderFactory.createBevelBorder(BevelBorder.LOWERED)), "createCompoundBorder(RAISED, LOWERED)"));
add(createBorderedPanel(BorderFactory.createEtchedBorder(), "createEtchedBorder()"));
add(createBorderedPanel(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "createEtchedBorder(EtchedBorder.LOWERED)"));
add(createBorderedPanel(BorderFactory.createEtchedBorder(EtchedBorder.RAISED), "createEtchedBorder(EtchedBorder.RAISED)"));
add(createBorderedPanel(BorderFactory.createEtchedBorder(Color.lightGray, Color.yellow), "createEtchedBorder(Color.lightGray, Color.yellow)"));
add(createBorderedPanel(BorderFactory.createLineBorder(Color.red), "createLineBorder(Color.red)"));
add(createBorderedPanel(BorderFactory.createLineBorder(Color.blue, 5), "createLineBorder(Color.blue, 5)"));
add(createBorderedPanel(BorderFactory.createDashedBorder(null), "createDashedBorder(null)"));
setLocationRelativeTo(null);
}
}
private static JPanel createBorderedPanel(Border b, String name) {
JLabel label = new JLabel(name);
JPanel panel = new JPanel();
panel.setBorder(b);
panel.add(label);
return panel;
}
}
আউটপুট
