代码之家  ›  专栏  ›  技术社区  ›  Dan Inactive

Java:图像作为切换按钮

  •  5
  • Dan Inactive  · 技术社区  · 16 年前

    如何在Swing界面中创建切换图像按钮? 我有两张图片,imageon.jpg和imageoff.jpg,我基本上想要一个可点击的元素来切换图片并触发一个事件。

    更新:有没有一种方法可以覆盖图像周围常见的“chrome”?我更喜欢一个简单的图像,而不是一个内有图像的按钮。

    4 回复  |  直到 13 年前
        1
  •  10
  •   Tom Hawtin - tackline    16 年前

    加载图像 ImageIcon . 创建一个 JToggleButton . 然后应用图标 AbstractButton.setIcon/setPressedIcon/setSelectedIcon . 删除边框 AbstractButton.setBorderPainted(false) .

        2
  •  3
  •   Michael Myers KitsuneYMG    16 年前

    怎么样 JToggleButton ?您可以将其子类化并重写 paint() 根据选择与否绘制正确的图像。

    另一种方法是子类 JPanel 捕捉鼠标点击,覆盖 paintComponent() 绘制正确的图像。这样,绘制的唯一对象就是实际图像(与 触发器按钮 选择权。

        3
  •  2
  •   Andreas M.    13 年前

    我对jbuttons也有同样的问题。试试这个:

    result = new JButton( icon );
    result.setBorderPainted( false );
    result.setContentAreaFilled( false );
    
    width = icon.getIconWidth();
    height = icon.getIconHeight();
    result.setPreferredSize( new Dimension( width, height ) );
    

    有必要设置首选大小以消除按钮周围的额外空间。这在Windows7和Mac OS X 10.6上对我很有用。

        4
  •  1
  •   L. Cornelius Dol    16 年前

    最好的选择是对abstractbutton进行子类化,并设置诸如border和background之类的属性(在构造函数中)。

    MyButton() {
        setBorder(null);
        setBackground(null);
        }