Bonjour,
J'ai un petit problème avec cette classe:
public class JTest
extends JFrame {
    public JTest() {
        final JComboBox combo = new JComboBox();
        combo.setEditable(true);
        combo.getEditor().getEditorComponent().addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                JOptionPane.showMessageDialog(null, "KeyPressed !");
            }            
        });
        getContentPane().add(combo);
        /*try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            SwingUtilities.updateComponentTreeUI(this);
        } catch (Exception e) {
            System.err.println("Couldn't use system look and feel.");
        }*/
        pack();
    }
    public static void main(final String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new JTest().setVisible(true);
            }
        });
    }
}
Tout se passe bien si je garde les commentaires, c'est-à-dire sans appliquer de look and feel. Par contre, dès que je les ôte, le KeyListener ne fait plus son boulot...
Apparemment c'est "SwingUtilities.updateComponentTreeUI(this)" qui bloque. Dans cet exemple précis je peux évidemment m'en passer en appliquant le look and feel au début du constructeur, mais j'en ai besoin pour une autre appli dans laquelle j'appelle dynamiquement certains composants (donc besoin de faire un updateUI).
Quelqu'un aurait une idée ? parce que là je vois vraiment pas !
Merci d'avance !
Partager