comment mettre en pause le programme jusqu'à ce que d'appuyer sur un bouton?
j'utilise une classe qui s'étendait de jframe et il dispose d'un bouton(que j'utilise dans mon programme)
je veux quand exécuter jframe dans mon programme, l'ensemble de mon programme en pause
jusqu'à ce que j'appuie sur le bouton.
comment puis-je le faire
en c++ getch()
ce faire.
je veux une fonction comme ça.
Quel est votre programme en cours d'exécution que vous souhaitez mettre en pause? Ce fils que vous avez créé qui font un travail? Si vous n'avez pas créé de threads, puis la loi de montrant une boîte de Dialogue Modale est-ce que vous voulez.
je n'utilise pas de fils, mais j'en ai besoin
getch équivalent ne sera pas coupé dans ce cas. Mais ici, il est de toute façon: Système.dans.read();
Nous avons vraiment besoin de plus d'informations. Pouvez-vous poster le code?
je n'utilise pas de fils, mais j'en ai besoin
getch équivalent ne sera pas coupé dans ce cas. Mais ici, il est de toute façon: Système.dans.read();
Nous avons vraiment besoin de plus d'informations. Pouvez-vous poster le code?
OriginalL'auteur Mahdi_Nine | 2011-03-29
Vous devez vous connecter pour publier un commentaire.
Suspendant l'Exécution avec le Sommeil, bien que je doute que ce soit le mécanisme que vous aurez envie d'utiliser. Donc, comme d'autres l'ont suggéré, je crois que vous aurez besoin de mettre en œuvre
wait-notify
logique. Voici une très artificiel exemple:Et voici votre classe principale:
Comme vous pouvez le voir, cet exemple d'application n'aura de cesse de l'écrire dans la zone de texte jusqu'à ce que vous cliquez sur le bouton qui se lit "Pause", sur quoi, pour reprendre, vous devez cliquer sur le même bouton qui va maintenant lire "Démarrer".
Oui, en effet, par défaut, vous serez à l'aide d'un
main
du fil et un peu deAWT
threads.Oui, en effet. Et vous avez besoin d'utiliser l'Event Dispatch Thread AWT/Swing ou votre application mess up à nice peu de façon subtile.
OriginalL'auteur mre
Cette réponse dépend entièrement de si je comprends votre question correctement, veuillez donner un peu plus d'infos si vous voulez la meilleure des réponses. Va ici:
Pause dans une boucle scénario
Threads:
Vous pouvez aussi mettre ces tâches dans un sujet séparé, et non pas sur le thread GUI qui est généralement ce que vous feriez pour de longues opérations.
Faire une pause d'un thread est très facile. Appelez simplement suspendre() sur celui-ci. Quand vous voulez pour relancer un appel resume(). Ces méthodes sont cependant dangereux et ont été remplacés. Mieux, ou plutôt plus sûr moyen de le faire serait semblable à celui ci-dessus en cochant une pause drapeau.Voici un petit exemple que j'ai eu qui traînent dans mes extraits. Cant exactement rappeler où je l'ai eu en premier lieu:
Espère que cette aide
OriginalL'auteur n4rzul
essayer de mon java bouton pause:
OriginalL'auteur Nathan Nelson
Le gel de votre Thread Principal efficacement pour geler l'ensemble du programme et pourrait entraîner le système d'exploitation de penser que l'application a planté, pas tout à fait sûr, donc corrigez-moi si je me trompe. Vous pourriez essayer de cacher/désactiver les contrôles et de leur permettre à nouveau lorsque l'utilisateur clique sur le bouton.
OriginalL'auteur Johann du Toit
Vous ne dites pas ce que vous entendez par pause. Qu'est-ce que votre application?
Comme une règle générale, vous ne POUVEZ PAS mettre en pause une INTERFACE utilisateur de l'app. Interface utilisateur d'exécuter des applications à partir d'un message boucle de traitement. Un Message, un message est envoyé, boucle attend pour un autre message. Une application doit encore gère des choses comme l'utilisateur en cliquant sur les boutons, le redimensionnement de la fenêtre, de la fermeture de l'application et ainsi de suite, de sorte que cette boucle s'exécute en continu.
Si vous souhaitez que votre application en "pause" dans le sens de prévenir l'utilisateur de faire quelque chose, tout gris dehors quel que soit le menu ou bouton c'est que vous ne voulez pas que les utilisateurs de faire.
Si votre application est en cours d'exécution d'un thread en arrière-plan et le souhaitent de suspendre cette action jusqu'à ce que vous le reprendre, vous pouvez le faire assez facilement.
Il est également possible d'utiliser du Fil.suspendre(), le Thread.resume() pour accomplir similaire, mais ceux-ci sont intrinsèquement dangereux parce que vous n'avez aucune idée de l'endroit où le fil est quand vous le suspendre. Il pourrait y avoir un fichier est ouvert, être à mi-chemin par le biais de l'envoi d'un message sur un socket etc. Mettre un test en ce que la boucle de contrôle de votre fil vous permet de faire suspendre à un point où il est sécuritaire de le faire.
JavaMex.com une bonne description de wait/notify. J'ai un peu jeté mon pseudo et croix vérifié pour s'assurer que je disais à droite. javamex.com/tutorials/synchronization_wait_notify.shtml
OriginalL'auteur locka
De l'INTERFACE utilisateur effectue une tâche à l'aide par message mécanisme.
Si vous avez un bouton dans votre INTERFACE utilisateur et que vous souhaitez exécuter quelque chose lorsque ce bouton est activé, vous devez ajouter un objet de
ActionListener
à votre bouton. Une fois que le bouton est pressé, il déclenche l'ActionListener
objet pour effectuer une tâche, par exemple:Si vous voulez arrêter quelque chose lorsque vous appuyez sur un bouton de pause, vous defnitely besoin d'un
Thread
. C'est plus compliqué que le premier cas.OriginalL'auteur gigadot