Java Swing JButton
问题描述:
我想创建具有自定义外观和感觉的按钮。我有不同的图像设置为普通,鼠标悬停,鼠标点击,按钮禁用等按钮的背景。我创建了自己的类,扩展了javax.swing.JButton并覆盖了paintComponent方法。我怎样才能改变我的按钮背景为所有上述给定的状态。Java Swing JButton
答
ImageIcon icon = new ImageIcon("images/icon.gif");
JButton button = new JButton(icon);
答
JButton的具有一系列的简单的设置方法翻转,压制,选择,残疾人和禁用选择的状态 - 例如
button.setPressedIcon(new ImageIcon("images/button-down.png")
的其它方法是:
button.setRolloverIcon()
button.setSelectedIcon()
button.setRolloverSelectedIcon()
button.setDisabledIcon()
button.setDisabledSelectedIcon()
。 ..玩的开心 !
顺便说一句,奥赖利有一个称为摇摆黑客有很多好吃的东西少一个有趣的书有玩秋千:Swing Hacks
答
除了史蒂夫德考克斯的回答,您可以:
- 添加
MouseListener
时改变的enum
变量,我们称之为state
您的扩展JButton
-
在你重写
paintComponent
考虑到目前的state
并绘制不同的背景。像if (!getModel().isEnabled()) { } else if (state == ButtonState.MOUSE_OVER) { } else if (state == ButtonState.MOUSE_CLICKED) { }
答
您可以创建一个自定义按钮UI委托。这个博客条目:http://blog.elevenworks.com/?p=4有一个自定义选项卡窗格的示例,但原理相同。扩展BasicButtonUI,实现你想要的按钮的自定义渲染,然后调用按钮上的setUI()。
与使用现有的按钮API方法来改变外观相比,这可能需要更长的时间来实现,但它给了您更多的控制权。
谢谢你回答yankee2905。此代码是在按钮上设置图标图像。我想知道如何删除按钮的默认外观和添加我自己的图像鼠标悬停,鼠标点击和禁用状态? – Nilesh 2009-12-12 07:50:04