J7GoodiesJ7Goodies: Windows 7 features for Java

Windows 7 taskbar extensions for Swing applications.

J7Goodies is a Java library that provides all Windows 7 features for Swing.
It requires just a few lines of code because we did all the hard work for you.

With J7Goodies Java applications can be correctly pinned to the Windows 7 taskbar with the right icon and name.

Jump List

The JumpList class provides an easy way to create Windows 7 Jump Lists. You can access the system managed Recent and Frequent categories or append your own application-specific actions to the Tasks list. You can even define your own categories and add them in addition to or in place of the standard Recent and Frequent categories. The code below shows how to create the jump list from the right image.

DestinationList albums;
albums.addFile("C:\\Users\\Alex\\My Pictures\\Bachelor Party.alb");
albums.addFile("C:\\Users\\Alex\\My Pictures\\Family.alb");
albums.addFile("C:\\Users\\Alex\\My Pictures\\Flowers.alb");

DestinationList tasks;
tasks.addTask("/camera", "Import from camera", cameraIconPath);
tasks.addTask("/scan", "Scan a photo", scannerIconPath);

JumpList jumpList;
jumpList.appendRecentCategory();
jumpList.appendCustomCategory("Albums", albums);
jumpList.appendTasks(tasks);
jumpList.save();
More code samples
Windows 7 Jump List
Watch video
Windows 7 Taskbar Overlay Icon
Watch video

Taskbar Overlay Icon

Displaying a Windows 7 overlay icon is a simple as calling TaskbarButton.setOverlayIcon().

 public void actionPerformed(ActionEvent ae) {
    JComboBox combo = (JComboBox) ae.getSource();
    ImageIcon icon = (ImageIcon) combo.getSelectedItem();
    taskbarButton.setOverlayIcon(icon);
}
More code samples

Taskbar Progress Bar

The TaskbarProgressBar class mimics JProgressBar's API and provides Windows 7 taskbar progress bar. To indicate special condition (pause, error) use the state property.

// Set the progress state of the button to indeterminate
// while you calculate the number of operations to be performed.
taskbarProgressBar.setProgressState(ProgressState.INDETERMINATE);

// Report progress
taskbarProgressBar.setValue(30);

// Pause an operation
taskbarProgressBar.setProgressState(ProgressState.PAUSED);
More code samples
Windows 7 Taskbar Progress Bar
Watch video
Windows 7 Taskbar Thumbnail Toolbar
Watch video

Taskbar Thumbnail Toolbar

The ThumbnailToolBar class integrates with Java's action system to provide a consistent API. Reuse your existing AbstractActions to manage the Windows 7 thumbnail toolbar. It's as simle as that!

ThumbnailToolBar toolBar = taskbarButton.getThumbnailToolBar();
toolBar.addAction(prevAction);
toolBar.addAction(playAction);
toolBar.addAction(nextAction);
toolBar.show();
More code samples

Taskbar Tabbed Thumbnails

You can easly add Windows 7 taskbar thumbnails to JTabbedPane with J7Goodies. It provides the full functionality: thumbnails, live previews, switching and closing. The best part is that you need just a few lines of code!

TabbedThumbnails thumbnails = taskbarButton.getTabbedThumbnails();
for (int i = 0; i < tabbedPane.getTabCount(); ++i) {
    Thumbnail thumb = thumbnails.addTab(tabbedPane.getComponentAt(i));
    thumb.setTitle(tabbedPane.getTitleAt(i));
    thumb.setIcon(tabbedPane.getIconAt(i));
}
More code samples
Windows 7 Tabbed Thumbnails
Watch video
Windows 7 Tabbed Thumbnails
Watch video

Thumbnails For Any Widget

You can create Windows 7 taskbar thumbnails not only for windows or JTabbedPane's tabs. Any java.awt.Component can become a switch target (an object having its taskbar thumbnail). Even custom MDI applications (ex. not based on JTabbedPane) will integrate with J7Goodies seamlessly.
If you need to fine-tune thumbnails, that's not a problem at all. By default the Thumbnail class will render your component automatically, but you can switch to manual mode. Then it will call your listener's methods whenever an iconic thumbnail or a live preview is requested by the Windows shell.

Use the TabbedThumbnails to manage your thumbnails collection and the Thumbnail class to control individual thumbnails.

TabbedThumbnails thumbnails = taskbarButton.getTabbedThumbnails();
Thumbnail thumb = thumbnails.addTab(nameTextField);
thumb.setTitle("Name");
thumb.setIcon(loadIcon("resources/users-16.png"));
thumb = thumbnails.addTab(emailTextField);
thumb.setTitle("E-mail");
thumb.setIcon(loadIcon("resources/email-16.png"));
thumb = thumbnails.addTab(websiteTextField);
thumb.setTitle("Website");
thumb.setIcon(loadIcon("resources/web-browser-16.png"));
More code samples

Seems interesting?

Go ahead and try our demos or checkout pricing. If you have any questions, please don't hesitate to contact us.