2014-06-26 10 views
7

मैं अपने प्रोजेक्ट में फ़ॉन्ट फ़ॉन्ट का उपयोग करना चाहता हूं लेकिन मुझे नहीं पता कि मेरी परियोजना में फ़ॉन्ट का उपयोग कैसे किया जा सकता है।एक fxml प्रोजेक्ट (javafx) में फ़ॉन्ट भयानक का उपयोग कैसे करें

मुझे कुछ उदाहरण मिला लेकिन उन्हें एफएक्सएमएल में उपयोग नहीं किया जा सकता है।

font awesome javafx

मैं मदद कैसे fxml

का उपयोग कर अपने प्रोजेक्ट में इसका इस्तेमाल करने के लिए धन्यवाद जरूरत है ...

उत्तर

2

मुझे लगता है कि यह है कि क्या आप ControlFX फ़ॉन्ट भयानक समर्थन शामिल है कि जरूरत है। अधिक जानकारी के लिए javadoc देखें (लेकिन मैंने इसे एक दिन परीक्षण किया और यह ठीक काम करता है)

9

मैंने Jens Deters's approach को अनुकूलित करके एफए आइकन का उपयोग करके हासिल किया।

उनके दिनचर्या एफएक्सएमएल के घोषणात्मक तरीके का विरोध करने वाली गतिशील गुई संरचना को लक्षित करते हैं। फिर भी, his AwesomeIcon enumeration (जो यूनिकोड वर्णों के साथ एफए समझने योग्य नामों को मानचित्र करता है) पूरी तरह से मेरे इरादों के अनुकूल है।

यह स्थिर से शुरू कर देना चाहिए मुख्य/एप्लिकेशन कक्षा में फॉन्ट लोड:

public class App extends Application { 
    static { 
     Font.loadFont(App.class.getResource("/font/fontawesome-webfont.ttf").toExternalForm(), 10); 
    } 

    @Override 
    public void start(final Stage primaryStage) throws Exception { 
     URL resource = getClass().getResource("/fxml/app.fxml"); 
     primaryStage.setScene(new Scene((Parent) FXMLLoader.load(resource), 500, 500)); 
     primaryStage.setTitle("FontAwesomeFX demo"); 
     primaryStage.show(); 
    } 

    public static void main(String... args){ 
     launch(args); 
    } 
} 

एक (के रूप में एफए प्रतीक को निर्दिष्ट करने के लिए आवश्यक है), लेकिन यह कर सकते हैं गतिशील सेट इस तरह के मूल्यों के साथ जिम्मेदार बताते हैं fxml में यूनिकोड वर्ण उपयोग नहीं कर सकते । इसलिए जैसा कि ऊपर उल्लेख गणना (AwesomeIcon) होने, काम किया गया था:

  1. आयात:

    <?import de.jensd.fx.fontawesome.AwesomeIcon?> 
    
  2. नोड:

    <Label styleClass="awesome" 
         style="-fx-font-family: FontAwesome; -fx-font-size: 16.0;"> 
        <text><AwesomeIcon fx:constant="FILE"/></text> 
    </Label> 
    

मैं अंत को लागू करने दो गुणों के साथ कोड की मात्रा को फिर से शुरू करने के लिए एक आइकन विजेट/नियंत्रण/घटक:

  1. मूल्य: एफए आइकन नाम;
  2. आकार: लेबल पर शैली -fx-font-size शैली के लिए शैली योग्य विशेषता।

नए कोड (एक ही प्रभाव):

<Icon value="FILE" size="16"/> 

कि नियंत्रण के लिए कोड here पाया जा सकता है। आप एक कामकाजी उदाहरण भी पा सकते हैं क्योंकि इसमें फ़ॉन्ट और परीक्षण कोड शामिल है।

+0

मैंने कोशिश की, लेकिन वास्तविक आइकन की बजाय कमजोर प्रतीकों को प्राप्त करना। क्षमा करें मैं जावा और जावाएफएक्स के लिए नया हूँ। इसके अलावा मैं अपने कोड "फ़ॉन्ट एनवेम v4.1.0 पर आधारित आइकन एनम" में निर्दिष्ट FontAwesom के बिल्कुल वही संस्करण का उपयोग कर रहा हूं। – ATHER

