/* * Main.fx * * Created on May 28, 2009, 8:56:27 PM */ package borders; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.Tile; import javafx.scene.image.Image; import javafx.scene.layout.VBox; import org.jfxtras.scene.border.BevelBorder; import javafx.scene.image.ImageView; import javafx.geometry.HPos; import javafx.scene.control.Label; import org.jfxtras.scene.border.EtchedBorder; import org.jfxtras.scene.border.LineBorder; import org.jfxtras.scene.border.SoftBevelBorder; import javafx.scene.effect.DropShadow; import org.jfxtras.scene.border.RoundedRectBorder; import javafx.scene.Node; import org.jfxtras.scene.border.ShapeBorder; import org.jfxtras.scene.shape.Star2; import org.jfxtras.scene.border.FrameBorder; import org.jfxtras.scene.border.MetallicBorder; import org.jfxtras.scene.border.PipeBorder; import org.jfxtras.scene.border.TitledBorder; import org.jfxtras.scene.border.ImageBorder; import javafx.scene.paint.Color; import javafx.scene.text.Font; /** * @author jclarke */ def image = Image { url: "{__DIR__}images/250px-Mona_Lisa.jpg" width: 100 height: 150 preserveRatio: true }; Stage { title: "Border Ensemble" width: 800 height: 800 scene: Scene { content: [ Tile { layoutX: 10 layoutY: 10 hgap: 8 vgap: 8 columns: 4 content: [ VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ BevelBorder { raised: true content: ImageView { image: image } }, Label { text: "BevelBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ EtchedBorder { raised: true content: ImageView { image: image } }, Label { text: "EtchedBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ LineBorder { content: ImageView { image: image } thickness: 4 }, Label { text: "LineBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ SoftBevelBorder { content: ImageView { image: image } }, Label { text: "SoftBevelBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ LineBorder { content: ImageView { image: image } effect: DropShadow{}; }, Label { text: "LineBorder/Shadow" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ RoundedRectBorder { content: ImageView { image: image } effect: DropShadow{}; }, Label { text: "RoundedRectBorder/Shadow" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ ShapeBorder { var anode: Node; shape: Star2 { centerX: bind anode.layoutBounds.width/2 centerY: bind anode.layoutBounds.height/2 outerRadius: bind anode.layoutBounds.width/2 innerRadius: bind anode.layoutBounds.width/6 count: 5 } content: anode = ImageView { image: image } }, Label { text: "ShapeBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ FrameBorder { style: "background-fill: aquamarine;" content: ImageView { image: image } }, Label { text: "FrameBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ MetallicBorder { content: ImageView { image: image } }, Label { text: "MetallicBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ PipeBorder { raised: false content: ImageView { image: image } }, Label { text: "PipeBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ TitledBorder { text: "Leonardo da Vinci" content: MetallicBorder { content: ImageView { image: image } }, }, Label { text: "TitledBorder" } ] } VBox { spacing: 5 nodeHPos: HPos.CENTER content: [ ImageBorder { image: image content: VBox { content: [ Label { text: "Leonardo" textFill:Color.WHITE font: Font { size: 20 } }, Label { text: "Raphael" textFill:Color.WHITE font: Font { size: 20 } }, Label { text: "Michelangelo" textFill:Color.WHITE font: Font { size: 20 } }, Label { text: "Donatello" textFill:Color.WHITE font: Font { size: 20 } }, ] } }, Label { text: "ImageBorder" } ] } ] } ] } }