Here’s a JavaFX example that creates a nice menu bar. All you need is a set of images named: home_1.bmp (unpressed), home_2.bmp (pressed), news_1.bmp, news_2.bmp,contact_1.bmp, contact_2.bmp, photos_1.bmp and photos_2.bmp:
import javafx.ui.*;import javafx.ui.canvas.*;import javafx.ui.filter.*;import java.lang.System;class NiceMenu extends CompositeNode{attribute home: String;attribute news: String;attribute contact: String;attribute photos: String;}attribute NiceMenu.home = ".//images//home_1.bmp";attribute NiceMenu.news = ".//images//news_1.bmp";attribute NiceMenu.contact = ".//images//contact_1.bmp";attribute NiceMenu.photos = ".//images//photos_1.bmp";function NiceMenu.composeNode() = Group { transform: [] content: [ImageView { transform: translate(180,72) image: Image { url: bind home } onMouseEntered: operation(e:CanvasMouseEvent) { home=".//images//home_2.bmp"; } onMouseExited: operation(e:CanvasMouseEvent) { home=".//images//home_1.bmp"; } }, ImageView { transform: translate(240,73) image: Image { url: bind news } onMouseEntered: operation(e:CanvasMouseEvent) { news=".//images//news_2.bmp"; } onMouseExited: operation(e:CanvasMouseEvent) { news=".//images//news_1.bmp"; } }, ImageView { transform: translate(295,73) image: Image { url: bind contact } onMouseEntered: operation(e:CanvasMouseEvent) { contact=".//images//contact_2.bmp"; } onMouseExited: operation(e:CanvasMouseEvent) { contact=".//images//contact_1.bmp"; } }, ImageView { transform: translate(473,73) image: Image { url: bind photos } onMouseEntered: operation(e:CanvasMouseEvent) { photos=".//images//photos_2.bmp"; } onMouseExited: operation(e:CanvasMouseEvent) { photos=".//images//photos_1.bmp"; } }]};//Afisarea meniului se poate face astfelFrame { centerOnScreen: true visible: true height: 200 width: 1100 title: "Nice Menu" onClose: operation() {System.exit(0);} content: ScrollPane { var color=Color{ red:64 green:64 blue:74 } background: color view: Canvas { background: black cursor: DEFAULT content: NiceMenu } }}