如何在Swing界面中创建切换图像按钮? 我有两个图像,imageon.jpg和imageoff.jpg,我基本上想要一个可点击的元素来切换图像并激活一个事件。
更新:有没有办法覆盖图像周围通常的'镶边'?我更喜欢简单的图像到里面有图像的按钮。
答案 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);
}