java - JButton 背景图片

标签 java swing jbutton actionlistener imageicon

您好,我正在尝试为 JButton 实现 Action 监听器,代码如下所示:

ImageIcon imageForOne = new ImageIcon(getClass().getResource("resources//one.png"));
one = new JButton("",imageForOne);
one.setPreferredSize( new Dimension(78, 76));
one.addActionListener(myButtonHandler);

使用上面的 JButton 看起来不错 See the image below for button 1

当我为按钮添加特定值时

ImageIcon imageForOne = new ImageIcon(getClass().getResource("resources//one.png"));
//Check this
one = new JButton("one",imageForOne);
one.setPreferredSize( new Dimension(78, 76));
one.addActionListener(myButtonHandler);

看起来像下图

Check button 1

有什么办法可以避免这种情况并设置值。

提前感谢您的帮助。

最佳答案

就我个人而言,我会使用 Action API .

它将允许您定义操作命令的层次结构(如果这是您想要的)以及定义对命令的自包含响应。

你可以...

public class OneAction extends AbstractAction {
    public OneAction() {
        ImageIcon imageForOne = new ImageIcon(getClass().getResource("resources//one.png"));
        putValue(LARGE_ICON_KEY, imageForOne);
    }

    public void actionPerfomed(ActionEvent evt) {
        // Action for button 1
    }
}

然后你只需使用你的按钮...

one = new JButton(new OneAction());
one.setPreferredSize( new Dimension(78, 76));

例如……

关于java - JButton 背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110315/

相关文章:

java - 更改 slider 刻度的颜色

java - 使用 Wildfly maven docker intellij 进行热部署/热交换类

Swing 和 JavaFX 并发

java - JFrame 大小在运行时无意中改变

java - 将对象内部的 ImageIcon 添加到另一个类中的框架

java - 在多个模块上运行 Maven 插件目标

java - 在java中使用扫描仪在链表中搜索

java - 如何重置我的 JButton?

java - 来自另一个类的多个 JButton Action 监听器

java - 如何在 JFrame 中手动设置面板内按钮的位置