Java:图像切换按钮

时间:2009-02-05 17:08:28

标签: java swing

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

更新:有没有办法覆盖图像周围通常的'镶边'?我更喜欢简单的图像到里面有图像的按钮。

4 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:3)

JToggleButton怎么样?你可以对它进行子类化并覆盖paint(),根据它是否被选中来绘制正确的图像。

另一种方法是继承JPanel并捕捉鼠标点击,覆盖paintComponent()以绘制正确的图像。这样,绘制的唯一内容就是实际图像(与JToggleButton选项不同)。

答案 2 :(得分:2)

我和JButtons有同样的问题。试试这个:

result = new JButton( icon );
result.setBorderPainted( false );
result.setContentAreaFilled( false );

width = icon.getIconWidth();
height = icon.getIconHeight();
result.setPreferredSize( new Dimension( width, height ) );

必须设置首选大小以消除按钮周围的额外空间。这适用于Windows 7和Mac OS X 10.6。

答案 3 :(得分:1)

您最好的选择是继承AbstractButton,并设置边框和背景等属性(在构造函数中)。

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