+0

शायद आप कुछ कदम चूक गए हैं। मैंने अभी एक कामकाजी उदाहरण पेश करने के लिए कोड अपडेट किया है। –

+0

धन्यवाद मैं इसे देख लूंगा। इसके अलावा जब मैंने '' दृश्यबिल्डर अब मेरे fxml को खोलता है और त्रुटि फेंकता है। क्या यह सामान्य है ? – ATHER

4

मैंने माइक पेन्ज़ द्वारा विकसित एफएक्स में एंड्रॉइड-आइकोनिक्स लाइब्रेरी को पोर्ट किया। अपडेट जल्द ही अनुसरण करेंगे (दस्तावेज़, साथ ही) ..

शोकेस.जर आपको आइकन का एक सिंहावलोकन देगा।

उपयोग (जावा 1।8 आवश्यक):

FxIconicsLabel labelTextDefault = 
       (FxIconicsLabel) new FxIconicsLabel.Builder(FxFontGoogleMaterial.Icons.gmd_folder_special) 
         .size(24) 
         .text("Right (default)") 
         .color(MaterialColor.ORANGE_500) 
         .build(); 

(या DialogPlayGround.java देख)

FxIconics on GitHub

enter image description here enter image description here

+0

छात्र प्रोजेक्ट के लिए जावाएफएक्स में एक एप्लीकेशन बनाना, मुझे आपका जार इंस्टॉल हो गया है, हालांकि मेरा प्रोग्राम FxIconicsLabel के साथ लाइन चलाते समय क्रैश हो जाता है। क्या मुझे आपके जीथब पेज के बाहर कुछ बंदरगाह करने की ज़रूरत है और यदि ऐसा है तो? जावाएफएक्स के लिए बहुत नया है। – arinh

+1

बाहर निकलता है मेरे पास जेडीके 1.7 था इसलिए मैंने 1.8 पर अपडेट किया और समस्या ठीक हो गई। इसे साझा करने के लिए आपको धन्यवाद! – arinh

1

आप SceneBuilder का उपयोग करते हैं इस प्रयास करें।

  • सबसे पहले, 'fontawesomefx' डाउनलोड करें।
  • दूसरा, SceneBuilder पर SceneBuilder के जार/एफएक्सएमएल प्रबंधक का उपयोग करते हुए आयात करें।
  • तीसरा, FontAwesomeIconView के लिए लाइब्रेरी खोज, GlyphCheckBox, MaterialDesignIconView, MaterialIconView, या WeatherIconView

नमूना FXML:

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

<?import de.jensd.fx.glyphs.control.GlyphCheckBox?> 
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?> 
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?> 
<?import de.jensd.fx.glyphs.materialicons.MaterialIconView?> 
<?import de.jensd.fx.glyphs.weathericons.WeatherIconView?> 
<?import javafx.scene.control.Label?> 
<?import javafx.scene.layout.StackPane?> 
<?import javafx.scene.layout.VBox?> 


<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1"> 
    <children> 
     <VBox maxHeight="-Infinity" maxWidth="-Infinity"> 
     <children> 
      <Label text="FontAwesomeIconView"> 
       <graphic> 
        <FontAwesomeIconView /> 
       </graphic> 
      </Label> 
      <Label text="GlyphCheckBox"> 
       <graphic> 
        <GlyphCheckBox /> 
       </graphic> 
      </Label> 
      <Label text="MaterialDesignIconView"> 
       <graphic> 
        <MaterialDesignIconView /> 
       </graphic> 
      </Label> 
      <Label text="MaterialIconView"> 
       <graphic> 
        <MaterialIconView /> 
       </graphic> 
      </Label> 
      <Label text="WeatherIconView"> 
       <graphic> 
        <WeatherIconView /> 
       </graphic> 
      </Label> 
     </children> 
     </VBox> 
    </children> 
</StackPane> 

enter image description here

करने के लिए इन जार जोड़ने के लिए मत भूलना अपने प्रोजेक्ट का क्लासपाथ!

संबंधित मुद्दे