如何在javafx中完成边框长度?
How to complete border length in javafx?
我正在使用 CSS 开发 JavaFx 应用程序。我希望框线填满所有 space。
我有以下 CSS.
.box
{
-fx-border-color:#000 #ff0000 #00ff00 #0000ff;
-fx-border-width:5px;
}
这给出了结果:
我想要黑线覆盖顶部的所有部分。谢谢
有点丑陋,但您可以使用多个边框来简单地在旧边框上绘制顶部边框
.box
{
-fx-border-color: #000 #ff0000 #00ff00 #0000ff, #000;
-fx-border-width: 5px, 5px 0 0 0;
}
您可以对边框使用 "nested backgrounds" 技术:
.box {
-fx-background-color: #000, #f00, #00f, #0f0, -fx-background ;
-fx-background-insets: 0, 5 0 0 0, 5 5 0 0, 5 5 0 5, 5 ;
}
它的工作方式是绘制五个背景,一个在另一个之上,每个背景都有不同的插图。所以首先它绘制了一个黑色背景来填充整个窗格;然后它绘制一个红色背景填充整个窗格,除了顶部的 5 个像素;然后蓝色背景填充除顶部和右侧五个像素以外的所有内容,等等。
稍加思考,就可以很好地控制它。例如,将其更改为
.box {
-fx-background-color: #000, #0f0, #f00, #00f, -fx-background ;
-fx-background-insets: 0, 5 0 0 0, 5 0 5 0, 5 0 5 5, 5 ;
}
将使绿色边框沿底部横跨整个宽度,而不是让蓝色和红色边框一直延伸到窗格底部。
这是一个快速测试,上面的代码位于名为 box-style.css
:
的文件中
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class BorderTest extends Application {
@Override
public void start(Stage primaryStage) {
// just create a control so the default stylesheet is loaded:
new Label();
Pane root = new Pane();
root.getStyleClass().add("box");
Scene scene = new Scene(root, 400, 400);
scene.getStylesheets().add("box-style.css");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
有了第一个版本的CSS,这个看起来像
我正在使用 CSS 开发 JavaFx 应用程序。我希望框线填满所有 space。
我有以下 CSS.
.box
{
-fx-border-color:#000 #ff0000 #00ff00 #0000ff;
-fx-border-width:5px;
}
这给出了结果:
我想要黑线覆盖顶部的所有部分。谢谢
有点丑陋,但您可以使用多个边框来简单地在旧边框上绘制顶部边框
.box
{
-fx-border-color: #000 #ff0000 #00ff00 #0000ff, #000;
-fx-border-width: 5px, 5px 0 0 0;
}
您可以对边框使用 "nested backgrounds" 技术:
.box {
-fx-background-color: #000, #f00, #00f, #0f0, -fx-background ;
-fx-background-insets: 0, 5 0 0 0, 5 5 0 0, 5 5 0 5, 5 ;
}
它的工作方式是绘制五个背景,一个在另一个之上,每个背景都有不同的插图。所以首先它绘制了一个黑色背景来填充整个窗格;然后它绘制一个红色背景填充整个窗格,除了顶部的 5 个像素;然后蓝色背景填充除顶部和右侧五个像素以外的所有内容,等等。
稍加思考,就可以很好地控制它。例如,将其更改为
.box {
-fx-background-color: #000, #0f0, #f00, #00f, -fx-background ;
-fx-background-insets: 0, 5 0 0 0, 5 0 5 0, 5 0 5 5, 5 ;
}
将使绿色边框沿底部横跨整个宽度,而不是让蓝色和红色边框一直延伸到窗格底部。
这是一个快速测试,上面的代码位于名为 box-style.css
:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class BorderTest extends Application {
@Override
public void start(Stage primaryStage) {
// just create a control so the default stylesheet is loaded:
new Label();
Pane root = new Pane();
root.getStyleClass().add("box");
Scene scene = new Scene(root, 400, 400);
scene.getStylesheets().add("box-style.css");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
有了第一个版本的CSS,这个看起来像