展开全部
你写的代码没有把颜色给回原来颜32313133353236313431303231363533e59b9ee7ad9431333337386539色!
可以如下, 加上defaultForeground, defaultBackground, 并在constructor中记录button原来的颜色, 在button失去focus时,改回原来颜色!
因为只用到button, 并且所有button在得到焦点时都是同一文字/背景颜色, 在失去焦点时也都是同一文字/背景颜色, 所以不需要在focusGained()或focusLost()中检验是那一个button获得或失去焦点!..
Color defaultForeground;
Color defaultBackground;
..
public FocusEventTest (){
...
defaultForeground = login.getForeground();
defaultBackground = login.getBackground();
}
public void focusGained(FocusEvent e){
JButton bt = (JButton)e.getSource();
bt.setForeground(Color.red);
bt.setBackground(Color.yellow);
}
public void focusLost(FocusEvent e){
JButton bt = (JButton)e.getSource();
bt.setForeground(defaultForeground);
bt.setBackground(defaultBackground);
}