Pessoal, é o seguinte, criei o meu primeiro aplicativo mais sério em Java (veja em davidbuzatto.blog.uol.com.br) ele resolvre funções de primeiro e segundo grau e desenha o gráfico destas.
O gráfico é desenhado em um painel, gostaria de saber se tem como eu criar um fluxo para gravar o desenho que está feito no painel.
Você pode utilizar o pacote javax.imageio, dê uma espiadinha nele!
Com certeza irá lhe ajudar.
davidbuzatto
vish kra, já tentei...
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle( "Exportar gráfico para arquivo de imagem" );
chooser.setApproveButtonText( "Exportar" );
chooser.setApproveButtonMnemonic( 'E' );
chooser.setApproveButtonToolTipText( "Exporta gráfico para arquivo de imagem" );
chooser.setCurrentDirectory( new File( "." ) );
chooser.setFileFilter(
new FileFilter() {
public boolean accept( File f ) {
return f.getName().toLowerCase().
endsWith( ".jpg" ) ||
f.getName().toLowerCase().
endsWith( ".gif" ) ||
f.getName().toLowerCase().
endsWith( ".bmp" ) ||
f.isDirectory();
}
public String getDescription() {
return "Arquivos de Imagem (*.jpg;*.gif;*.bmp)";
}
}
);
int r = chooser.showSaveDialog( this );
if ( r == JFileChooser.APPROVE_OPTION ) {
// retorna o nome do arquivo selecionado
// ou o nome do arquivo digitado em File Name
File arquivo = chooser.getSelectedFile();
if ( arquivo == null || arquivo.getName().equals("") )
JOptionPane.showMessageDialog(this, "Nome de arquivo inválido",
"Nome de arquivo inválido", JOptionPane.ERROR_MESSAGE);
else {
try {
ObjectOutputStream saida = new ObjectOutputStream(
new FileOutputStream( arquivo ) );
saida.writeObject( pPlotagem );
saida.close();
/* até aqui tudo bem, criou o arquivo
baseado no objeto pPlotagem.
agora como faço para converter o objeto em
imagem?
ja tentei usar os pacotes javax.imageio e
javax.imageio.stream
mas num me dei muito bem
só consegui criar o arquivo do objeto*/
}
catch ( IOException exc ) {
JOptionPane.showMessageDialog( this,
"Erro ao criar arquivo.", "Erro",
JOptionPane.ERROR_MESSAGE );
}
}
}
V
Vegetto
Deu certo? não deu? qual erro?
davidbuzatto
dá uma olhada no comentário no código…
gravar o objeto deu certo, só que nao consigo converte-lo em imagem ou então criar um fluxo para imagem para gravá-lo, não sei como proceder, entedeu?
lcmetzger
Veja este exemplo:
Robot robot = new Robot();
BufferedImage img = robot.createScreenCapture(new Rectangle(Toolkit
.getDefaultToolkit().getScreenSize()));
File f = new File("/tmp/teste.jpg");
ImageIO.write(img, "jpeg", f);
Espero que ajude!
8)
davidbuzatto
vou tentar, valeu!!! se der certo te dou um alô!
davidbuzatto
Hehehe esqueci de te agradecer.
Deu certo sim viu, valeu!!!