AWT (Abstract Window Toolkit) ব্যবহার করে কাস্টম স্ক্রলবার এবং স্লাইডার তৈরি করা সম্ভব। AWT এর মাধ্যমে কাস্টম GUI কম্পোনেন্ট তৈরি করতে হলে Java-এর গ্রাফিক্স ও ড্রইং কনসেপ্ট ভালোভাবে বুঝতে হবে। নিচে একটি উদাহরণসহ আলোচনা করা হলো।
Custom Scrollbar তৈরি
AWT-এ Canvas এবং Graphics ব্যবহার করে একটি কাস্টম স্ক্রলবার তৈরি করা যায়। নিচের উদাহরণটি একটি সিম্পল স্ক্রলবার তৈরির পদ্ধতি দেখায়:
import java.awt.*;
import java.awt.event.*;
public class CustomScrollbar extends Frame {
private int scrollPosition = 50; // Initial position of scrollbar
public CustomScrollbar() {
setTitle("Custom Scrollbar Example");
setSize(300, 200);
setLayout(null);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// Add a canvas to draw the scrollbar
Canvas canvas = new Canvas() {
public void paint(Graphics g) {
g.setColor(Color.LIGHT_GRAY);
g.fillRect(50, 50, 20, 100); // Scrollbar background
g.setColor(Color.BLUE);
g.fillRect(50, scrollPosition, 20, 20); // Scroll thumb
}
};
canvas.setBounds(0, 0, 300, 200);
add(canvas);
// Add mouse listener for scrolling
canvas.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int y = e.getY();
if (y >= 50 && y <= 150) {
scrollPosition = y - 10; // Adjust thumb position
canvas.repaint();
}
}
});
}
public static void main(String[] args) {
new CustomScrollbar();
}
}
বৈশিষ্ট্য:
- কাস্টম স্ক্রলবার ব্যাকগ্রাউন্ড এবং থাম্ব আঁকা হয়েছে।
- মাউস ইভেন্ট ব্যবহার করে থাম্বের অবস্থান পরিবর্তন করা যায়।
Custom Slider তৈরি
স্লাইডার তৈরি করার জন্যও Canvas এবং মাউস ইভেন্ট ব্যবহার করা যায়। স্লাইডারের জন্য একটি অনুভূমিক লাইন এবং স্লাইডার থাম্ব ব্যবহার করা হয়। নিচে উদাহরণ দেখানো হলো:
import java.awt.*;
import java.awt.event.*;
public class CustomSlider extends Frame {
private int sliderPosition = 100; // Initial slider position
public CustomSlider() {
setTitle("Custom Slider Example");
setSize(300, 200);
setLayout(null);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// Add a canvas to draw the slider
Canvas canvas = new Canvas() {
public void paint(Graphics g) {
g.setColor(Color.LIGHT_GRAY);
g.fillRect(50, 100, 200, 10); // Slider track
g.setColor(Color.RED);
g.fillOval(sliderPosition - 10, 95, 20, 20); // Slider thumb
}
};
canvas.setBounds(0, 0, 300, 200);
add(canvas);
// Add mouse listener for sliding
canvas.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int x = e.getX();
if (x >= 50 && x <= 250) {
sliderPosition = x;
canvas.repaint();
}
}
});
}
public static void main(String[] args) {
new CustomSlider();
}
}
বৈশিষ্ট্য:
- অনুভূমিক ট্র্যাক এবং স্লাইডার থাম্ব কাস্টমাইজ করা হয়েছে।
- মাউস ক্লিক করলে স্লাইডার থাম্ব নতুন অবস্থানে চলে যায়।
বর্ধিত ফিচার যুক্ত করা
- স্ক্রল বা স্লাইড ইভেন্টের জন্য
MouseMotionListenerব্যবহার করা যেতে পারে। - বর্তমান অবস্থান দেখানোর জন্য টেক্সট বা লেবেল যুক্ত করা।
- কাস্টম ডিজাইন করার জন্য রং এবং আকার পরিবর্তন।
AWT-এর সীমাবদ্ধতা কাটিয়ে ওঠার জন্য Swing বা JavaFX ব্যবহার করা আরও উন্নত সমাধান হতে পারে।
Read more