2014-10-07 11 views
5

निम्नलिखित कोड को देखते हुए:के तरीके को समझना drawLine काम करता है

import javax.swing.*; 
import java.awt.*; 

public class NewClass extends JPanel { 
    public void paintComponent(Graphics g) { 
     g.drawLine(0, 0, 90, 90); 
    } 

    public static void main(String[] args) { 
     JFrame jf = new JFrame(); 
     jf.add(new NewClass()); 
     jf.setSize(500, 500); 
     jf.setVisible(true); 
    } 
} 

यह एक लाइन क्यों आकर्षित करता है तो विधि drawLine सार है और, जैसा कि मैंने समझने के लिए, एक सार विधि कोई परिभाषा है में कामयाब रहे?

अग्रिम धन्यवाद!

+0

इसके प्लोमोर्फिज्म को पारित किया जाता है। कुछ उप वर्ग जो उस विधि को लागू करते हैं उन्हें –

+0

में 'super.paintComponent (g)' नहीं कहा जाना चाहिए, 'पेंटकंपोनेंट (ग्राफिक्स जी)' विधि में? बस सोच रहा। – EpicPandaForce

उत्तर

3

paintComponent()Graphics का एक गैर-सार उप-वर्ग प्राप्त करता है, जो drawLine() लागू करता है। इसे एक गैर-सार उप-वर्ग प्राप्त करना चाहिए, क्योंकि एक अमूर्त वर्ग को तत्काल नहीं किया जा सकता है।

+4

और वास्तविक कार्यान्वयन कोड मंच विशिष्ट होगा, और ओओपीएस और बहुरूपता के जादू के कारण, हम इसकी आंतरिक संरचना को जानने के बिना आसानी से इसका उपयोग कर सकते हैं। 1 + –

2
public void paintComponent(Graphics g) 

यहाँ ग्राफिक्स सार विधि drawLine है कि एक शरीर को लागू किया है, लेकिन इसके उपवर्गों drawLine के लिए ठोस कार्यान्वयन है नहीं है की है। जब पेंट कॉम्पोनेंट कहा जाता है, ग्राफिक्स के उपयुक्त गैर-सारणु उप-वर्ग का उद्देश्य

संबंधित मुद्दे