কম্পিউটার

জাভাতে GridBagConstraints ক্লাসের গুরুত্ব কী?


একটি গ্রিডব্যাগ লেআউট একটি অত্যন্ত নমনীয় লেআউট ম্যানেজার যা আমাদের সীমাবদ্ধতা ব্যবহার করে একে অপরের সাথে সম্পর্কিত উপাদানগুলিকে অবস্থান করতে দেয় . প্রতিটি GridBagLayout কোষের একটি গতিশীল আয়তক্ষেত্রাকার গ্রিড ব্যবহার করে যার প্রতিটি উপাদান এক বা একাধিক কোষ ধারণ করে যার প্রদর্শন এলাকা বলা হয়। একটি GridBagLayout দ্বারা পরিচালিত প্রতিটি উপাদান৷ একটি GridBag Constraints এর সাথে যুক্ত উদাহরণ যেটি নির্দিষ্ট করে কিভাবে কম্পোনেন্টটি তার ডিসপ্লে এলাকার মধ্যে রাখা হয়।

গ্রিডব্যাগ সীমাবদ্ধতা

আমরা একটি GridBag Constraints কাস্টমাইজ করতে পারি বস্তুর এক বা একাধিক পাবলিক ইনস্ট্যান্স ভেরিয়েবল সেট করে। এই ভেরিয়েবলগুলি অবস্থান, আকার, বৃদ্ধির ফ্যাক্টর, অ্যাঙ্কর, ইনসেট, ফিলিং এবং প্যাডিং উপাদানগুলি নির্দিষ্ট করে .

  • gridx :একটি int মান যা কম্পোনেন্টটি দখল করে থাকা বামতম কক্ষটি নির্দিষ্ট করে। gridx কলামটি নির্দিষ্ট করে যেখানে উপাদানটি স্থাপন করা হবে।
  • গ্রিডি :একটি int মান যা শীর্ষস্থানীয় কক্ষটি নির্দিষ্ট করে যা উপাদানটি দখল করে। গ্রিডি যে সারিটিতে এটি স্থাপন করা হবে তা নির্দিষ্ট করে৷
  • গ্রিডহাইট :একটি int মান যা উল্লম্ব কক্ষের সংখ্যা নির্দিষ্ট করে যা একটি উপাদান দখল করে।
  • গ্রিডউইথ :একটি int মান যা অনুভূমিক কক্ষের সংখ্যা নির্দিষ্ট করে যা একটি উপাদান দখল করে।
  • ipadx :একটি int মান যা প্রতিটি নিয়ন্ত্রণে যোগ করার জন্য অভ্যন্তরীণ অনুভূমিক প্যাডিংয়ের পরিমাণ নির্দিষ্ট করে৷
  • ipady :একটি int মান যা প্রতিটি নিয়ন্ত্রণে যোগ করার জন্য অভ্যন্তরীণ উল্লম্ব প্যাডিংয়ের পরিমাণ নির্দিষ্ট করে৷
  • ইনসেট :একটি ইনসেট অবজেক্ট যা কক্ষের প্রতিটি পাশে খালি স্থানের পরিমাণ নির্দিষ্ট করে৷
  • weightx :একটি দ্বিগুণ মান যা নির্দিষ্ট করে যে কিভাবে অতিরিক্ত অনুভূমিক স্থান বন্টন করা হয় যদি ফলাফলের লেআউটটি বরাদ্দকৃত এলাকার চেয়ে অনুভূমিকভাবে ছোট হয়।
  • ভারী :একটি দ্বিগুণ মান যা নির্দিষ্ট করে যে কিভাবে অতিরিক্ত উল্লম্ব স্থান বিতরণ করা হয় যদি ফলাফলের লেআউটটি বরাদ্দকৃত এলাকার চেয়ে উল্লম্বভাবে ছোট হয়।
  • অ্যাঙ্কর :একটি int মান যা একটি ঘরের মধ্যে একটি উপাদানের প্রান্তিককরণ নির্দিষ্ট করে৷
  • পূর্ণ করুন :একটি int মান যা একটি ঘরে অতিরিক্ত স্থান দিয়ে কী করতে হবে তা নির্দিষ্ট করে৷
  • আত্মীয় :গ্রিডএক্স এবং গ্রিডি ক্ষেত্রগুলির জন্য, এই ক্ষেত্রটি নির্দিষ্ট করে যে উপাদানটি শেষ যোগ করা উপাদানের পাশে স্থাপন করা হবে। গ্রিডউইথ এবং গ্রিডহাইট ক্ষেত্রগুলির জন্য, এই ক্ষেত্রটি নির্দিষ্ট করে যে কম্পোনেন্টটি সারি বা কলামে পরবর্তী থেকে শেষ কম্পোনেন্ট হবে।
  • অবশিষ্ট :গ্রিডউইথ এবং গ্রিডহাইট ক্ষেত্রগুলির জন্য, এই ক্ষেত্রটি নির্দিষ্ট করে যে একটি উপাদান একটি সারি বা কলামের শেষ উপাদান৷

