2016-04-02 6 views
1

я определил FXML с GridPane 8 строк, который содержит следующие компоненты (FXML и CSS определения приведены в конце этой нити):JavaFX: Узел повторно размер не работает, как ожидалось

  • 2 CheckBoxes,
  • 2 Этикетки,
  • 2 Этикетки с областью и
  • 2 Кнопки с областью

область здесь используется т o загружать изображения, которые выполняются с помощью стиля CSS. Для каждого набора компонентов, определенных выше (например, 2 флажка), я беру его, и я увеличил его размер, используя стиль -fx-font-size. В частности, я определяю размер шрифта как "1.3xDefault_System_Font_Size (12)". Теги (INC) и (DEF) в тексте каждого компонента используются для описания того, увеличен ли размер шрифта или осталось значение по умолчанию.

enter image description here

Как вы можете видеть на скриншоте выше, метка флажка увеличивается, но сама коробка не сделал. То же самое относится и к изображениям, что их размер не увеличивался, но размер метки делался.

Это становится хуже, когда я изменить размер шрифта по умолчанию в .root:

.root{ 
    -fx-font-size: 28; 
} 

В приведенном выше примере, так как я изменил размер шрифта по умолчанию от 12 до 28, я надеюсь, что все этикетки и изображения для изменения их размер в соответствии с этим новым размером. Размер изображения определяется размером -fx-background, который является 4em.

Однако все ярлыки увеличены правильно, но изображения правильно установлены только на этих узлах с тегом DEF. То же самое относится и к флажку, где его ярлык и коробка увеличены на DEF, тогда как один с тегом только размер этикетки увеличился правильно, и коробка осталась маленькой.

enter image description here

Есть ли способ сделать изображения и коробка флажок, чтобы правильно увеличить их размер? Это ошибка, или я делаю что-то неправильно?

FXML: Gridpane

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.geometry.Insets?> 
<?import javafx.scene.control.Button?> 
<?import javafx.scene.control.CheckBox?> 
<?import javafx.scene.control.Label?> 
<?import javafx.scene.layout.ColumnConstraints?> 
<?import javafx.scene.layout.GridPane?> 
<?import javafx.scene.layout.Region?> 
<?import javafx.scene.layout.RowConstraints?> 

<GridPane stylesheets="@css/Test.css" vgap="5.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ebay.client.controller.SettingsScreenController"> 
    <children> 
     <CheckBox nodeOrientation="RIGHT_TO_LEFT" styleClass="increased_font" text="CheckBox (Inc)" GridPane.rowIndex="1" /> 
     <CheckBox nodeOrientation="RIGHT_TO_LEFT" text="CheckBox (Def)" GridPane.rowIndex="2" /> 
     <Label cache="true" styleClass="increased_font" text="Label (Inc)" GridPane.rowIndex="3" /> 
     <Label cache="true" text="Label (Def)" GridPane.rowIndex="4" /> 
     <Label cache="true" styleClass="increased_font" text="Label With Image (Inc)" GridPane.rowIndex="5"> 
      <graphic><Region styleClass="javasuns_logo" /></graphic> 
     </Label> 
     <Label cache="true" text="Label With Image (Def)" GridPane.rowIndex="6"> 
      <graphic><Region styleClass="javasuns_logo" /></graphic> 
     </Label> 
     <Button styleClass="increased_font" text="Button With Image (Inc)" GridPane.rowIndex="7"> 
      <graphic><Region styleClass="javasuns_logo" /></graphic> 
     </Button> 
     <Button text="Button With Image (Def)" GridPane.rowIndex="8"> 
      <graphic><Region styleClass="javasuns_logo" /></graphic> 
     </Button> 
    </children> 
</GridPane> 

CSS: Test.css

.increased_font { 
    -fx-font-size: 1.3em; 
} 

.javasuns_logo { 
    -fx-font-size: null; 
    -fx-pref-height: 2em; 
    -fx-pref-width: 4em; 
    -fx-background-image: url('../../icons/logo/javasuns.png'); 
    -fx-background-size: 4em; 
    -fx-background-repeat: no-repeat; 
    -fx-background-position: center; 
} 

ответ

0

Я знаю, что это старый вопрос, но я борюсь с этим прямо сейчас также. Я обнаружил, что когда вы используете pref-height и pref-width, вы не можете использовать -fx-font-size в том же классе, потому что он «сбрасывает» размер .root -fx-font-size до значения по умолчанию 12 ,

Я хотел установить определенный размер шрифта на некоторых кнопках, а также установить ширину и высоту, используя значения em. Это было невозможно, поэтому я создал ярлык внутри элемента Button, и здесь я могу правильно изменить размер шрифта метки. Поэтому, если я не использую размер шрифта и pref-width/height в том же классе/том же элементе управления, похоже, что он работает.