package spy;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class ResimDeneme {
    JFrame pen = new JFrame();
    BufferedImage bI;

    public ResimDeneme() {
        pen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pen.setBounds(150, 100, 613, 213);
        pen.setVisible(true);
        try {
            URL url = new URL("http://images2.layoutsparks.com/1/56178/castle-stone-window-grey.jpg");
            bI = ImageIO.read(url.openStream());
            paintComponent(bI.createGraphics());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void paintComponent(Graphics g){
        Graphics2D g2 = (Graphics2D)g;
        g2.drawImage(bI, null, 100, 200);
    }
}

Burada başka yöntemler kullanabiliniyor JLabel üzerinden resimi gösterebiliyorum ancak bu paintComponent metodu ile resimi bitürlü çıkartamadım.Bu paintcompenent metodunu kullanarak nasıl gösterebilirim resmi?

Şimdiden teşekkürler

soruldu: 12 Mar '13, 07:13

spydevil's gravatar image

spydevil
1111
cevap kabul oranı: 0%

değiştirildi: 12 Mar '13, 16:20

CemIkta's gravatar image

CemIkta ♦
19.9k29125190


Oncelikle 2D Graphics Tutorials'i okumanizi tavsiye ederim. Asagidaki ornekte sizin kodlarinizdakinden en onemli fark extends Component yapilmis olmasi ve paint metodu uzeri yazilarak drawImage yapilmasi. Component objesini extends yapmadan da yapilabilir, fakat en kolayi extends Component ile sanirim.

Ayrica Swing Component'lerinde dikkat etmeniz gereken en onemli kural once Component'leri olusturup JFrame Layout'a eklemeniz sonra pack ve setVisible yapmanizdir!


package testImage;

import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.JFrame;

/**
 * Verilen Url'den resim yukler.
 */
public class ResimYukle extends Component {

BufferedImage img;

/**
     * contructor
     * TODO aslinda burdaki Url linki parametrik de alinabilir 
     * farkli resimler yuklemek icin.
     */
    public ResimYukle() {
        try {
            URL url = new URL("http://images2.layoutsparks.com/1/56178/castle-stone-window-grey.jpg");
            img = ImageIO.read(url.openStream());
        } catch (IOException e) {
            System.out.println("Hata olustu: " + e.toString());
        }
    }

/**
     * draw image
     * 
     * @see Component#paint(java.awt.Graphics) 
     * @param g 
     */
    @Override
    public void paint(Graphics g) {
        g.drawImage(img, 0, 0, null);
    }

@Override
    public Dimension getPreferredSize() {
        if (img == null) {
             return new Dimension(100,100);
        } else {
           return new Dimension(img.getWidth(null), img.getHeight(null));
       }
    }

/**
     * app main class
     * 
     * @param args 
     */
    public static void main(String[] args) {
        JFrame frm = new JFrame("Resim Yükle App");
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frm.add(new ResimYukle());
        frm.pack();
        frm.setVisible(true);
    }
}

permanent link

cevaplandı: 12 Mar '13, 17:13

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

teşekkürler cevabınız için hatalarımı anladım dediğiniz gibi birde tutorial incelemem gerek ;)

(13 Mar '13, 07:31) spydevil spydevil's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×79
×15

Soruldu: 12 Mar '13, 07:13

Görüntüleme: 1,032 kez

Son güncelleme: 13 Mar '13, 10:19

powered by BitNami OSQA