উদাহরণ

import java.awt.*;
import javax.swing.*;
public class GridBagLayoutTest {
   public static void main(String[] a) {
      JFrame frame = new JFrame("GridBagLayout Test");
      Container myPane = frame.getContentPane();
      myPane.setLayout(new GridBagLayout());
      GridBagConstraints c = new GridBagConstraints();
      setMyConstraints(c,0,0,GridBagConstraints.CENTER);
      myPane.add(getFieldPanel(),c);
      setMyConstraints(c,0,1,GridBagConstraints.CENTER);
      myPane.add(getButtonPanel(),c);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(300, 250);
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }
   private static JPanel getFieldPanel() {
      JPanel p = new JPanel(new GridBagLayout());
      p.setBorder(BorderFactory.createTitledBorder("Details"));
      GridBagConstraints c = new GridBagConstraints();
      setMyConstraints(c,0,0,GridBagConstraints.EAST);
      p.add(new JLabel("Name:"),c);
      setMyConstraints(c,1,0,GridBagConstraints.WEST);
      p.add(new JTextField(16),c);
      setMyConstraints(c,0,1,GridBagConstraints.EAST);
      p.add(new JLabel("System:"),c);
      setMyConstraints(c,1,1,GridBagConstraints.WEST);
      p.add(getSystemPanel(),c);
      setMyConstraints(c,0,2,GridBagConstraints.EAST);
      p.add(new JLabel("Language:"),c);
      setMyConstraints(c,1,2,GridBagConstraints.WEST);
      p.add(getLanguagePanel(),c);
      setMyConstraints(c,0,3,GridBagConstraints.EAST);
      p.add(new JLabel("Year:"),c);
      setMyConstraints(c,1,3,GridBagConstraints.WEST);
      p.add(new JComboBox(new String[] {"2019","2020","2021"}),c);
      return p;
   }
   private static JPanel getButtonPanel() {
      JPanel p = new JPanel(new GridBagLayout());
      p.add(new JButton("OK"));
      p.add(new JButton("Cancel"));
      return p;
   }
   private static JPanel getSystemPanel() {
      JRadioButton winButton = new JRadioButton("Windows",true);
      JRadioButton macButton = new JRadioButton("Mac",false);
      ButtonGroup systemGroup = new ButtonGroup();
      systemGroup.add(winButton);
      systemGroup.add(macButton);
      JPanel p = new JPanel(new GridBagLayout());
      p.add(winButton);
      p.add(macButton);
      return p;
   }
   private static JPanel getLanguagePanel() {
     JPanel p = new JPanel(new GridBagLayout());
      p.add(new JCheckBox("Java",true));
      p.add(new JCheckBox("Python",true));
      p.add(new JCheckBox("Spark",false));
      return p;
   }
   private static void setMyConstraints(GridBagConstraints c, int gridx, int gridy, int anchor) {
      c.gridx = gridx;
      c.gridy = gridy;
      c.anchor = anchor;
   }
}

আউটপুট

জাভাতে GridBagConstraints ক্লাসের গুরুত্ব কী?



  1. জাভাতে কন্টেইনার ক্লাসের গুরুত্ব কী?

  2. জাভাতে কার্ডলেআউট ক্লাসের গুরুত্ব কী?

  3. জাভাতে সুইং ওয়ার্কার ক্লাসের গুরুত্ব কী?

  4. জাভাতে সুইং ইউটিলিটি ক্লাসের গুরুত্ব কী?