package javafxtransformation;
import javafx.ext.swing.Label;
import javafx.ext.swing.Canvas;
import javafx.ext.swing.Button;
import javafx.scene.paint.Color;
import javafx.ext.swing.TextField;
import javafx.ext.swing.GridPanel;
import javafx.ext.swing.SwingFrame;
import javafx.ext.swing.FlowPanel;
import javafx.ext.swing.BorderPanel;
import javafx.scene.geometry.Rectangle;
/**
* @author Amit
*/
var rotationValue:Number=10;
var rotationText =TextField {
columns: 5
text: "{rotationValue}"
editable: true
}
var scaleValue:Number=1;
var scaleText =TextField {
columns: 5
text: "{scaleValue}"
editable: true
}
var translateXValue:Number;
var translateXText =TextField {
columns: 3
text: "{translateXValue}"
editable: true
}
var translateYValue:Number;
var translateYText =TextField {
columns: 3
text: "{translateYValue}"
editable: true
}
var translate = GridPanel{
rows:1
columns:4
content:[Label {
text: "X :"
},translateXText,
Label {
text: "Y :"
},translateYText
]
}
SwingFrame {
title: "Transformation"
width: 800
height: 600
closeAction: function() {
java.lang.System.exit( 0 );
}
visible: true
content: BorderPanel {
top: Canvas {
content:Rectangle {
x: 100, y: 50
width: 100, height: 20
fill: Color.GREEN
anchorX:100
anchorY:100
// Rotate
rotate: bind rotationValue
// Scale
scaleX: bind scaleValue
scaleY: bind scaleValue
// Translate
translateX: bind translateXValue
translateY: bind translateYValue
}
}
bottom:GridPanel{
columns:3
rows:3
content: [ Label {
text: "Rotate By :"
}, Label {
text: "Scale By :"
}, Label {
text: "Translate To :"
},rotationText,
scaleText,
translate,
Button {
text: "Rotate"
action: function() {
rotationValue = java.lang.Double.parseDouble(rotationText.text);
}
},Button {
text: "Scale"
action: function() {
scaleValue = java.lang.Double.parseDouble(scaleText.text);
}
},Button {
text: "Translate"
action: function() {
translateXValue=java.lang.Double.parseDouble(translateXText.text);
translateYValue=java.lang.Double.parseDouble(translateYText.text);
}
}]
}
}
} |