setSize()এবং এর মধ্যে প্রধান পার্থক্য কী setPreferredSize()। কখনও কখনও আমি ব্যবহার করি setSize(), কখনও setPreferredSize()কখনও কখনও কখনও আমি যা চাই তা করি, কখনও কখনও অন্যটি।
JFrameএস এবং JPanelএস এর জন্য আমার কোন কলটি ব্যবহার করা উচিত ?
setSize()এবং এর মধ্যে প্রধান পার্থক্য কী setPreferredSize()। কখনও কখনও আমি ব্যবহার করি setSize(), কখনও setPreferredSize()কখনও কখনও কখনও আমি যা চাই তা করি, কখনও কখনও অন্যটি।
JFrameএস এবং JPanelএস এর জন্য আমার কোন কলটি ব্যবহার করা উচিত ?
উত্তর:
উপাদানটির পিতামাতার একটি বিন্যাস পরিচালক আছে কি না তার উপর নির্ভর করে।
setSize() - যখন প্যারেন্ট লেআউট ম্যানেজার উপস্থিত না থাকে তখন ব্যবহার করুন;setPreferredSize()(এছাড়াও এটি সম্পর্কিত setMinimumSizeএবং setMaximumSize) - যখন কোনও প্যারেন্ট লেআউট ম্যানেজার উপস্থিত থাকে তখন ব্যবহার করুন।setSize()যদি কম্পোনেন্ট এর অভিভাবক একটি লেআউট ম্যানেজার ব্যবহার করছে পদ্ধতি সম্ভবত কিছু করতে না; সাধারণত যে জায়গাগুলির এটির প্রভাব থাকবে সেগুলি শীর্ষ স্তরের উপাদান ( JFrameগুলি এবং JWindowগুলি) এবং যে জিনিসগুলি স্ক্রোলড প্যানগুলির অভ্যন্তরে রয়েছে সেগুলিতে হবে। setSize()কোনও লেআউট ম্যানেজার ছাড়াই পিতামাতার ভিতরে উপাদানগুলি পেয়ে থাকলে আপনাকে অবশ্যই কল করতে হবে ।
setPreferredSize()কোনও লেআউট ম্যানেজার উপস্থিত থাকলে সাধারণত প্রত্যাশা অনুযায়ী উপাদানগুলি সাজিয়ে রাখবেন; বেশিরভাগ লেআউট ম্যানেজাররা তাদের উপাদানগুলির পছন্দসই (পাশাপাশি সর্বনিম্ন এবং সর্বাধিক) মাপগুলি পেয়ে কাজ করেন, তারপরে লেআউটটির বিধি অনুযায়ী সেই উপাদানগুলি ব্যবহার করে setSize()এবং setLocation()অবস্থান নির্ধারণ করে।
উদাহরণস্বরূপ, একটি BorderLayout"উত্তর" অঞ্চলের সীমানাটিকে তার উত্তর উপাদানটির পছন্দসই আকারের সমান করার চেষ্টা করে --- এগুলি JFrameঅন্য উপাদানগুলির আকারের উপর নির্ভর করে তার চেয়ে বড় বা ছোট হতে পারে লেআউটে এবং অন্যান্য।
setSize()বা setBounds()কোনও লেআউট ম্যানেজার ব্যবহার না করা অবস্থায় ব্যবহার করা যেতে পারে।
যাইহোক, যদি আপনি একটি লেআউট ম্যানেজার ব্যবহার করছেন আপনি ব্যবহার বিন্যাস ম্যানেজারের সাথে নির্দেশ প্রদান করতে পারেন setXXXSize()মত পদ্ধতি setPreferredSize()এবং setMinimumSize()ইত্যাদি
এবং নিশ্চিত হয়ে নিন যে উপাদানটির ধারক একটি বিন্যাস পরিচালক ব্যবহার করেছে যা অনুরোধ করা আকারকে সম্মান করে। FlowLayout, GridBagLayout, এবং SpringLayoutপরিচালকদের উপাদান পছন্দের আকার (শেষের দুইজন সীমাবদ্ধতার আপনাকে সেট উপর নির্ভর করে), কিন্তু ব্যবহার BorderLayoutএবং GridLayoutসাধারণত আপনি don't.If একটি উপাদান ইতিমধ্যে দৃশ্যমান যে জন্য নতুন আকারের হিন্ট উল্লেখ, আপনি revalidate পদ্ধতি ডাকা প্রয়োজন এটির পুনরুক্তিটি আবার তৈরি করা হয়েছে তা নিশ্চিত করা। তারপরে পুনরায় রঙ করার পদ্ধতিটি শুরু করুন।
setSize উপাদানটিকে নির্দিষ্ট আকারে পুনরায় আকার দেবে।
setPreferredSizeপছন্দসই আকার নির্ধারণ করে। উপাদানটি কন্টেইনারে থাকা আকারের উপর নির্ভর করে প্রকৃতপক্ষে এই আকারটি নাও থাকতে পারে বা ব্যবহারকারী নিজেই উপাদানটিকে পুনরায় আকার দিতে পারে।
আইআইআরসি ...
setSize উপাদানটির আকার নির্ধারণ করে।
setPreferredSizeপছন্দসই আকার নির্ধারণ করে। লেআউটম্যানার আপনার উপাদানগুলির জন্য এত জায়গার ব্যবস্থা করার চেষ্টা করবে।
এটি আপনি কোনও লেআউট ম্যানেজার ব্যবহার করছেন কিনা তা নির্ভর করে ...