【问题标题】:how to instantiate different size icons based on the button pressed java如何根据按下的按钮实例化不同大小的图标java
【发布时间】:2016-03-16 12:56:48
【问题描述】:

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

例如,这就是按钮被实例化的样子

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){


    }
}

【问题讨论】:

    标签: java swing awt scaling


    【解决方案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));
        }
    }
    

    【讨论】:

    • 对不起,如果这听起来微不足道,但我如何将它与我的代码结合起来?所以 Resources.imageIcon.getImage("exit26").getScaledInstance();
    • 调用 Resources.getIcon() 后返回的对象类型是什么。如果是 ImageIcon,请检查我更新的答案。
    • 它不返回任何东西,它只是在程序运行时在工具栏中设置图标
    • 抱歉还有一件事,我把所有的图标都放在一个文件里,但是在你的代码中我应该指向一个特定的图标文件吗?
    • 对不起,我听不懂。你能解释更多吗?
    猜你喜欢
    • 2021-01-03
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 2018-02-02
    • 1970-01-01
    • 2013-12-06
    • 2018-05-28
    相关资源
    最近更新 更多