Socorro!, alguem consegue fazer este desenho no JPanel

Senhores(as), tendo uma matriz de Colors de 3000x2000(representando um desenho), alguem aqui é capaz de me dizer (um exemplo por favor) como desenha-la.
Sou iniciante e não estou conseguindo fazer isto, a mais de uma semana tentando, encarecidamente eu peço ajuda!
vlw

Repetindo tópico? tsc… tsc… tsc… que feio…
http://www.guj.com.br/posts/list/53733.java

Dá uma olhada nesse artigo aqui, talvez te ajude:
http://www.developer.com/java/other/article.php/3403921

Você pode desenhar usando o objeto graphics, obtido através de uma Buffered Image.

Desenhe usando métodos como drawLine, sendo que você pode especificar que a linha tenha altura e largura de um único píxel.

Para ler o seu arquivo, use um FileOutputStream ou, no caso de um arquivo muito gigante, um FileChannel.

Depois, para salvar a imagem, como falou o louds, use a classe ImageIO, onde você poderá até mesmo escolher o formato final da figura.

fiz isso, ta dando um erro no tamanho do buffer

Que erro?

cara, tenta fazer qualquer exemplo com um buffer maior que 1000x1000
ex:
BufferedImage buffer = new BufferedImage( 2000,2000, BufferedImage.TYPE_INT_RGB );

quando eu crio um com 1000x1000 é tranquilo, mas maior nao rola, o meu mapa é um 3130x4190

obs: em relação so tsc, tsc, po ninguem mais repondeu tive que voltar com um topico novo, to desesperado :wink:
vlw

Alguem sabe como eu posso fazer um buffer de 4000x3000? se souberem por favor me indiquem um caminho
VLW

Aqui funcionou.

Você não está com um OutOfMemoryError? Nesse caso, seria bom você mudar os parâmetros da VM para autoriza-la a usar mais memória.

Dá uma olhada nesse link:
Solving Out of Memory errors

Da uma olhada na saida do terminal do eclipse
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
Exception in thread “AWT-EventQueue-0” java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.(Unknown Source)
at java.awt.image.Raster.createPackedRaster(Unknown Source)
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source)
at java.awt.image.BufferedImage.(Unknown Source)
at mapa_saga.AreaPainel.paintComponent(Derrame.java:52)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread “AWT-EventQueue-0” java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.(Unknown Source)
at java.awt.image.Raster.createPackedRaster(Unknown Source)
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(Unknown Source)
at java.awt.image.BufferedImage.(Unknown Source)
at mapa_saga.AreaPainel.paintComponent(Derrame.java:52)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

#######################################################

e o codigo que está pintando o meu panel
class AreaPainel extends JPanel
{

	private static final long serialVersionUID = 1L;
	
	protected void paintComponent(Graphics g )
	{
		super.paintComponent(g);
		Graphics2D g2d = (Graphics2D) (g);
		int cont1,cont2;
		
		BufferedImage buffer = new BufferedImage( 4000, 5000, BufferedImage.TYPE_INT_RGB );
		g2d = buffer.createGraphics();

		
		g2d.drawLine(0,0,200,200);
		
	}

}

Leia o artigo que o ViniGodoy lhe passou. Se isso não resolver seu problema…

ahem… na segunda linha do seu erro está escrito:
OutOfMemoryError.

Cara, arrumei este erro, mas agora surgiu outra duvida, o paintComponent faz tudo mais de uma vez, se eu botar um System.out.println la dentro a mensagem aparece duas ou mais vezes, o que acaba fazendo o desenho ser lido de forma muito lenta, alguem sabe o que é isso?

É claro que ele faz tudo mais de uma vez. É assim que deve ser. Basta você passear com alguma janela sobre o seu componente que ele tem a obrigação de repintá-lo.

Você precisa trabalhar, no seu caso, de modo que você pinte apenas a parte que foi invalidada (ficou suja porque alguma outra coisa pintou por cima).

Você precisa aprender a trabalhar com a parte de “clipping” (Graphics.getClipBounds etc.)

É por isso que lidar com a parte gráfica é mais difícil que parece.

vlw cara!

Senhores, graças a ajuda de vocês consegui plotar a primeira imagem, agradeço a todos pela ajuda. VLW

Parabéns! :smiley: