如何在JavaFX中在背景中放置形状?
我一直在尝试在我的应用程序中添加背景色,有人教我创建一个形状(矩形),设置它的颜色并将其放置在背景中。我已经创建了矩形,但我不知道如何将其设置为背景。如何仅使用JavaFX实现这一点如何在JavaFX中在背景中放置形状?,java,javafx,Java,Javafx,我一直在尝试在我的应用程序中添加背景色,有人教我创建一个形状(矩形),设置它的颜色并将其放置在背景中。我已经创建了矩形,但我不知道如何将其设置为背景。如何仅使用JavaFX实现这一点 import javafx.application.*; import javafx.stage.*; import javafx.scene.*; import javafx.scene.layout.*; import javafx.scene.control.*; import javafx.geometry
import javafx.application.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.geometry.Insets;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.scene.shape.*;
import java.io.FileNotFoundException;
import java.io.FileInputStream;
public class Testes extends Application {
Stage j;
Scene c1, scene2;
Button b1;
Pane l1;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws FileNotFoundException {
j = primaryStage;
j.setMaximized(true);
Image image = new Image(new FileInputStream("/home/jenisson/Imagens/mpba.jpg"));
ImageView imageView = new ImageView(image);
imageView.setX(600);
imageView.setY(10);
//setting the fit height and width of the image view
imageView.setFitHeight(90);
imageView.setFitWidth(150);
//Button 1
Button b1 = new Button("+");
b1.setLayoutX(10);
b1.setLayoutY(110);
//Button 2
Button b2 = new Button("Consultar");
b2.setLayoutX(50);
b2.setLayoutY(140);
Pane l1 = new Pane ();
l1.getChildren().addAll(b1, b2);
c1 = new Scene(l1);
l1.getChildren().addAll(imageView);
TextField consulta = new TextField();
l1.setPadding(new Insets(10));
l1.getChildren().add(consulta);
consulta.setLayoutX(50);
consulta.setLayoutY(110);
Rectangle r = new Rectangle(0, 0, 1366, 1366);
r.setFill(Color.WHITE);
l1.getChildren().addAll(r);
//Display scene 1 at first
j.setScene(c1);
j.setTitle("Controle de processos - 1ª Promotoria de Justiça");
j.show();
}
}
有了这段代码,我显然把矩形放在了所有按钮和其他东西的顶部。我必须纠正这一点。如果矩形的目的只是将一些颜色设置为背景,那么您可以在启动它时将默认背景颜色设置为场景本身。场景中有一些构造函数来设置填充。比如
c1 = new Scene(l1, Color.WHITE);
或者,从示例中,可以将StackPane设置为场景的根节点,并设置StackPane的背景色
StackPane root = new StackPane();
root.setStyle("-fx-background-color:white;");
root.getChildren().add(l1);
c1 = new Scene(root);
StackPane root = new StackPane();
Rectangle r = new Rectangle(0, 0, 1366, 1366);
r.setFill(Color.WHITE);
root.getChildren().addAll(r,l1);
c1 = new Scene(root);
或者,如果出于其他原因使用形状,则可以将形状设置为StackPane的第一个子项
StackPane root = new StackPane();
root.setStyle("-fx-background-color:white;");
root.getChildren().add(l1);
c1 = new Scene(root);
StackPane root = new StackPane();
Rectangle r = new Rectangle(0, 0, 1366, 1366);
r.setFill(Color.WHITE);
root.getChildren().addAll(r,l1);
c1 = new Scene(root);
我建议您浏览所有JavaFX布局,以获得一些基本的想法。这将有助于做出一些好的设计决策 如果矩形的目的只是将某些颜色设置为背景,则可以在启动时将默认背景颜色设置为场景本身。场景中有一些构造函数来设置填充。比如
c1 = new Scene(l1, Color.WHITE);
或者,从示例中,可以将StackPane设置为场景的根节点,并设置StackPane的背景色
StackPane root = new StackPane();
root.setStyle("-fx-background-color:white;");
root.getChildren().add(l1);
c1 = new Scene(root);
StackPane root = new StackPane();
Rectangle r = new Rectangle(0, 0, 1366, 1366);
r.setFill(Color.WHITE);
root.getChildren().addAll(r,l1);
c1 = new Scene(root);
或者,如果出于其他原因使用形状,则可以将形状设置为StackPane的第一个子项
StackPane root = new StackPane();
root.setStyle("-fx-background-color:white;");
root.getChildren().add(l1);
c1 = new Scene(root);
StackPane root = new StackPane();
Rectangle r = new Rectangle(0, 0, 1366, 1366);
r.setFill(Color.WHITE);
root.getChildren().addAll(r,l1);
c1 = new Scene(root);
我建议您浏览所有JavaFX布局,以获得一些基本的想法。这将有助于做出一些好的设计决策 非常有用。我搜索了一下,但找不到一种更简单的方法,不添加形状。我不知道固定的风格。非常感谢。@SantosLima请注意,如果您不想使用
setStyle
作为背景,也可以直接设置。非常有用。我搜索了一下,但找不到一种更简单的方法,不添加形状。我不知道固定的风格。非常感谢。@SantosLima请注意,如果您不想使用setStyle
作为背景,也可以直接设置。