如何在缩小窗口时获得jLabel的宽度和高度

时间:2014-07-07 20:23:45

标签: java events height width jlabel

我有一个事件formComponentResized当我升级Jdialog并缩小jLabel的内部时,我希望得到值。当我升迁窗口事件时,获得jLabel1.getWidth()jLabel1.getHeight()的新值但是当我缩小尺寸时,它没有获得新值,而是获得jLabel1的旧宽度和高度。有谁知道这个的原因,或者如何解决这个问题。

private void formComponentResized(java.awt.event.ComponentEvent evt) 
{                                      
        BufferedImage resizedImage=ImageTools.resize(buffx,jLabel1.getWidth(),jLabel1.getHeight());       
        jLabel1.setIcon(new ImageIcon(resizedImage));
}

调整大小的方法:

public static BufferedImage resize(BufferedImage image, int width, int height) 
    {
        BufferedImage bi = new BufferedImage(width, height, BufferedImage.TRANSLUCENT);
        Graphics2D g2d = (Graphics2D) bi.createGraphics();
        g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
        g2d.drawImage(image, 0, 0, width, height, null);
        g2d.dispose();
        return bi;
    }

1 个答案:

答案 0 :(得分:0)

如果您尝试根据标签尺寸缩放图像,请查看Stretch Icon,它会自动为您执行此操作。

  

有谁知道这个的原因,或者如何解决这个问题。

嗯,您发布的代码不完整,因此我们不知道您使用代码的方式。例如" formComponentResized"不是Swing事件。您是否将组件侦听器添加到标签或面板。你说它在制作较小的框架时不起作用,当框架变大时怎么办?也许问题是布局管理器。

如果您发布了一个问题帖子SSCCE,该帖子会显示问题,那么我们就不必猜测所有这些问题。