জাভা সুইং৷ API-এর একটি সেট যা একটি গ্রাফিকাল ইউজার ইন্টারফেস প্রদান করে (GUI ) জাভা প্রোগ্রামের জন্য। জাভা সুইং অ্যাবস্ট্রাক্ট উইন্ডোজ টুল নামে আগের API-এর উপর ভিত্তি করে তৈরি করা হয়েছিল এটি (AWT)। জাভা সুইং AWT-এর তুলনায় আরও সমৃদ্ধ এবং আরও পরিশীলিত GUI উপাদান সরবরাহ করে। GUI উপাদানগুলি একটি সরল স্তর থেকে জটিল বিস্তৃত গাছ এবং টেবিল . জাভা সুইং প্লাগযোগ্য চেহারা এবং অনুভূতি প্রদান করে অন্তর্নিহিত প্ল্যাটফর্ম থেকে স্বাধীন জাভা প্রোগ্রামের চেহারা এবং অনুভূতির অনুমতি দিতে।
জাভা সুইং এর বৈশিষ্ট্যগুলি
জাভা সুইং প্ল্যাটফর্ম স্বাধীন এবং MVC (মডেল ভিউ এবং কন্ট্রোলার) ফ্রেমওয়ার্ক অনুসরণ করে।
- প্লাগেবল চেহারা এবং অনুভূতি - জাভা সুইং বেশ কিছু দেখতে এবং অনুভব করে সমর্থন করে এবং বর্তমানে Windows সমর্থন করে , UNIX , মোটিফ , এবংনেটিভ জাভা মেটাল চেহারা এবং অনুভূতি এবং ব্যবহারকারীদের অ্যাপ্লিকেশনটি পুনরায় চালু না করে রানটাইমে চেহারা এবং অনুভূতি পরিবর্তন করতে দেয়। এটি করার মাধ্যমে, ব্যবহারকারীরা তাৎক্ষণিকভাবে তাদের জন্য সেরা চেহারা এবং অনুভূতি বেছে নেওয়ার জন্য তাদের নিজস্ব পছন্দ করতে পারেন।
- হালকা উপাদান - সমস্ত জাভা সুইং উপাদান হালকা কিছু শীর্ষ-স্তরের পাত্রে ছাড়া . একটি হালকা মানে গ্রাফিক্স -এর অঙ্কন আদিম ব্যবহার করে কম্পোনেন্ট রেন্ডার বা পেইন্ট করা হোস্ট অপারেটিং সিস্টেমের উপর নির্ভর করার পরিবর্তে বস্তু (OS ) ফলস্বরূপ, অ্যাপ্লিকেশন উপস্থাপনা দ্রুত রেন্ডার করা হয় এবং কম মেমরি খরচ করে পূর্ববর্তী জাভা GUI অ্যাপ্লিকেশন যেমন AWT. থেকে
- সরলীকৃত MVC - জাভা সুইং একটি সরলীকৃত মডেল-ভিউ-কন্ট্রোলার আর্কিটেকচার ব্যবহার করে (MVC ) এর প্রতিটি উপাদানের পিছনে মূল নকশা হিসাবে যাকে বলা হয় মডেল-ডেলিগেট . এই আর্কিটেকচারের উপর ভিত্তি করে, প্রতিটি জাভা সুইং উপাদানে একটি মডেল থাকে এবং একটি UI প্রতিনিধি এবং একটি ভিউ মোড়ানো এবং একটি নিয়ন্ত্রক MVC -এ স্থাপত্য . UI প্রতিনিধি৷ স্ক্রীন পেইন্টিং এবং GUI ইভেন্ট পরিচালনার জন্য দায়ী। মডেল তথ্য বা উপাদানের অবস্থা বজায় রাখার দায়িত্বে রয়েছে৷
উদাহরণ
import javax.swing.*; import java.awt.*; import java.awt.event.*; // model part class Model { private int x; public Model() { x = 0; } public Model(int x) { this.x = x; } public void setX(){ x++; } public int getX() { return x; } } // view part class View { private JFrame frame; private JLabel label; private JButton button; public View(String text) { frame = new JFrame("View"); frame.getContentPane().setLayout(new BorderLayout()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200,200); frame.setVisible(true); label = new JLabel(text); frame.getContentPane().add(label, BorderLayout.CENTER); button = new JButton("Button"); frame.getContentPane().add(button, BorderLayout.SOUTH); } public JButton getButton() { return button; } public void setText(String text) { label.setText(text); } } // controller part class Controller { private Model model; private View view; private ActionListener actionListener; public Controller(Model model, View view) { this.model = model; this.view = view; } public void contol() { actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { linkBtnAndLabel(); } }; view.getButton().addActionListener(actionListener); } private void linkBtnAndLabel() { model.setX(); view.setText(Integer.toString(model.getX())); } } // main class public class Main { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { try { // Look and Feel, Java Look and Feel UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception ex) { } Model model = new Model(0); View view = new View("-"); Controller controller = new Controller(model,view); controller.contol(); } }); } }
আউটপুট