মনিটরের রেজোলিউশন নির্বিশেষে কীভাবে জেফ্রেমকে কেন্দ্রিক উপস্থিত হতে সেট করবেন? [বন্ধ]


197

জাভা নিয়ে কাজ করার সময়, আমি যখন অ্যাপ্লিকেশন শুরু করব তখন আমার প্রধান উইন্ডোটি স্ক্রিনের মাঝখানে স্থাপন করা কঠিন।

আমি কি এমন কোনও উপায় করতে পারি? এটি উল্লম্বভাবে কেন্দ্রীভূত হতে হবে না, অনুভূমিক সারিবদ্ধতা আমার জন্য আরও গুরুত্বপূর্ণ লক্ষ্য। উল্লম্ব সারিবদ্ধকরণও স্বাগত।

উত্তর:


232

আমি সবসময় এটি এইভাবে করেছিলাম:

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);

thisজেফ্রেমে কোথায় জড়িত রয়েছে।


1
আমি জানি এই উত্তরটি আসলেই পুরানো তবে স্থির প্রসঙ্গে এটি করার কোনও সম্ভাব্য উপায় আছে কি? আমি সেই দিকে কাজ করার মধ্যে বা কেবলমাত্র যে কারণেই ব্যবহার করতে চেয়েছি তা পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) বাদ দেওয়ার মধ্যে সিদ্ধান্ত নিচ্ছি।
2xedo

14
এটি একটি একক মনিটর সেটআপে কাজ করবে, তবে দ্বৈত মনিটরের সাথে এটি দু'জনকে স্তম্ভিত করে প্রদর্শিত হতে পারে (ধরে নিলে তারা একই রেজোলিউশন)। ব্যবহার setLocationRelativeTo(null)এমনকি একটি একাধিক মনিটরে সেটআপ প্রাথমিক মনিটর তে এটি কেন্দ্রীভূত হবে।
রাঙ্গী কেইন

1
মনে রাখবেন যে এটি কেন্দ্রের আগে আপনাকে অবশ্যই JFrame দৃশ্যমান সেট করতে হবে।
হান্টার এস

4
@ হান্টারস: এটি ভুল। বাস্তবে, আপনি এটি কেন্দ্রের পরে এটি দৃশ্যমান সেট না করার পরামর্শ দেওয়া হচ্ছে। এইভাবে এটি প্রদর্শিত হবে না এবং তারপরে চারপাশে লাফিয়ে উঠবে। যতক্ষণ আপনি এই উত্তরে কোডের আগে ফ্রেম প্যাক করেছেন বা মাত্রা নির্ধারণ করেছেন ততক্ষণ আপনি ভাল থাকবেন।
এরিক রবার্টসন

520

ব্যবহার setLocationRelativeTo(null)

আপনি যখন এটি পাস করেন তখন এই পদ্ধতিটির একটি বিশেষ প্রভাব রয়েছে null। জাভাডোকের মতে:

যদি উপাদানটি শূন্য হয়, বা এই উপাদানটির সাথে সম্পর্কিত গ্রাফিকস কনফিগারেশন নাল হয়, উইন্ডোটি স্ক্রিনের মাঝখানে স্থাপন করা হবে।

এটি আকার বা কল করার পরে করা উচিত pack(), তবে এটি দৃশ্যমান সেট করার আগে এই জাতীয়:

frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

102
প্যাক () পদ্ধতিটি ব্যবহার করা হলে +1, setLocationRelativeToপ্যাক () পদ্ধতি কল করার পরে ব্যবহার করা উচিত
রবীন্দ্র গুললাপল্লি

6
@ ইমরে কারণ সম্ভবত এটি দ্বৈত মনিটরের কনফিগারেশন নিয়ে কাজ করে না। : পি
অঙ্কিত

17
দেখে মনে হচ্ছে সেই পদ্ধতিটি পরে কল করা উচিত .setSize()
কামিল

6
এটি একটি মাল্টি-মনিটর সেটআপে কাজ করে এবং মন্তব্যগুলিতে যেমন বলা হয়েছে এটি অবশ্যই প্যাক () এবং সেটসাইজ () পরে ডাকা হবে যদি তাদের বলা হয়।
পল গ্রেগোয়ার

