JavaFX Shape类定义了常见的形状,例如线,矩形,圆,Arc,CubicCurve,Ellipse和QuadCurve。
在场景图上绘制矩形需要宽度,高度和左上角的(x
,y
)位置。
要在JavaFX中绘制一个矩形,可以使用javafx.scene.shape.Rectangle
类。
import javafx.application.Application
import javafx.scene.Group
import javafx.scene.Scene
import javafx.scene.paint.Color
import javafx.scene.shape.Rectangle
import javafx.stage.Stage
// by w wW.Y I I b Ai .c o m
public class Main extends Application {
public static void main(String[] args) {
Application.launch(args)
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("矩形示例")
Group root = new Group()
Scene scene = new Scene(root, 300, 250, Color.WHITE)
Rectangle r = new Rectangle()
r.setX(50)
r.setY(50)
r.setWidth(200)
r.setHeight(100)
root.getChildren().add(r)
primaryStage.setScene(scene)
primaryStage.show()
}
}
上面的代码生成以下结果。
圆角矩形
Rectangle
类实现了弧宽和弧高。可以使用这些功能来绘制圆角矩形。
import javafx.application.Application
import javafx.scene.Group
import javafx.scene.Scene
import javafx.scene.paint.Color
import javafx.scene.shape.Rectangle
import javafx.stage.Stage
public class Main extends Application {
public static void main(String[] args) {
Application.launch(args)
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("圆角矩形示例")
Group group = new Group()
Rectangle rect = new Rectangle(20, 20, 200, 200)
rect.setArcHeight(15)
rect.setArcWidth(15)
rect.setStroke(Color.BLACK)
group.getChildren().add(rect)
Scene scene = new Scene(group, 300, 200)
primaryStage.setScene(scene)
primaryStage.show()
}
}
上面的代码生成以下结果。
椭圆示例
import javafx.application.Application
import javafx.scene.Group
import javafx.scene.Scene
import javafx.scene.effect.DropShadow
import javafx.scene.paint.Color
import javafx.scene.shape.Ellipse
import javafx.stage.Stage
public class Main extends Application {
public static void main(String[] args) {
Application.launch(args)
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("椭圆示例")
Group root = new Group()
Scene scene = new Scene(root, 300, 250, Color.WHITE)
Group g = new Group()
DropShadow ds = new DropShadow()
ds.setOffsetY(3.0)
ds.setColor(Color.color(0.4, 0.4, 0.4))
Ellipse ellipse = new Ellipse()
ellipse.setCenterX(50.0f)
ellipse.setCenterY(50.0f)
ellipse.setRadiusX(50.0f)
ellipse.setRadiusY(25.0f)
ellipse.setEffect(ds)
g.getChildren().add(ellipse)
root.getChildren().add(g)
primaryStage.setScene(scene)
primaryStage.show()
}
}
上面的代码生成以下结果。