[ ana @ 05.11.2002. 21:06 ] @
Kako se u swingu radi sa slikama? Konkretno htela bih da ucitam sliku - i kada kliknem negde na slici -da mi vrati RGB vrednost boje na tom mestu. Da li postoji neki drugi nacin da se ucita slika osim da se stavi da je ImageIcon nekog Label objekta? evo koda za trazenje RGB-a:
ImageIcon currentImage;
JLabel lab;

lab = new JLabel(currentImage);
lab.addMouseListener(this);

public void mouseClicked(MouseEvent me) {
x=me.getX(); y=me.getY();
Color c= ????
kako da dobijem vrednost boje na (x,y)?
hvala unapred, Ana
[ Au197/79 @ 06.11.2002. 09:03 ] @
Postoji klasa java.awt.image.BufferedImage. Ona ima metodu int getRGD(int x, int y) i getColorModel koja vraća klasu koja ima metode getRed...

Ja ovo nisam nikada koristio, ali nije nemoguće da je to ono što tražiš.
[ misk0 @ 06.11.2002. 11:42 ] @
pa mozes sa Streamovima iscitati iz fajla i onda upistai u BufferedImage
i prikazati (nekako) na ekranu.
oko citanja i upisivanja u Buf. mogu ti pomoci, jer sam to skoro radio ali nisam prikazivanje u swingu

[ bunker @ 23.11.2002. 14:46 ] @
<pre>
public static Image getImage(String picLoc){
Image im = Toolkit.getDefaultToolkit().getImage(picLoc);
return im;
}
</pre>

ovaj metod vraca objekat tima Image, koja se nalazi na lokalnom racunaru a putanja do fajla je argument picLoc. to moze biti samo jpg i gif fajl (mozda png u javi1.4).
Znaci ne moras da koristis IconImage objekat.
Onda u java doc pronadji metod koji trazis,a mislim da ti je tip sa prethodnog odgovora dao fine reference. ako uspes javi, mislim obavesti nas kako je protekkla operacija..

cekaj jos ovo. ako zelis da prikazes tu sliku u awt-u, odnosno swing-u napravi klasu koja nasledjuje Canvas. ta nova klasa ima paint metod, nasledjen iz canvas-a, u koji napises g.drawImade(img,x,y,this).

ako zelis neki kod za sve to, obrati se. poslaccu ti....
zeleo bih da pomognem...

pozdrav
[ ana @ 25.11.2002. 12:58 ] @
hvala ti na odgovoru,nego sam sad bas u ozbiljnoj guzvi oko faksa ,pa sam ovo ostavila na stranu privremeno- kad se budem opet pozabavila time ,javicu da li je uspelo i kako :)

>cekaj jos ovo. ako zelis da prikazes tu sliku u awt-u, odnosno swing-u napravi klasu koja nasledjuje Canvas. ta nova klasa ima paint metod, nasledjen iz canvas-a, u koji napises g.drawImade(img,x,y,this).

Da li taj paint metod mogu da koristim i ako ne pravim applet,nego aplikaciju?
sta u tom slucaju uzimam za graphics objekat?

Ana :)
[ bunker @ 25.11.2002. 17:16 ] @
jasno,

saljem ti primer klase koja se zoveTool...

class Tool extends Canvas {

Image im = null;

public Tool(){
setBackground(Color.black);
setForeground(Color.white);
}

public void setImage(Image im){
this.im = im;
repaint();
}

public void paint(Graphics g){

int W = this.getSize().width;
int H = this.getSize().height;

if (im != null){
int x = (W - im.getWidth(this)) /2;
int y = (H - im.getHeight(this)) /2;
g.drawImage(im,x,y,this);
}
}
}

u inicijalizaciji aplikacije napises:

Tool T = new Tool();
T.setSize(T.preferredSize()); // ovo je obavezno, ja mislim...
Panel p = new Panel()
p.add(T);

Image img = Toolkit.getDefaultToolkit().getImage(path_to_img);
T.setImage(img);