[JavaFX] Jak ładnie wykończyć okno przy użyciu zewnętrznych plików css.

Odpowiedz Nowy wątek
2018-11-08 23:05
0

Witam. Mam taki kod okna:

<?xml version="1.0" encoding="UTF-8"?>
 
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.SeparatorMenuItem?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.Tab?>
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
 
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="720.0" prefWidth="1280.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
    <children>
        <MenuBar>
            <menus>
                <Menu mnemonicParsing="false" text="File">
                    <items>
                        <Menu mnemonicParsing="false" text="New">
                            <items>
                                <MenuItem fx:id="emailItem" mnemonicParsing="false" onAction="#fileCreator" text="E-mail" />
                                <MenuItem mnemonicParsing="false" text="Auto E-mail" />
                            </items>
                        </Menu>
                        <SeparatorMenuItem mnemonicParsing="false" />
                  <MenuItem fx:id="openFileMenuItem" mnemonicParsing="false" onAction="#fileOpener" text="Open" />
                  <SeparatorMenuItem mnemonicParsing="false" />
                        <MenuItem fx:id="saveMenuItem" mnemonicParsing="false" onAction="#saveClicked" text="Save" />
                        <MenuItem fx:id="saveAsMenuItem" mnemonicParsing="false" onAction="#saveAsClicked" text="Save as" />
                        <SeparatorMenuItem mnemonicParsing="false" />
                        <MenuItem fx:id="exitItem" mnemonicParsing="false" onAction="#exit" text="Exit" />
                    </items>
                </Menu>
                <Menu mnemonicParsing="false" text="Edit">
                    <items>
                        <MenuItem mnemonicParsing="false" text="Delete" />
                    </items>
                </Menu>
            <Menu mnemonicParsing="false" text="Send">
               <items>
                  <MenuItem fx:id="sendEmail" mnemonicParsing="false" onAction="#sendEmailClicked" text="Send" />
               </items></Menu>
                <Menu mnemonicParsing="false" text="Help">
                    <items>
                        <MenuItem mnemonicParsing="false" text="About" />
                    </items>
                </Menu>
            </menus>
        </MenuBar>
        <SplitPane dividerPositions="0.19248826291079812" VBox.vgrow="ALWAYS">
            <items>
                <StackPane fx:id="stackPaneLeftPanelOfSplitPane">
                    <children>
                        <VBox>
                            <children>
                                <StackPane>
 
                                </StackPane>
                            </children>
                        </VBox>
                    </children>
                </StackPane>
                <AnchorPane fx:id="anchorPaneFromSplitPane">
                    <children>
                        <TabPane fx:id="tabPane" prefHeight="454.0" prefWidth="670.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
                     <tabs>
                        <Tab text="Untitled Tab">
                           <content>
                              <AnchorPane prefHeight="200.0" prefWidth="200.0">
                                 <children>
                                    <Text fill="#090486" layoutX="429.0" layoutY="172.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Welcome in the Emailator!" textAlignment="CENTER" wrappingWidth="172.0">
                                       <font>
                                          <Font name="System Bold" size="12.0" />
                                       </font>
                                    </Text>
                                    <Text fill="#090486" layoutX="441.0" layoutY="188.0" strokeType="OUTSIDE" strokeWidth="0.0" text="If you want to: 
 create new file: File > New > Email 
 open file: File > Open">
                                       <font>
                                          <Font name="System Bold" size="12.0" />
                                       </font>
                                    </Text>
                                 </children>
                              </AnchorPane>
                           </content>
                        </Tab>
                     </tabs>
                        </TabPane>
                    </children>
                </AnchorPane>
            </items>
        </SplitPane>
    </children>
</VBox>
 

oraz taki plik CSS:

.split-pane *.split-pane-divider {
    -fx-padding: 0 1 0 1;
    -fx-background-color: #555555;
}
 
VBox {
    -fx-background-color: #313335;
    -fx-border-width: 1px;
    /*-fx-border-color: #4B4B4B;*/
}
 
StackPane {
    -fx-background-color: #BBBBBB;
    -fx-border-width: 1px;
}
 
TabPane {
    -fx-background-color: #313335;
    -fx-border-width: 1px;
}
 
MenuBar {
    -fx-background-color: #3C3F41;
    -fx-border-width: 1px;
    -fx-border-color: #4B4B4B;
}
 
Tab {
    -fx-background-color: #000000;
}

Screen w załączniku.

Całość wygląda słabo. Nie mogę zmienić koloru czcionki w Menu w MenuBar. MenuItemy po rozwinięciu Menu nie są pokolorowane. Nie wiem też jak ustawić kolor dla zakładki "Untitled Tab". Mógłby ktoś coś doradzić?

Co mogę zrobić aby całość wyglądała ładnie i aby wszystko się komponowało? Prosiłbym o pomoc i sugestie. 

Z góry dzięki za odpowiedzi.

  • file.png (0,09 MB) - ściągnięć: 12
edytowany 1x, ostatnio: IlikeJava, 2018-11-08 23:05

Pozostało 580 znaków

2018-11-08 23:09
0

Spróbuj się odwołać po klasie do tego untitled tab.
np.

.tab {
...
}

Korzystasz ze SceneBuildera?

Tak, korzystam. - IlikeJava 2018-11-08 23:10
Zmieniłem Tab na .tab i się wszystko koloruje. Co mogę zrobić z tymi brzydkimi białymi liniami między kontenerami? Jakieś pro tipy do CSS w JavieFX? - IlikeJava 2018-11-08 23:25

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0