2016-11-16 8 views
2

私はJavaFXのラップテキストを私の人生に与えることはできません。代わりに私の箱はTextのサイズを取得します。JavaFXのテキストラップの仕方は?

これが私のメインです:

BorderPane main = FXMLLoader.load(getClass().getResource("main.fxml")); 

primaryStage.setTitle("D394"); 
primaryStage.setScene(new Scene(main, 1000, 500)); 
primaryStage.getScene().getStylesheets().add("main.css"); 
primaryStage.show(); 

そして、これは私のmain.fxmlです。それはかなり大きいです、申し訳ありません。テキストの

<BorderPane prefHeight="401.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8.0.112-ea" 
      xmlns:fx="http://javafx.com/fxml/1" fx:controller="ro.softvisionmedia.gui.MainController"> 
    <top> 
     <MenuBar fx:id="menuBar" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity"> 
      <Menu items="" text="Lala"> 
      </Menu> 
     </MenuBar> 
    </top> 

    <center> 
     <TabPane fx:id="tabPane"> 

      <Tab id="tab_1" fx:id="tab1_D394" closable="false" text="D394"> 
      </Tab> 

      <Tab fx:id="tab2_DateIdentif" closable="false" text="Date identificare"> 
       <TabPane fx:id="tabPane_dateIdentif"> 
        <Tab fx:id="identifPersTVA" closable="false" text="Persoana inregistrata in scopuri de TVA"> 
        </Tab> 

        <Tab fx:id="identifRepFiscal" closable="false" text="Reprezentant fiscal/legal/imputernicit"> 
        </Tab> 
        <Tab fx:id="identifIntocmit" closable="false" text="Intocmitor"> 
         <VBox fx:id="vBoxIntocmitor"> 
          <HBox> 
           <TextFlow> 
            <Text text="Subsemnatul "/> 
            <Text fx:id="denumireRtext"/> 
            <Text text=", in calitate de reprezentant legal, "/> 
            <TextField fx:id="functieReprez"/> 
            <Text>declar, sub 
             sanctiunile aplicate faptei de fals in acte publice, ca datele din aceasta 
             declaratie sunt corecte si complete, iar persoana care a intocmit prezenta 
             declaratie este 
            </Text> 
           </TextFlow> 
          </HBox> 
          <HBox> 
           <Label text="Denumire/nume prenume"/> 
           <TextField fx:id="denumireIntocmitor"/> 
           <Label text="CUI/CNP/NIF"/> 
           <TextField fx:id="cifIntocmitor"/> 
          </HBox> 
          <HBox> 
           <Label text="Persoana juridica"/> 
           <RadioButton fx:id="tipIntocmitorPJ"/> 
           <Label text="Calitate"/> 
           <TextField fx:id="calitateIntocmitor"/> 
          </HBox> 
          <HBox> 
           <Label text="Persoana fizica"/> 
           <RadioButton fx:id="tipIntocmitorPF"/> 
           <Label text="Functia in cadrul persoanei impozabile"/> 
           <TextField fx:id="functieIntocmitor"/> 
           <Label text="Alta calitate"/> 
           <Text text="?????"/> 
           <!-- @todo ce vine aici? --> 
          </HBox> 
          <HBox> 
           <TextFlow> 
            <Text text="De asemenea, subsemnatul "/> 
            <Text fx:id="denumireRtext2"/> 
            <Text text=",in calitate de reprezentant legal "/> 
            <Text fx:id="functieReprezText"/> 
            <Text text=" declar:"/> 
           </TextFlow> 
          </HBox> 
          <HBox> 
           <Text>1. sunt de acord ca, pentru anul fiscal 2016, in sensul prevederilor art. 11 alin 
            (3) lit. d) din Legea nr. 207/2015 privind Codul de procedura fiscala, datele 
            inscrise in 
            prezenta declaratie referitoare la tranzactiile derulate cu fiecare persoana 
            impozabila (client/furnizor) inregistrata in scopuri de TVA sa fie consultate de 
            catre aceasta 
            prin intermediul aplicatiei informatice pusa la dispozitie de ANAF. 
           </Text> 
           <RadioButton fx:id="optinueDA" text="Da"/> 
           <RadioButton fx:id="optiuneNU" text="Nu"/> 
          </HBox> 
          <HBox> 
           <Text>2. Sunt de acord cu schimbarea optiunii , astfel ca pentru anul fiscal 2016, in 
            sensul prevederilor art. 11 alin (3) lit. d) din Legea nr. 207/2015 privind Codul de 
            procedura fiscala, datele inscrise in prezenta declaratie referitoare la 
            tranzactiile derulate cu fiecare persoana impozabila (client/furnizor) inregistrata 
            in scopuri de 
            TVA sa fie consultate de catre aceasta prin intermediul aplicatiei informatice pusa 
            la dispozitie de ANAF 
           </Text> 
           <RadioButton fx:id="schimbOptiuneDA" text="Da"/> 
           <RadioButton fx:id="schimbOptiuneNU" text="Nu"/> 
          </HBox> 
         </VBox> 
        </Tab> 
       </TabPane> 
      </Tab> 
     </TabPane> 
    </center> 

    <bottom> 
     <HBox prefHeight="0.0" prefWidth="897.0"> 
      <Button onAction="#nextTab" text="Pagina urmatoare"/> 
      <Button onAction="#validate" text="Valideaza XML-ul"/> 
      <Button onAction="#validateCreate" text="Valideaza XML-ul si creeaza PDF"/> 
      <Button onAction="#validateCreateSign" text="Valideaza XML-ul si creeaza PDF semnat"/> 
     </HBox> 
    </bottom> 
</BorderPane> 

This is how it ends up looking setPrefWidthHBox ESを小さくすることは何も

は、テキストの折り返しを行いませんが、それは他のHBox ESからのテキストの上に終わるん。

私が欲しいのは、実際のサイズと同じサイズにするHBoxの幅にテキストを折り返すことです。

私のコントローラはスタイリングとレイアウトに関して何もしません。私の.cssは何もしません。

私はjava8を使用しています。

答えて

3

wrappingWidthPropertyを使用して、ラッピング幅をピクセル単位で定義することができます。

あなたはバインディングでそれを使用することができます。

textID.wrappingWidthProperty().bind(tabPane.widthProperty()); 

これはTabPaneの幅に言及したプロパティをバインドします。注:幅がTextの実際の幅であるため、HBoxまたはVBoxへのバインディングは機能しません(HBoxTextの幅にリサイズされ、VBoxHBoxの幅にリサイズされます)。

0

私はこれと同様の必要性を簡単なダイアログボックスで持っていました。ダイアログボックスのルートは2x2のGridPaneです。各行には、両方の列にまたがるHBoxが含まれています。ラベルを使用して、行0のHBox内のメッセージを表示します。テキストを折り返すために、私は以下を使用します: ラベルラベル=新しいラベル(メッセージ); label.setWrapText(true);

もちろん、ラベルをHBoxに追加します。あなたの例では、おそらくあなたがする必要があるのは、Text to Labelを変更するだけです。これはうまくいくでしょう。

SceneBuilderを使用している場合は、[ラベル]の[プロパティ]タブに行き、[折り返しテキスト]チェックボックスをクリックします。

関連する問題