Eu to tentando fazer a imagem do me Jlabel ter zoom, já tentei de várias formas e ate peguei codigos deste msm site
segue os código que tenho:
//imageLabelMouseWheelMoved
private static BufferedImage resize(BufferedImage image, int width, int height) {
BufferedImage resizedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(image, 0, 0, width, height, null);
g.dispose();
return resizedImage;
//usando um botão:
private void showImageZoomIn(URL imageURL, BufferedImage image) {
int zoomwidth = image.getWidth() * 2;
int zoomheight = image.getHeight() * 2;
Image img = new ImageIcon(image).getImage().getScaledInstance(zoomwidth, zoomheight, Image.SCALE_DEFAULT);
imageLabel.setText(null);
imageLabel.setIcon(new ImageIcon(img));
imageLabel.repaint();
imageLabel.validate();
AMBOS DÃO ERRO NO PRIVATE STATIC… COMO ILLEGAL START OF EXPRESSION
ME AJUDEM!
private static void redimensionarImagem(Image imagem, double escala, JLabel label) {
int largura = (int) (imagem.getWidth(null) * escala),
altura = (int) (imagem.getHeight(null) * escala);
BufferedImage imagemRedimensionada = new BufferedImage(largura, altura, BufferedImage.TYPE_INT_ARGB);
Graphics2D tela = imagemRedimensionada.createGraphics();
tela.drawImage(imagem, 0, 0, imagemRedimensionada.getWidth(), imagemRedimensionada.getHeight(), null);
tela.dispose();
label.setIcon(new ImageIcon(imagemRedimensionada));
}
Você pode alterar o método, para que seja possível retornar a imagem redimensionada, no lugar de setar diretamente no jLabel.
ok, ai eu chamo o método:
redimensionarImagem(imagem, ERROR, jLabel1);
o que eu passo dentro do parenteses???
É só olhar o tipo do objeto passado como parâmetro:
Os tipos são: Image, double e JLabel.
Os parâmetros são:
imagem -> para a imagem a redimensionar.
escala -> valor percentual no qual a imagem será redimensionado é um número maior que 0.
label -> o JLabel que receberá a imagem redimensionada.
Fora isso, não há o que esmiuçar.