Ajout d'une image à un JTooltip sans connaître le chemin de l'image (en raison de l'image étant une ressource temporaire)

StackOverflow https://stackoverflow.com/questions/1658318

Question

Pour être un peu plus précis: Je l'ai construit simple TCPServer multithread (Java) qui communique avec les clients (C # / mono). Sur demande, les clients une capture d'écran et de l'envoyer au serveur. Les captures d'écran sont alors affichées dans une JTable. Je voudrais ajouter une info-bulle à ces images dans le tableau avec la même image, mais dans une autre taille. Le code ressemble actuellement à ceci:

screenLabel.setToolTipText("<html><img src=\"" + (new ImageIcon(image)) + "\"></img> Tooltip</html>");

Bien sûr, cela ne fonctionnera pas, comme l'attribut src nécessite un chemin. Le problème est, je ne sais pas comment contourner ce comportement.
Ma question serait donc être:
1) Comment récupérer un chemin valide pour une ressource temporaire (sans enregistrer la ressource dans le système de fichiers)
OU
2) Comment fournir une coutume JTooltip qui permet facilement des images / ImageIcons à afficher

Était-ce utile?

La solution

Il est possible d'ajouter un nouveau protocole en plus la norme ftp / http / etc à l'URL résoudre qui mappe ensuite dans votre propre code au lieu de sur le réseau.

Il y a trois approches énumérées à http://www.unicon.net/node/776, qui peut vous aider à commencer. Je pensais à étendre URLStreamHandler et l'enregistrement avec la machine virtuelle Java.

En ce qui concerne le changement JToolTip, de http: //www.manning-sandbox. com / message.jspa? messageId = 9915

"Souvenez-vous JToolTip est un récipient, donc, sous-classe JToolTip d'avoir un JTextArea / volet remplir. Réglez le JTA / JTP comme et le tour est joué uneditable vous avez une info-bulle multiligne! De même, vous pouvez afficher un composant personnalisé que vous souhaitez! «

Autres conseils

Pour l'option 2, vous devez:

a) créer une info-bulle personnalisé
b) remplacer la table à utiliser l'info-bulle.

affichage fournit un exemple de travail simple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top