2010-12-15 9 views
5

मेरे कोशिश के रूप में निम्नानुसार है, जो कुछ भी साथ नहीं आता है:जावा में स्विट के साथ एक छवि कैसे दिखाना है?

public static void main(String[] args) { 
    Display display = new Display(); 
    Shell shell = new Shell(display); 

    Image image = new Image(display, 
     "D:/topic.png"); 
    GC gc = new GC(image); 
    gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE)); 
    gc.drawText("I've been drawn on",0,0,true); 
    gc.dispose(); 

    shell.pack(); 
    shell.open(); 

    while (!shell.isDisposed()) { 
     if (!display.readAndDispatch()) { 
      display.sleep(); 
     } 
    } 
    display.dispose(); 
    // TODO Auto-generated method stub 
} 
+0

यह नहीं लगती है कि आप वास्तव में कुछ भी प्रदर्शित कर रहे हैं की तरह ... – Robert

+0

मैं छवि दिखाना चाहते हैं के साथ आता है। .. – lex

उत्तर

5

उदाहरण के लिए SWT-Snippets देखें। This one एक छवि लेबल

Shell shell = new Shell (display); 
Label label = new Label (shell, SWT.BORDER); 
label.setImage (image); 
+0

लेकिन मैं एक पॉपअप विंडो में छवि दिखाना चाहता हूं, लेबल के रूप में नहीं। – lex

+0

कोड आज़माएं, यह वही करता है जो आप चाहते हैं। लेबल द्वारा भ्रमित न हों :) –

+0

मैंने कोड की कोशिश की, कोई छवि पॉप अप नहीं हो रही है .. – lex

2

का उपयोग करता है आप अपने कोड में एक बात याद कर रहे हैं। पेंट के लिए इवेंट हैंडलर। आम तौर पर जब आप कोई घटक बनाते हैं तो यह एक पेंट इवेंट उत्पन्न करता है। सभी ड्राइंग संबंधित सामान इसमें जाना चाहिए। इसके अलावा, आप स्पष्ट रूप से जीसी बनाने के लिए नहीं की जरूरत है .. यह घटना वस्तु :)

import org.eclipse.swt.*; 
import org.eclipse.swt.graphics.*; 
import org.eclipse.swt.layout.*; 
import org.eclipse.swt.widgets.*; 

public class ImageX 
{ 
    public static void main (String [] args) 
    { 
     Display display = new Display(); 
     Shell shell = new Shell (display, SWT.SHELL_TRIM | SWT.DOUBLE_BUFFERED); 
     shell.setLayout(new FillLayout()); 
     final Image image = new Image(display, "C:\\temp\\flyimage1.png"); 

     shell.addListener (SWT.Paint, new Listener() 
     { 
      public void handleEvent (Event e) { 
       GC gc = e.gc; 
       int x = 10, y = 10; 
       gc.drawImage (image, x, y); 
       gc.dispose(); 
      } 
     }); 

     shell.setSize (600, 400); 
     shell.open(); 
     while (!shell.isDisposed()) { 
      if (!display.readAndDispatch()) 
       display.sleep(); 
     } 

     if(image != null && !image.isDisposed()) 
      image.dispose(); 
     display.dispose(); 
    } 

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