Java - savoir si vous cliquez sur OK?
J'ai une boîte de dialogue pour un client-interface graphique utilisateur qui demande l'IP du serveur et le Port on veut se connecter. J'ai tout le reste, mais comment pourrais-je faire en sorte que lorsque l'utilisateur clique sur "OK" sur ma boîte de dialogue, qu'il fonctionne quelque chose? Voici ce que j'ai à ce jour:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class ClientDialog {
JTextField ip = new JTextField(20);
JTextField port = new JTextField(20);
GUI gui = new GUI();
Client client = new Client();
JOptionPane optionPane;
public void CreateDialog(){
Object msg[] = {"IP: ", ip, "\nPort: ", port};
optionPane = new JOptionPane();
optionPane.setMessage(msg);
optionPane.setMessageType(JOptionPane.INFORMATION_MESSAGE);
JDialog dialog = optionPane.createDialog(null, "Connect to a server");
dialog.setVisible(true);
if(dialog == JOptionPane.OK_OPTION){
System.out.println(ip);
String ipMsg = ip.getText();
int portMsg = Integer.parseInt(port.getText());
gui.CreateConsole(client, ipMsg, portMsg);
}
}
} //End class
Je sais que le code n'est pas correct, mais ce que je veux, c'est que lorsque l'utilisateur clique sur "OK" dans la boîte de dialogue, je peux exécuter du code. Merci!
Pourquoi êtes-vous de la création d'un JDialog à partir d'un JOptionPane objet plutôt que, plus simplement, il suffit de montrer le JOptionPane? Vous voulez une boîte de dialogue modale, j'imagine, et donc un JOptionPane devrait fonctionner par lui-même.
Hmmm. Bonne question.
Hmmm. Bonne question.
OriginalL'auteur | 2011-12-20
Vous devez vous connecter pour publier un commentaire.
Je vous suggère d'utiliser
showConfirmDialog
au lieuet là, vous pouvez tester divers retourne la valeur de
JDialog/JOptionPane
OriginalL'auteur mKorbel
Je suggère la création d'un
JPanel
et à l'aide deJOptionpane.showConfirmDialog()
(ou mêmeJOptionPane.showOptionDialog()
pour afficher la boîte de dialogue et de récupérer de l'option. Voici une modification de votre code comme exemple:Merde, a pris trop de temps pour poster. De toute façon juste concevoir la mise en page de la
JPanel
comme vous le feriez pour tout autre type de cadre.OriginalL'auteur AusCBloke
S'il vous plaît comprendre que le 2e paramètre dans un JOptionPane, le paramètre de l'objet, peut être n'importe quel composant Swing, y compris un Composite qui est titulaire d'un simple ou complexe GUI.
Envisager la création d'un Composite, en plaçant quelques éléments, en ce y compris JLabels et deux JTextFields, l'un pour l'IP, un port, puis l'affichage de ce Composite dans un JOptionPane. Ensuite, vous pouvez facilement vérifier si OK a été pressé et d'agir en conséquence.
OriginalL'auteur Hovercraft Full Of Eels
De bonnes solutions.
Si vous ne voulez pas utiliser autre chose, c'est un exemple de travail:
1) définir DO_NOTHING_ON_CLOSE pour assurer l'utilisateur DOIT appuyer sur OK
2) vérifier si le JDialog est encore visible.
Cela peut être une solution si vous souhaitez mettre en place une boîte de dialogue non modale.
OriginalL'auteur AndreaTaroni86