2
@ অঙ্কিত এটি আমার ডুয়াল মনিটর সেটআপের সাথে পুরোপুরি কাজ করে। "সেরা" উত্তরটি সর্বদা ওপি দ্বারা চয়ন করা হয়।
ক্যান্ট

59

আপনি JFrame.setLocationRelativeTo(null)উইন্ডোটি কেন্দ্রে কল করতে পারেন । এটি আগে রাখার বিষয়টি নিশ্চিত করুনJFrame.setVisible(true)


20
প্যাক () পদ্ধতিটি ব্যবহার করা হলে +1, setLocationRelativeToপ্যাক () পদ্ধতি কল করার পরে ব্যবহার করা উচিত
রবীন্দ্র গুললাপল্লি

29

কেবল ফর্মটিতে ক্লিক করুন এবং জেফ্রেম বৈশিষ্ট্যগুলিতে যান, তারপরে কোড ট্যাব এবং চেক করুন Generate Center

এখানে চিত্র বর্ণনা লিখুন


আমি এই সম্পর্কে কখনই ভাবিনি। যাইহোক, আমরা এই ক্লিক করার পরে নিজের পিছনে কাজ করা কোডটি কীভাবে ....? @ হেনকভানবোইজেন
গুমুরুহ

11

এই হিসাবে সহজ ...

setSize(220, 400);
setLocationRelativeTo(null);  

অথবা আপনি যদি কোনও ফ্রেম ব্যবহার করছেন তবে ফ্রেমটি সেট করুন

frame.setSize(220, 400);
frame.setLocationRelativeTo(null);  

দস্তাবেজগুলি থেকে স্পষ্ট করার জন্য :

যদি উপাদানটি শূন্য হয়, বা এই উপাদানটির সাথে সম্পর্কিত গ্রাফিকস কনফিগারেশন নাল হয়, উইন্ডোটি স্ক্রিনের মাঝখানে স্থাপন করা হবে।


7

আমি নেটবিয়ানস আইডিই 7.2.1 আমার বিকাশকারী পরিবেশগত হিসাবে ব্যবহার করছি এবং সেখানে আপনার কাছে জেএফর্ম বৈশিষ্ট্যগুলি কনফিগার করার বিকল্প রয়েছে।

জেএফর্ম প্রোপার্টিগুলিতে 'কোড' ট্যাবে যান এবং 'জেনারেট সেন্টার' কনফিগার করুন। আপনাকে প্রথমে 'পুনরায় আকার কোড উত্পন্ন করতে' ফর্ম আকারের নীতি সেট করতে হবে।


6

আমি নেটবিয়ান আইডিই 7.৩ ব্যবহার করছি এবং এইভাবে আমি আমার জেফ্রেমকে কেন্দ্রীভূত করার বিষয়ে যাচ্ছি তা নিশ্চিত করুন যে আপনি জেফ্রেম প্যানেলে ক্লিক করেছেন এবং আপনার জেফ্রেম সম্পত্তি বারে যান, কোড বারে ক্লিক করুন এবং জেনারেট সেন্টার চেক বাক্সটি নির্বাচন করুন।


2

আপনি যদি নেটবীণ ব্যবহার করেন তবে কেবল নকশার দৃশ্যে ফ্রেমটিতে ক্লিক করুন, তারপরে তার বৈশিষ্ট্যগুলির কোড ট্যাব। এরপরে, 'জেনারেট সেন্টার' পরীক্ষা করুন। যে কাজ শেষ হবে।


1

আপনি যদি স্পষ্ট করে থাকেন setPreferredSize(new Dimension(X, Y));তবে এটি ব্যবহার করা ভাল:

setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);


1

আপনি এই পদ্ধতিটি ব্যবহার করতে পারেন, যা জেফ্রেমকে একই সাথে কেন্দ্রিক এবং পূর্ণ পর্দার অনুমতি দেয়।

yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);

0

নেট বিনের জিইউআইতে - জাফ্রেমে যান ( নেভিগেটরে জেফ্রেমে ডান ক্লিক করুন ) বৈশিষ্ট্যগুলিতে কোডের অধীনে , আকারের নীতি সম্পর্কিত সম্পত্তি জেনারেট রেজাইজ কোড নির্বাচন করুন । একই উইন্ডোতে, আনটিক জেনারেট পজিশন এবং টিক জেনারেট আকার এবং সেন্টার

প্রোগ্রামিং উপভোগ করুন। রামানা

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.