11
votes

Comment rendu de belles notifications de bureau de Java?

J'écris cette application J2SE très basique qui alerte l'utilisateur avec quelques informations de temps en temps. Actuellement, j'utilise les classes SystemTray et Trayicon pour montrer des notifications, mais je ne suis pas vraiment satisfait de cela. Cela ne me permet pas de modifier les notifications, ni de leur donner un bon look.

Alors, quelqu'un connaît-il une bibliothèque facile à utiliser pour générer de belles notifications?

BTW, je serai porté à Linux (Ubuntu), mais utilisera notify-OSD là-bas, ce qui correspond exactement à ce dont j'ai besoin.


3 commentaires

Vous pourriez être capable de sous-classer le trayicon et le remplacement de l'affichage ()


@jpm qui semble être une idée raisonnable. J'ai en quelque sorte espéré quelqu'un déjà fait ça. Je ne peux pas être la première personne sur terre qui a besoin de ce droit? Si je vais avec cette solution, des conseils sur où commencer avec le dessin de la notification car je n'ai aucune expérience avec cela. Toute référence de cela est la bienvenue.


En fait, en regardant, il ne semble pas y avoir de bon moyen de le faire de manière portant. Pour le moment, utilisez-vous simplement l'apparence par défaut? Si oui, vous pouvez essayer d'essayer un autre. Découvrez le Tutoriel officiel sur le sujet et voyez si cela pourrait vous donner ce dont vous avez besoin.


3 Réponses :


4
votes

Je ne suis pas au courant d'une bibliothèque Java abstraite toutes les notifications de bureau spécifiques au système d'exploitation. Mais si vous le savez, vous êtes limité à Ubuntu (et peut-être un nombre limité d'un autre système d'exploitation), vous pouvez créer une interface et le mettre en œuvre pour le système d'exploitation spécifique.

  • Ubuntu: Vous pouvez accéder à / usr / bin / notify-envoyer via exécution comme ceci: USR / bin / notify-envoyer -t 30000 "Text1 "" Text2 "-i /path/to/48x48.pngled/code>
  • Mac OSX: API Java Growl

    Pour les implémentations Java, vous pouvez consulter jazz ou MyLYN (voir Notifications de bureau Java ).


3 commentaires

L'Ubuntu n'est pas le problème, je peux utiliser le projet Java-Gnome là-bas. Windows est le problème (ignorer Mac pour l'instant). Je pense que j'irai avec votre suggestion de créer l'interface et de mettre en œuvre Notify-OSD pour Ubuntu et Mylyn / Jazz pour Windows. Je vais mettre à jour ici si j'ai des résultats.


Pouvez-vous s'il vous plaît élaborer la partie sur runtime ? Est-ce la méthode par laquelle les commandes CLI sont appelées en Java?


Oui c'est vrai. Voir docs.oracle.com/javase/6/docs /api/java/lang/Runtime.html



6
votes

Plug Shameless: Je viens de publier un projet appelé Twinkle qui est à peu près grogner pour Java Swing . Vous pouvez essayer le Démo .


8 commentaires

Il a fière allure dans le concept, le seul problème pour moi est le prix ...!


Merci pour l'entrée! Quel serait un prix approprié à votre avis?


Eh bien, cela dépend vraiment de qui vous le souhaitez. Dans le monde des entreprises qui serait TUppence et si de grandes entreprises avaient besoin de ce type d'intégration serrée, je suis sûr qu'ils n'auraient aucun problème à payer pour cela. Je pense que je viens de sauter et m'attendais à ce que ce soit une jolie petite utilité GPL qui est tout (qui compte que je suis à peu près travaillant uniquement sur des trucs open source pour le moment est probablement due à ma mentalité que toute autre chose!)


Je pense que mon libellé n'était pas si bon car le «projet» semble vraiment comme une source ouverte. J'ai reconsidéré le prix du point de vue d'un développeur (plutôt que sur la perspective de ma femme ;-)) et c'était vraiment élevé. Merci encore pour l'entrée!


La démo semble parfaite! Exactement ce que je cherche. Mais j'ai le même problème que Berry120. Je cherche quelque chose à utiliser dans un très petit utilitaire open source, donc un système de notification de source fermé ne correspondrait pas vraiment à l'application.


@Kingwilliam Merci pour les commentaires. Je mets beaucoup de travail pour le rendre parfait sur tous les systèmes, donc j'hésite à libérer le code source. Mais maintenant, je suis à la possibilité de libérer une version binaire open source gratuite. J'ai juste besoin d'obtenir le truc de licence. Y a-t-il une telle chose que gpl pour le code binaire? Par exemple: "Vous devez libérer votre code sous une licence open source afin d'utiliser Twinkle pour votre projet."


Je viens de le publier sous GPL V3. S'amuser :-)


@ Spreiter301 J'ai vu vos commentaires un peu en retard. C'est juste génial. Au plaisir de prendre le temps de l'utiliser dans mon application.



4
votes

Vous pouvez utiliser JCOMMUNIQUE pour les notifications de bureau Java multiplate-forme. Voici une démo courte adaptée du Exemples sur le wiki:

// makes a factory with the built-in clean theme
// themes are customizeable
NotificationFactory factory = new NotificationFactory(ThemePackagePresets.cleanLight());
// factories build notifications using a theme, while managers handle how
// how they appear on the screen
// this manager just simple pops up the notification in the specified location
// other managers do sliding, queues, etc.
NotificationManager plain = new SimpleManager(Location.NORTHEAST);

// creates a text notification; you can also have progress bar Notifications,
// icon Notifications, Notifications that ask for user feedback, etc.
TextNotification notification = factory.buildTextNotification("This is a title",
                                                              "This is a subtitle");
notification.setCloseOnClick(true);
// the notification will disappear after 2 seconds, or after you click it 
plain.addNotification(notification, Time.seconds(2));


1 commentaires

Je n'ai pas annulé celui-ci depuis que vous avez posé beaucoup de travail. Cependant, la question est hors tension par nos normes. Il est donc maintenant fermé.