Chr*_*ris 5 css java background javafx image
我想设置一个与我的窗口/屏幕大小相同的背景图像.
我更愿意在我的CSS
文件中执行此操作,但我找不到实现此目的的方法.
我必须在javafx类文件中执行此操作吗?
谢谢你的每一个帮助;)
Ita*_*iha 12
您必须在Java代码中确定屏幕大小,如JavaFX窗口大小中所示,无法在CSS中确定它.
对于图像,在您的Java代码中,您可以使用某些内容
ImageView imageView = new ImageView(image);
imageView.setFitWidth(Screen.getPrimary().getVisualBounds().getWidth());
imageView.setFitHeight(Screen.getPrimary().getVisualBounds().getHeight());
Run Code Online (Sandbox Code Playgroud)
如果要将背景图像设置为场景,则:
import javafx.application.Application;
import javafx.geometry.Rectangle2D;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.*;
public class ScreenSizeImage extends Application {
@Override public void start(final Stage stage) {
// uncomment if you want the stage full screen.
//stage.setFullScreen(true);
Screen screen = Screen.getPrimary();
Rectangle2D bounds = screen.getVisualBounds();
stage.setX(bounds.getMinX());
stage.setY(bounds.getMinY());
stage.setWidth(bounds.getWidth());
stage.setHeight(bounds.getHeight());
StackPane root = new StackPane();
root.setStyle(
"-fx-background-image: url(" +
"'http://icons.iconarchive.com/icons/iconka/meow/256/cat-box-icon.png'" +
"); " +
"-fx-background-size: cover;"
);
stage.setScene(new Scene(root));
stage.show();
}
public static void main(String[] args) { launch(args); }
}
Run Code Online (Sandbox Code Playgroud)
当然,除了内联的setStyle调用之外,最好使用下面的单独的CSS样式表:
.root{
-fx-background-image: url("background_image.jpg");
-fx-background-size: cover;
}
Run Code Online (Sandbox Code Playgroud)
好问题...
首先,我认为你的意思是"你的应用程序窗口的大小".显然,如果应用程序窗口较小,则不能有比屏幕大的背景图像.
其次,这是JavaFX CSS参考指南的一个片段:
http://download.java.net/jdk9/jfxdocs/javafx/scene/doc-files/cssref.html
"......背景和边界机制是在CSS 3草案背景和边界模块之后形成的.详见[4]. "
Run Code Online (Sandbox Code Playgroud)...
[4] CSS背景和边界模块第3级:http://www.w3.org/TR/css3-background/
-fx-background-size
和stretch
值. 你也可以通过尝试auto
一个维度和100%
另一个维度的组合来实现它......以及......的某种组合,contain
具体取决于你是否可以使用裁剪的图像.
-fx-background-size
<bg-size> [ , <bg-size> ]*
<bg-size> = [ <size> | auto ]{1,2} | cover | contain | stretch
由逗号分隔的一系列值.系列中的每个bg大小的项目都适用于背景图像系列中的相应图像.
您可以在http://www.w3.org/TR/css3-background/#the-background-image获取更多详细信息