Je veux que mon programme ait une fenêtre contextuelle
4 Réponses :
Vous devez mettre en œuvre la boîte de dialogue manuellement, par ex. ( http://docs.oracle.com/javase/ 7 / DOCS / API / JAVAX / SWING / JFILECHOOSER.HTML ). Après avoir sélectionné le fichier, vous pourrez démarrer le téléchargement de la demande HTTP (à votre servlet) et enregistrer le fichier sur le chemin souhaité. P>
Essayez d'être consulté ici: http://www.java2s.com/ Code / java / swing-jfc / démonstrationoffiledialogboxes.htm p>
Sortez l'énoncé principal dans leur code et mettre exécuté (nouveau fichier FILECHOOserest (), 250, 110); code> dans votre propre code. Si je le faisais, je ferais un INT nommé
Savestatus code> et 3 des finales égales 0, 1 et 2 nommé
attente code>,
Enregistrer code>, et
Annuler code>. Ensuite, je ferais une boucle de temps dans votre autre programmation pour voir si
Savestatus code> était égal à
attendre code> pour mettre en pause votre programme (mais pas la boîte de dialogue). Ensuite, je ferais une déclaration IF pour voir si
Savestatus code> était égal à
Enregistrer code>. Si oui, téléchargez-le, et sinon, ne le faites pas. Simple comme ça. P>
Votre programme n'est pas de bureau / autonome, car il s'agit d'un servlet en cours d'exécution sur un serveur. Lorsque vous l'exécutez dans Eclipse en cliquant avec le bouton droit de la souris sur L'en-tête code> dispositionné de contenu code> est là uniquement pour suggérer le nom de fichier du téléchargement. Les paramètres du navigateur définissent si cela ouvre une fenêtre Par exemple, dans Google Chrome, dans Veuillez également noter que, selon l'en-tête Si vous ne souhaitez pas créer une application Web: puisque votre programme s'exécute sur un Exécuter sous CODE> ->
Exécutez sur le serveur code>, Eclipse ouvre réellement une page Web pour afficher les résultats. Par conséquent, votre programme est maintenant une application Web et Eclipse (ou la page qu'il s'ouvre) est le client
Paramètre CODE> /
Réglage avancé CODE> /
Téléchargements code>, il y a l'option
Demandez où enregistrer chaque fichier avant de télécharger code>. Seulement si cette option est sélectionnée, il ouvrira la boîte de dialogue souhaitée. Sinon, il l'enregistrera dans un emplacement par défaut (également défini dans les paramètres du navigateur). Des options similaires existent pour tous les navigateurs. P>
Type de contenu Code>, le navigateur essaiera de
réponse.setContentType ("application / octet-flux"); code> p>
Votre problème est le type MIME. Certains types (en particulier ceux où un gestionnaire spécifique est connu) seront téléchargés directement par la plupart des navigateurs. Il aide un peu à utiliser Application / Binary, mais même quelques navigateurs pourraient être configurés pour le télécharger ou interpréter l'extension de nom de fichier dans le gestionnaire de disposition. P>
Je pense que la plupart des solutions utilisent JavaScript sur la page avant le lien de téléchargement. P>
Je crois que c'est du côté du serveur. Vous essayez de propager un événement de serveur au côté client.
Jetez un oeil à: Stackoverflow.com/Questtions/3802510/... et Stackoverflow.com/questions/2226192/... a > Cordialement
@ Danilomuñoz: aussi vite que je peux voir au-dessus de deux scénarios sont une forme différente de la mine..mais merci de préoccupation
Qu'en est-il de votre client? Navigateur, application autonome / desktop, ...
@ Danilomuñoz: Oui, c'est autonome / bureau. Je faisais cela juste pour la pratique. Je ne trouve rien de mal avec mon code cependant.
Comment appelez-vous votre servlet?
@Helloworld fournir des informations supplémentaires comme comment accédez-vous à votre
servlet code> et où exécutez-vous le servlet
Dupliquer possible de Stackoverflow.com/Questtions/15483637/...
@ user23123412: Je n'appelle pas mon servlet, il suffit de l'exécuter à Eclipse.
@Sankrish: Je n'accède pas à mon servlet nulle part de côté.
@shekharsuman qui n'est pas une option dupliquée.
Cela semble être une application Web, pas une application autonome / desktop. Si tel est votre cas, définissez simplement le type de contenu comme
"Application / octère-flux" code> qui est le type de contenu générique du téléchargement de fichier (quel que soit son type).
@LUGIGIGIMENDOZA: Faire le type de contenu "Application / Octet-Stream" n'a également pas réparer mon problème ... J'ai essayé.
Ensuite, je ne comprends pas quel est votre problème exact. Veuillez fournir plus d'informations sur ce que vous faites, comment vous exécutez le code et la manière dont votre application va la consommer.
Bien ! Ceci est mon tout code, sauf que je n'ai pas fourni le nom de la classe parce que ce n'était pas nécessaire (je suppose), et je suis en cours d'exécution par code dans Eclipse en cliquant avec le bouton droit de la souris et Exécuter comme -> Exécuter sur serveur I>. Ce qui se passe ici, le MP3 devient automatiquement le téléchargement que je ne veux pas. Je dois aborder une boîte sauf B> d'abord, c'est tout ça.
Votre programme n'est pas de bureau / autonome, car il s'agit d'un servlet en cours d'exécution sur un serveur. Le client enregistre les informations que vous avez envoyées et non votre programme. Voir ma réponse complète ci-dessous.
"Qu'est-ce que je manque ici" Code Dome pour apparaître la fenêtre. Qu'est-ce qui vous fait penser que cela devrait arriver automatiquement?