我正在尝试为界面提供新功能,但是遇到了一些障碍。我想在mouseEnter时放大JLabel上的图像。这是我的JLabels的外观:
int sacle = 50 //Size of my JLabel Icon
int zoom = 10 // How much the icon should enlarge
imageIcon = new ImageIcon(new ImageIcon(myClass.class.getResource(Picture))
.getImage().getScaledInstance(scale, scale, Image.SCALE_SMOOTH));
JLabel stackIsGreat = new JLabel();
stackIsGreat.setIcon(imageIcon);
//and I add multiple of such JLabels`
和代码不断。我想创建一个函数并将其添加到mouseListener,因此所有函数的行为都相同。我想通过以下方式实现这一目标:
//inside external method
activeLabel = (javax.swing.JLabel)(e.getSource());
ImageIcon temp = (ImageIcon) activeLabel.getIcon();
但是没有办法我知道我可以使用它,因为java表示我需要Image来创建放大的ImageIcon
ImageIcon enlarged = new ImageIcon((Image).getScaledInstance(scale + zoom, scale + zoom, Image.SCALE_SMOOTH))
如何从代码中检索用于创建JLabel的图像。任何帮助,将不胜感激。
我想在mouseEnter时放大JLabel上的图像。
除了创建自己的MouseListener之外,您还可以使用aJButton
来获得过渡效果:
就像是:
JButton button = new JButton(...);
button.setBorderPainted( false );
ImageIcon icon = (ImageIcon)button.getIcon();
Image image = icon.getImage();
Image scaled = image.getScaledImage(...);
button.setRolloverIcon( new ImageIcon( scaled ) );
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句