J'ai écrit ma propre classe pour le dialogue modal, mais quand je l'appelle à partir de mon code, il n'y a pas de réaction sur les boutons en cliquant. Si je définis setModal(false)
tout fonctionne très bien. Je suppose qu'il y a quelques problèmes avec la concurrence, mais je ne suis pas sûr à ce sujet. Où est mon erreur?ActionListeners ne fonctionne pas en modal JDialog
public class PauseTaskDialog extends JDialog {
private JPanel contentPane;
private JButton buttonOK;
private JButton buttonCancel;
private JCheckBox prioritisingCheckBox;
private JCheckBox simultaneousWorkCheckBox;
private JCheckBox problemsWithDataCheckBox;
private JTextArea comment;
private String taskID;
public PauseTaskDialog(String task) {
this.setContentPane(contentPane);
this.setModal(true);
this.setLocationRelativeTo(null);
this.pack();
this.setTitle("Task pause reasons");
this.taskID = task;
comment.setFont(comment.getFont().deriveFont(14f));
comment.setLineWrap(true);
comment.setWrapStyleWord(true);
buttonOK.addActionListener(e -> {
onOK();
});
buttonCancel.addActionListener(e -> {
onCancel();
});
this.setVisible(true);
}
private void onOK() {
// some code here
}
private void onCancel() {
// some code there
}
}
J'appelle la boîte de dialogue de mon code de cette façon:
PauseTaskDialog dialog = new PauseTaskDialog(taskID);
ajoutez votre version java –
@AdeelAhmed, 1.8.0_131 – whyiamhere
Pour une meilleure aide plus rapidement, postez un [MCVE] ou [Short, Self Contained, Example correct] (http://www.sscce.org/). –