Désactiver le JButton lorsque JTextField est vide – Java
JButton est une sous-classe de la classe AbstractButton et il peut être utilisé pour ajouter des boutons indépendants de la plate-forme dans une application Java Swing. JTextField est un composant qui permet de modifier une seule ligne de texte. Dans ce tutoriel nous allons découvrir comment désactiver JButton lorsque JTextField est vide en utilisant l’interface DocumentListener avec les méthodes removeUpdate(), insertUpdate() et changedUpdate() qui se déclenche lors de l’insertion, suppression, ou la modification du texte dans JTextField.
Exemple:
import javax.swing.*; import javax.swing.event.*; public class EnableBtn extends JPanel { private JTextField text = new JTextField(10); private JButton btn = new JButton("Bouton"); public EnableBtn() { text.getDocument().addDocumentListener(new DocumentListener() { @Override public void removeUpdate(DocumentEvent e) { checkBtn(); } @Override public void insertUpdate(DocumentEvent e) { checkBtn(); } @Override public void changedUpdate(DocumentEvent e) { checkBtn(); } }); btn.setEnabled(false); add(text); add(btn); } private void checkBtn() { boolean value = !text.getText().trim().isEmpty(); btn.setEnabled(value); } private static void createAndShowGui() { EnableBtn panel = new EnableBtn(); JFrame f = new JFrame("Désactiver JButton"); f.getContentPane().add(panel); f.pack(); f.setLocationByPlatform(true); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(()->createAndShowGui()); } }
Sortie: