• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

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

VPS Starter Arubacloud
0 głosów
318 wizyt
pytanie zadane 8 listopada 2018 w Java przez ILikeJava Obywatel (1,230 p.)

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: &#10; create new file: File &gt; New &gt; Email &#10; open file: File &gt; 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;
}

Wszystko wygląda tak:

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.

1 odpowiedź

0 głosów
odpowiedź 9 listopada 2018 przez sefir Dyskutant (8,560 p.)
Proponuję się przesiąść na coś innego niż javafx. Spędziłem w tym dużo czasu i doszedłem do wniosku, że to nie ma sensu. Od strony bindowania danych jest jeszcze spoko, ale samo doszlifowanie widoku aby działał i wyglądał jak chcemy sprawia wiele problemów. Nieraz trzeba naklepać sporą ilość kodu aby osiągnąć jakąś trywialną mogłoby się wydawać rzecz. Ja porzuciłem javafx gdy pojawił się pewien bug polegający na tym, że kolor czcionki postanowił mieć tęczowe kolorki, tak, że każda litera w wyrazie miała inny kolor. Inny problem to jakieś pojawiające się graficzne artefakty podczas rozciągania okna. Nie wiadomo czy się śmiać czy płakać w momencie gdy projekt jest w zaawansowanym stadium. Lepiej postawić na coś sprawdzonego jak html, przynajmniej jest to rozwijane w przeciwieństwie do javafx.
komentarz 9 listopada 2018 przez ILikeJava Obywatel (1,230 p.)
A jaką inną bibliotekę itp. do UI dla Javy polecasz?
komentarz 9 listopada 2018 przez multim Obywatel (1,830 p.)
Choćby nawet Swing. Ale na desktop, to raczej wybrałbym C# niż Java.
komentarz 9 listopada 2018 przez ILikeJava Obywatel (1,230 p.)

Za Swinga podziękuje ;) Nie przypadł mi do gustu.

 Ale na desktop, to raczej wybrałbym C# niż Java.

Na Jave na ma żadnej godnej polecenia biblioteki do tworzenia GUI? 

komentarz 10 listopada 2018 przez sefir Dyskutant (8,560 p.)
edycja 10 listopada 2018 przez sefir
A no niestety nie ma nic ciekawego. I pozostaje opcja męczyć się z tym co jest albo przejść na inne technologie. Ja w ten sposób przesiadłem się z javy do nodejs. W końcu czuję, że nic mnie nie ogranicza.

Wszystko też zależy do czego dążysz. A narzędzia powinno się dobierać do konkretnego problemu.

Podobne pytania

0 głosów
1 odpowiedź 700 wizyt
0 głosów
1 odpowiedź 823 wizyt
pytanie zadane 17 sierpnia 2018 w Java przez Darek554 Użytkownik (980 p.)
0 głosów
0 odpowiedzi 234 wizyt
pytanie zadane 6 sierpnia 2017 w Java przez Rubeus024 Obywatel (1,680 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...