zmiana Graphics2D w tablice pixli

0

Czesc, nie potrafie zamienic Graphics2D na ktroym mam narysowane kolo w tablice pixli, ktora chce nastepnie modyfikowac. Probowalem cos:

	public void paint(Graphics g){
		BufferedImage bi = new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
		Graphics2D g2D = (Graphics2D)g;		
		g2D = bi.createGraphics();
		Ellipse2D kolo = new Ellipse2D.Double(10.0, 10.0, 200.0, 200.0);
		g2D.setColor(Color.red);
		g2D.fill(kolo);
	}

ale po dodaniu bufora w ogóle nic mi nie rysuje. A tak w ogóle top jestem zielony jesli chodzi ografike. Jesli ktos by mi zapodal kawalek kodu i objasnil jak zrobic ta tablice, pobrac piksel i zamienic go na inny kolor to byl bym wdzieczny.

Pozdrawiam!

0

Rysujesz w BufferedImage, ale nie przepisujesz jego zawartości do zmiennej g. W tym celu należy użyć metody drawImage(Image image, int x, int y, ImageObserver io) klasy Graphics:

public void paint(Graphics g){
                BufferedImage bi = new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
                Graphics2D g2D = (Graphics2D)g;               
                //g2D = bi.createGraphics();
                Graphics2D g2DBI = bi.createGraphics();
                Ellipse2D kolo = new Ellipse2D.Double(10.0, 10.0, 200.0, 200.0);
                g2DBI.setColor(Color.red);
                g2DBI.fill(kolo);
                g2D.drawImage(g2DBI, 0, 0, null);
}
0

a jak przekasztalcic ten bufor w atblice i piksle pozamieniac ??

0

jesli rozszerzasz JComponent (w szczegolnosci JPanel) to nie paint tylko paintComponent!!! i koniecznie super.paintComponent();

pozdrawiam

0

no dobra zmienilem na paintComponentm ale to co podal Kozołek mi nie działało, znaczy nic się nie rysowało

public void paintComponent(Graphics g){
	super.paintComponent(g);
		
	Graphics2D g2D = (Graphics2D)g;
		
	Ellipse2D kolo = new Ellipse2D.Double(10.0, 10.0, 200.0, 200.0);
	g2D.setColor(Color.red);
	g2D.fill(kolo);		
}
0

a ten kod Ci dziala?

0

tak ten wklejony nad Twoim postem dziala

0

juz sobie poradzilem, oto kod:

BufferedImage bi = new BufferedImage(dl,szer,BufferedImage.TYPE_INT_ARGB);
Graphics2D g2D = bi.createGraphics();
		
Ellipse2D kolo = new Ellipse2D.Double(10.0, 10.0, 200.0, 200.0);
g2D.setColor(Color.red);
g2D.fill(kolo);	
		
g.drawImage(bi,0,0,null);

1 użytkowników online, w tym zalogowanych: 0, gości: 1