JavaFx - 在文本和制表符 header 区域边缘之间增加 space
JavaFx - increase space between text and tab header area edge
我不明白我应该用什么元素来完成这个任务。我试过了
.tab-header-area .tab{
-fx-background-color:red;
-fx-padding:30px;
}
编辑 1
这就是我得到的
但我在大红色矩形内有相同的选项卡 header。如何增加标签 header 区域的文本和边缘之间的距离?换句话说 - 我怎样才能使标签 header 使用相同的字体大小变大?
编辑 2
当我这样做时
.tab-header-area .tab .label{
-fx-padding:5px 30px 5px 0;
}
.tab-header-area .tab {
-fx-background-color: red ;
}
我得到:
但我需要(抱歉,这是 gimp,不是 photoshop)
如果你想在选项卡(而不是标签)周围加一个边框,你必须使用这个:
.tab-pane > .tab-header-area > .headers-region > .tab {
-fx-background-color: red;
-fx-padding: 20px;
-fx-border-color: black;
-fx-border-width: 1px;
}
如果你想操纵 tab-container(标签所在的位置)本身,你需要这个:
.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container{
-fx-border-color: black;
-fx-border-width: 1px;
}
.tab-pane > .tab-header-area > .headers-region > .tab {
-fx-padding: 20px;
-fx-background-color: red;
}
更新
所选选项卡的默认设置是:
.tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator {
-fx-border-width: 1, 1;
-fx-border-color: -fx-focus-color, -fx-faint-focus-color;
-fx-border-insets: -4 -4 -6 -5, -2 -2 -5 -3;
-fx-border-radius: 2, 1; /* looks sharper if outer border has a tighter radius (2 instead of 3) */
}
事情是这样的:
.tab-pane > .tab-header-area > .headers-region > .tab {
-fx-padding: 20px;
-fx-background-color: red;
}
.tab-pane > .tab-header-area > .headers-region > .tab:selected {
-fx-padding: 20px;
-fx-background-color: red;
-fx-border-width: 1px;
-fx-border-color: black;
}
.tab-pane > .tab-header-area > .headers-region >.tab:selected .focus-indicator{
-fx-border-width: 0px;
}
查看 modena.css(默认 JavaFX 样式表)文件以获取有关更改内容的信息。
字体大小不会动态变化,您必须在选项卡的 size/width/height 属性 上使用监听器来处理字体大小(与字体大小有关)。
还有很多伪标签,例如 .tab:selected .tab:top 等。因此,如果您只希望在新设计中使用默认行为,请注意此类事情。
最后看看 css 选择器,您错过了降序选择器 ('>'):http://www.w3schools.com/cssref/sel_element_gt.asp
不太清楚你在找什么...也许
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.stage.Stage;
public class TabPaneStyleTest extends Application {
@Override
public void start(Stage primaryStage) {
TabPane tabPane = new TabPane();
Tab tab1 = new Tab();
tab1.setGraphic(new Label("tab 1"));
Tab tab2 = new Tab();
tab2.setGraphic(new Label("tab 2"));
tabPane.getTabs().addAll(tab1, tab2);
Scene scene = new Scene(tabPane);
scene.getStylesheets().add("tab-pane-big-tabs.css");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
使用 css 文件
.tab-header-area .tab .label{
-fx-padding:5px 30px 5px 0;
}
.tab-header-area .tab {
-fx-background-color: red ;
}
我不明白我应该用什么元素来完成这个任务。我试过了
.tab-header-area .tab{
-fx-background-color:red;
-fx-padding:30px;
}
编辑 1
这就是我得到的
但我在大红色矩形内有相同的选项卡 header。如何增加标签 header 区域的文本和边缘之间的距离?换句话说 - 我怎样才能使标签 header 使用相同的字体大小变大?
编辑 2
当我这样做时
.tab-header-area .tab .label{
-fx-padding:5px 30px 5px 0;
}
.tab-header-area .tab {
-fx-background-color: red ;
}
我得到:
但我需要(抱歉,这是 gimp,不是 photoshop)
如果你想在选项卡(而不是标签)周围加一个边框,你必须使用这个:
.tab-pane > .tab-header-area > .headers-region > .tab {
-fx-background-color: red;
-fx-padding: 20px;
-fx-border-color: black;
-fx-border-width: 1px;
}
如果你想操纵 tab-container(标签所在的位置)本身,你需要这个:
.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container{
-fx-border-color: black;
-fx-border-width: 1px;
}
.tab-pane > .tab-header-area > .headers-region > .tab {
-fx-padding: 20px;
-fx-background-color: red;
}
更新
所选选项卡的默认设置是:
.tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator {
-fx-border-width: 1, 1;
-fx-border-color: -fx-focus-color, -fx-faint-focus-color;
-fx-border-insets: -4 -4 -6 -5, -2 -2 -5 -3;
-fx-border-radius: 2, 1; /* looks sharper if outer border has a tighter radius (2 instead of 3) */
}
事情是这样的:
.tab-pane > .tab-header-area > .headers-region > .tab {
-fx-padding: 20px;
-fx-background-color: red;
}
.tab-pane > .tab-header-area > .headers-region > .tab:selected {
-fx-padding: 20px;
-fx-background-color: red;
-fx-border-width: 1px;
-fx-border-color: black;
}
.tab-pane > .tab-header-area > .headers-region >.tab:selected .focus-indicator{
-fx-border-width: 0px;
}
查看 modena.css(默认 JavaFX 样式表)文件以获取有关更改内容的信息。
字体大小不会动态变化,您必须在选项卡的 size/width/height 属性 上使用监听器来处理字体大小(与字体大小有关)。
还有很多伪标签,例如 .tab:selected .tab:top 等。因此,如果您只希望在新设计中使用默认行为,请注意此类事情。
最后看看 css 选择器,您错过了降序选择器 ('>'):http://www.w3schools.com/cssref/sel_element_gt.asp
不太清楚你在找什么...也许
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.stage.Stage;
public class TabPaneStyleTest extends Application {
@Override
public void start(Stage primaryStage) {
TabPane tabPane = new TabPane();
Tab tab1 = new Tab();
tab1.setGraphic(new Label("tab 1"));
Tab tab2 = new Tab();
tab2.setGraphic(new Label("tab 2"));
tabPane.getTabs().addAll(tab1, tab2);
Scene scene = new Scene(tabPane);
scene.getStylesheets().add("tab-pane-big-tabs.css");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
使用 css 文件
.tab-header-area .tab .label{
-fx-padding:5px 30px 5px 0;
}
.tab-header-area .tab {
-fx-background-color: red ;
}