JAchievement is a small Java library that provides achievement notification features to any Java application.
Developer comments
First of all, I think it is better to explain what is an achievement in this context. If you own a XBox 360, you probably know what an achievement is.
According to Wikipedia, an achievement, also sometimes known as a trophy or challenge, is a meta-goal defined outside of a game's parameters. Unlike the systems of quests or levels that usually define the goals of a computer or video game and have a direct effect on further gameplay in the form of unlocking other quests or special features, the management of achievements usually takes place outside the confines of the game environment and architecture.
Perhaps you may ask what is the reason of this library. Personally, I love the Microsoft Gamescore System and I really believe all these secondary meta-goals contribute to the user experience. What if NetBeans has an achievement system, e.g., write your first regular expression, or compile your first application? JAchievement is an interesting achievement notification library!
Product's homepage
Here are some key features of "JAchievement":
· Easy setup and use, no complicated procedures. With only two lines of code, your application will be able to display achievement notifications!
· A small yet powerful library. The code itself is optmized, the payload refers to the images and sound.
· Platform independent, runs everywhere. Thanks to Java, you'll be able to run this wherever there's a Java Virtual Machine.
· 100% pure Java library. No external system calls. Write once, run everywhere. Portability matters.
Requirements:
· Java 2 Standard Edition Runtime Environment
Limitations:
· Transparency may glitch the window display when switching between objects behind the notification. Let me explain what happens here: Java handles every single behaviour from its window system, but not events that occur outside. That means if something happens in the background during a notification display, Java is not aware of it (as it is not coming from inside), thus it won't repaint components.