In the attached example, JideButton gets the focus with the Tab key but not on mouse click (unlike the core Swing button and checkbox):
[code]
package test.core;
import java.awt.FlowLayout;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import javax.swing.*;
import com.jidesoft.plaf.LookAndFeelFactory;
import com.jidesoft.swing.JideButton;
public class JideButtonFocus extends JFrame {
public JideButtonFocus() {
this.setLayout(new FlowLayout());
JButton coreButton = new JButton("core");
coreButton.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
System.out.println("Core button gained focus");
}
@Override
public void focusLost(FocusEvent e) {
System.out.println("Core button lost focus");
}
});
JCheckBox coreCheckbox = new JCheckBox("core");
coreCheckbox.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
System.out.println("Core checkbox gained focus");
}
@Override
public void focusLost(FocusEvent e) {
System.out.println("Core checkbox lost focus");
}
});
JideButton jideButton = new JideButton("jide");
jideButton.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
System.out.println("Jide button gained focus");
}
@Override
public void focusLost(FocusEvent e) {
System.out.println("Jide button lost focus");
}
});
this.add(coreButton);
this.add(coreCheckbox);
this.add(jideButton);
this.setSize(400, 200);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
LookAndFeelFactory.installDefaultLookAndFeel();
LookAndFeelFactory.installJideExtension();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new JideButtonFocus().setVisible(true);
}
});
}
}
[/code]