如何基于按下java的按钮实例化不同大小的图标

时间:2016-03-16 12:56:49

标签: java swing awt scaling

如何根据方法中按下的按钮更改实例化图标的大小。

所以例如这就是将按钮实例化为

private ExitProgramAction exitProgramAction = new ExitProgramAction("Quit",
      Resources.getIcon("exit16"), "Quit HEAT", new Integer(KeyEvent.VK_Q),
      KeyStroke.getKeyStroke(KeyEvent.VK_Q, java.awt.Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false));

但是我试图在点击时通过下面的方法(我为其创建按钮)更改getIcon()。

protected class ZoomButtonAction extends AbstractAction {
    public ZoomButtonAction(String text, String desc)
    {
        super(text);
        putValue(SHORT_DESCRIPTION, desc);
    }

    public void actionPerformed(ActionEvent e){


    }
}

1 个答案:

答案 0 :(得分:1)

您可以随时使用以下代码调整图标大小。

protected class ZoomButtonAction extends AbstractAction {
    public ZoomButtonAction(String text, String desc)
    {
        super(text);
        putValue(SHORT_DESCRIPTION, desc);
    }

    public void actionPerformed(ActionEvent e){

        ImageIcon icon = (ImageIcon)getValue(Action.SMALL_ICON);
        Image newImage = icon.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH);
        putValue(Action.SMALL_ICON, new ImageIcon(newImage));
    }
}
相关问题