如何在Swing界面中创建切换图像按钮? 我有两个图像,imageon.jpg和imageoff.jpg,我基本上想要一个可点击的元素来切换图像并触发一个事件。Java:图像作为切换按钮
更新:有没有办法来覆盖图像周围通常的'铬'?我更喜欢简单的图像到里面有图像的按钮。
如何在Swing界面中创建切换图像按钮? 我有两个图像,imageon.jpg和imageoff.jpg,我基本上想要一个可点击的元素来切换图像并触发一个事件。Java:图像作为切换按钮
更新:有没有办法来覆盖图像周围通常的'铬'?我更喜欢简单的图像到里面有图像的按钮。
使用ImageIcon
加载图像。创建一个JToggleButton
。然后应用AbstractButton.setIcon/setPressedIcon/setSelectedIcon
的图标。删除与AbstractButton.setBorderPainted(false)
的边界。
JToggleButton
怎么样?您可以对它进行子类化并覆盖paint()
以根据是否选择正确的图像来绘制。
另一种方法是继承JPanel
并捕获鼠标点击,覆盖paintComponent()
以绘制正确的图像。这样,唯一得到的是实际图像(不像JToggleButton
选项)。
感谢您的JPanel提示! 我发现这个资源,希望它教我建立我需要什么: http://java.sun.com/docs/books/tutorial/uiswing/painting/index.html – Dan 2009-02-05 17:25:11
最好的办法是子类AbstractButton,并设置像边框和背景(在你的构造函数中)的属性。
MyButton() {
setBorder(null);
setBackground(null);
}
我与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上适用于我。
嗯,忘了这些方法。 (除非你记得它们存在,否则它们不会出现在Javadoc中。)+1 – 2009-02-05 17:15:23