Tenho uma classe que peguei aqui no site, senão me engano do vinygodoy… JImagePanel,
ela funciona beleza. Só que estou com problemas ao alterar a imagem… ela funciona só na primeira alteração, e não faço idéia pq não funciona na segunda… (quando tento utilizar o método setImg novamente)
The background image is automatically sized to fit in the panel.
*/
public class JImagePanel extends JPanel
{
BufferedImage background = null;
/** Creates a new panel with the given background image.
@param img The background image. */
public JImagePanel(BufferedImage img)
{
if (img == null)
throw new NullPointerException(“Buffered image cannot be null!”);
this.background = img;
}
/** Creates a new panel with the given background image.
@param img The background image.
@throws IOException, if the image file is not found.
*/
public JImagePanel(File imgSrc) throws IOException
{
this(ImageIO.read(imgSrc));
}
/** Creates a new panel with the given background image.
@param img The background image.
@throws IOException, if the image file is not found.
*/
public JImagePanel(String fileName) throws IOException
{
this(new File(fileName));
}
A classe JImagePanel, do projeto Towel, permite que você altere como a imagem deve ser pintada em relação ao painel (centralizado, lado-a-lado ou redimensionada). E permite que você use esse painel como imagem de fundo: http://code.google.com/p/towel/
Se você põe uma imagem menor que o panel, e escolhe o fill type SIDE_BY_SIDE, a imagem vai ficar repetida diversas vezes. Se escolher CENTER, ela vai ficar no centro do painel, não será esticada. E resize é como antes, ela ficará do tamanho do Painel.
Ola… tudo bem … Kara Sou Iniciante em Java … to usando o NetBeans 6.5 … vi essa classe JImagePanel … e é bem isso que eu estava procurando … mas não to conseguindo usa-la … tipo … como devo Instancia-la … ?? tipo sou bem leigo … desde ja agradeço … t+
[quote=ViniGodoy]Imagine que o panel é o desktop do Windows.
Se você põe uma imagem menor que o panel, e escolhe o fill type SIDE_BY_SIDE, a imagem vai ficar repetida diversas vezes. Se escolher CENTER, ela vai ficar no centro do painel, não será esticada. E resize é como antes, ela ficará do tamanho do Painel.[/quote]
[quote=lepopps]Ola… tudo bem … Kara Sou Iniciante em Java … to usando o NetBeans 6.5 … vi essa classe JImagePanel … e é bem isso que eu estava procurando … mas não to conseguindo usa-la … tipo … como devo Instancia-la … ?? tipo sou bem leigo … desde ja agradeço … t+
[quote=ViniGodoy]Imagine que o panel é o desktop do Windows.
Se você põe uma imagem menor que o panel, e escolhe o fill type SIDE_BY_SIDE, a imagem vai ficar repetida diversas vezes. Se escolher CENTER, ela vai ficar no centro do painel, não será esticada. E resize é como antes, ela ficará do tamanho do Painel.[/quote][/quote]
Eis o exemplo q o Vini postou algum tempo atrás (abaixo). Uma vez a classe JImagePanel criada, vc somente irá precisar de um Jframe com um JPanel para instancialá…
galera estou fazendo uma palicação de processamento de imagens, preciso mostrar a imagem num jFrame qualquer, estou trabalhando com BufferedImage, alguem pode me esxplicar como faço pra exibir essa imagem com essa classe JImagePanel, ou se tem outra forma melhor?
Criando o seu objeto BufferImage, crie também um objeto para armazena-lo… (do tipo JImagePanel, esta classe deverá ser mantida no mesmo pacote do seu projeto)
private JImagePanel JPImage = null;
private BufferImage im = null;
OK…
Agora…
a única coisa que vc deverá fazer é instanciar um JPanel e add os objetos neste JPanel… desta forma:
JPanel jPanel = new JPanel();
im = ImageIO.read(new File(caminhoDaImagem));
if (JPimage == null) JPimage = new JPImage(im);
JPimage.setImage(image);
jPanel.add(JPimage);
jPanel.repaint();
jPanel.validate();