जब मैं जावा जीयूआई बनाने सीखा:क्या मुझे जेएफआरएएम या इसकी सामग्री में घटक जोड़ना चाहिए?
class Example extends JFrame {
Example() {
JPanel panel = new JPanel();
this.add(panel);
// Create components here and add them to panel
// Perhaps also change the layoutmanager of panel
this.pack();
this.setVisibility(true);
}
public static void main(String[] args) {
new Example();
}
}
: मेरा पहला जावा पाठ्यक्रम में है, मैं
JFrame
उदाहरणों के रूप में मेरे विंडो बनाने, और फिर जोड़ने के एक प्रत्येक
JFrame
को
JPanel
और अंत में
JPanel
करने के लिए सभी GUI घटक जोड़ने के लिए सिखाया गया था
मैं हमेशा "अच्छा, यह थोड़ा गंध करता है; मुझे एक कंटेनर होने के लिए एक अतिरिक्त वस्तु बनाना पसंद नहीं है," लेकिन मुझे ऐसा करने का कोई और तरीका नहीं पता था इसलिए मैं बस इसके साथ चला गया। हाल ही में, जब मैं इस "पैटर्न" से अधिक ठोकर खाई तक:
class AnotherExample extends JFrame {
AnotherExample() {
Container pane = this.getContentPane();
// Add components to and change layout of pane instead
this.pack();
this.setVisibility(true);
}
public static void main(String[] args) {
new AnotherExample();
}
}
फिर भी काफी जावा के लिए नया किया जा रहा है, मैं दूसरा दृष्टिकोण के बारे में बेहतर बस, क्योंकि यह एक JPanel
बनाने सिर्फ अन्य घटकों रैप करने के लिए शामिल नहीं करता है लगता है। लेकिन इसके अलावा दृष्टिकोण के बीच वास्तविक मतभेद क्या हैं? क्या उनमें से किसी के पास दूसरे पर कोई बड़ा लाभ है?
अधिक जानकारी के लिए इस ट्यूटोरियल को पढ़ें: http://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html –
ग्रेट ट्यूटोरियल! मैं किसी को भी यह सलाह देता हूं कि इसे पढ़ने के लिए यह प्रश्न मिल जाए। –
कोई फर्क नहीं पड़ता (दोनों खराब हैं, या तो करने की कोई ज़रूरत नहीं है, बस फ्रेम में जोड़ें) - वास्तविक गंध _Frame_ को आगे बढ़ाती है: अच्छा ओएल 'ओओ नियम केवल तभी विस्तार करना है जब कोई आवाज हो - एक रिश्ता (बनाम। केवल उपयोग, जैसा कि सभी गुई अनुप्रयोगों में 99.99% में मामला है) – kleopatra