import javax.swing.*;
public class ButtonRepaint {
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
JButton b = new JButton("Hover Over Me!") {
@Override
public void repaint() {
super.repaint();
System.out.println("Repaint");
}
};
JOptionPane.showMessageDialog(null, b);
}
};
SwingUtilities.invokeLater(r);
}
}
3条答案
按热度按时间kmb7vmvb1#
请注意
paint()
被调用的方法属于按钮的ui委托,通常派生自BasicButtonUI
. 这里有一个使用MetalButtonUI
.vfh0ocws2#
..jbutton在mousehover上更改颜色,即使从未调用repain()。
当然是。这个密码就是证据。当然,在kindle-fire上没有jre并不是最有可能的证据,但是,kindle-fire是一个完全不合适的工具,在讨论不在设备上运行的编程语言的技术要点时,用来与问答网站进行交流。
toiithl63#
Component
画上他们的paint
方法。repaint
只是一个有用的方法paint
在不久的将来的某个时候,在事件调度线程上。当鼠标进入
JButton
,调用以下方法(对于JButton
(具有默认ui的用户):public void stateChanged(ChangeEvent e) {
Object source = e.getSource();
}