我有一个事件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;
}
答案 0 :(得分:0)
如果您尝试根据标签尺寸缩放图像,请查看Stretch Icon,它会自动为您执行此操作。
有谁知道这个的原因,或者如何解决这个问题。
嗯,您发布的代码不完整,因此我们不知道您使用代码的方式。例如" formComponentResized"不是Swing事件。您是否将组件侦听器添加到标签或面板。你说它在制作较小的框架时不起作用,当框架变大时怎么办?也许问题是布局管理器。
如果您发布了一个问题帖子SSCCE,该帖子会显示问题,那么我们就不必猜测所有这些问题。