代码之家  ›  专栏  ›  技术社区  ›  SDIDSA

JavaFx标签上的彩色表情符号[duplicate]

  •  0
  • SDIDSA  · 技术社区  · 6 年前

    font awesome javafx

    我需要帮助如何使用它在我的项目中使用fxml

    0 回复  |  直到 6 年前
        1
  •  9
  •   Glory    6 年前

    ControlFX 包括字体支持。 见 javadoc 更多信息(但我有一天测试过,效果很好)

        2
  •  14
  •   Nuno Rafael Figueiredo    10 年前

    我通过调整来使用足总图标 Jens Deters's approach

    他的例程以动态gui组合为目标,与fxml的声明方式相反。尽管如此, his AwesomeIcon enumeration (它将可理解的名称与unicode字符映射)完全符合我的意图。

    它应该从静态加载main/app类中的字体开始:

    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中使用unicode字符(根据需要指定FA图标),但可以动态设置具有此类值的属性。因此,通过上述枚举(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>
      

    实现控件/I的两个属性的控件/I结束:

    1. 价值观: FA图标名称;
    2. 样式的可样式属性 -fx-font-size 标签上的。

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

    可以找到该控件的代码 here . 您还可以找到一个工作示例,因为它包括字体和测试代码。

        3
  •  6
  •   Martin Pfeffer    9 年前

    这个showcase.jar会给你一个图标的概述。

    使用( 需要Java 1.8 ):

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

    FxIconics on GitHub

    enter image description here enter image description here

        4
  •  4
  •   SedJ601    7 年前

    如果你使用 SceneBuilder 试试这个。

    • 首先,下载 'fontawesomefx' .
    • 场景生成器 使用 场景生成器 的Jar/FXML管理器。
    • 三是图书馆检索 FontAwesomeIconView , GlyphCheckBox MaterialDesignIconView , MaterialIconView ,或 WeatherIconView

    <?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

    别忘了将这些jar添加到项目的类路径中!

        5
  •  4
  •   Omkar    6 年前

    正如@Sedrick所说,你可以使用 fontawesomefx 库并在FXML中使用它,如下所示:

    注: JavaFX8和FontAwesomeFx v8.9

    仪表板.fxml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
    <?import javafx.scene.control.Button?>
    <?import javafx.scene.layout.AnchorPane?>
    
    <AnchorPane xmlns="http://javafx.com/javafx/8.0.121" 
        xmlns:fx="http://javafx.com/fxml/1"
        fx:controller="com.example.DashboardController" 
        prefHeight="760" prefWidth="1080">
    
        <Button text="Close" AnchorPane.topAnchor="0" AnchorPane.leftAnchor="0">
            <graphic>
                <FontAwesomeIconView glyphName="CLOSE" glyphSize="24"/>
            </graphic>
        </Button>
    
    </AnchorPane>
    

    在场景生成器中如下所示: screenshot of iconised button

        6
  •  1
  •   Amine ABBAOUI    6 年前

    你可以用 fontawesomefx 你可以浏览所有可用的图标 Fontawesome-fx Glyph browser