2012-01-10 5 views
7

पर ग्राफिक्स ऑब्जेक्ट के साथ टेक्स्ट ड्रा करें मैं एक उग्र प्रोग्रामर हूं लेकिन आज मेरा पहला जावा सबक है।जेफ्रेम

public void Paint (Graphics g) 
{ 
    if(g instanceof Graphics2D) 
    { 
     Graphics2D g2d = (Graphics2D)g; 
     g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); 
    } 
    g.drawString("This is gona be awesome", 200, 200); 
} 
ऊपर कोड के साथ

, मैं खिड़की पर एक वाक्य लिखना चाहते हैं लेकिन ऐसा कभी नहीं लिखता है। मैं क्या गलत कर रहा हूं?

संपादित करें: कोई बात नहीं - पेंट पेंट होना चाहिए। मैं profusely माफी माँगता हूँ।

उत्तर

13

में दिया गया कोड, wha टी आप चाहते हैं

g2d.drawString("This is gona be awesome", 200, 200); 
^

एक काम कर उदाहरण आपके संदर्भ के लिए है:

package Experiments; 
import java.awt.Container; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.RenderingHints; 

import javax.swing.JComponent; 
import javax.swing.JFrame; 

public class MainClass{ 
    public static void main(String[] args) { 
    JFrame jf = new JFrame("Demo"); 
    Container cp = jf.getContentPane(); 
    MyCanvas tl = new MyCanvas(); 
    cp.add(tl); 
    jf.setSize(300, 200); 
    jf.setVisible(true); 
    } 
} 

class MyCanvas extends JComponent { 

    @Override 
    public void paintComponent(Graphics g) { 
     if(g instanceof Graphics2D) 
     { 
     Graphics2D g2 = (Graphics2D)g; 
     g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
     RenderingHints.VALUE_ANTIALIAS_ON); 

     g2.drawString("This is gona be awesome",70,20); 
     } 
    } 
} 
+0

तुम लोग धन्यवाद - मैं को कॉपी किया गया है और चिपकाने। शायद मुझे अपने कोड को और कुछ देखना चाहिए! पी। पेंट विधि overrided जाना चाहिए था .... अब आईटी काम करता है फाइन धन्यवाद –

+0

@Sanjay कृपया स्विंग JComponents के लिए मेरी बात '2) पढ़ा वहाँ paintComponent()', तो अपनी पोस्ट, 'blablabla' मैं जानता हूँ कि संशोधन कृपया है कि सभी code_depots में पेंट कॉम्पोनेंट 'balblabla' के बजाय पेंट विधि शामिल है – mKorbel

3

1) संभव नहीं सीधे JFrame को पेंट, आप चित्र कर सकते हैं:

  • स्विंग JComponents के लिए JFrame

2) से वहाँ JPanel

  • getContentPane डाल नहीं है paintComponent()paint() के बजाय, अन्यथा आपकी पेंटिंग नहीं हो सकती corretly drawed

    3) एक और विकल्प हैं:

    • रंग JFrame's GlassPane

    4) अधिक करने के लिए JFrame's RootPane

  • पेंट करने के लिए 2D Graphics ट्यूटोरियल

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