2013-08-24 67 views
2

我有这个CSS文件,该文件将在JavaFX应用程序的默认字体大小和类型:热更新动态字体大小

.root { 
    -fx-font: 13px Tahoma; 
} 

scene.getStylesheets().add(getClass().getResource("/styles/Styles.css").toExternalForm()); 

我想动态的更新从Java代码的大小和字体类型根组件(所有组件)。我如何做到这一点?

注: 此代码更新字体类型和所有组件的尺寸到JavaFX应用程序。

+0

你有一个问题中的矛盾。请修改它。 –

回答

2

请考虑采取看看官方的JavaFX documentation。在那里,你发现它回答你的问题的代码示例:

Text t = new Text("That's the text"); 
t.setFont(Font.font ("Verdana", 20)); 

UPDATE

在您的应用程序控制器,让你的根窗格的一个实例,例如AnchorPane并使用setId("")函数来设置新的风格为整个面板(我actionChange与上面板的按钮,触发事件/更改连接):

public class AppController implements Initializable { 
    @FXML 
    private AnchorPane mainPane; 

    @Override 
    public void initialize(URL arg0, ResourceBundle arg1) { 
     // TODO Auto-generated method stub 
    } 

    @FXML 
    public void actionChange() { 
     mainPane.setId("fancytext"); 
    } 
} 

按下按钮时,该样式为窗格已更改。我只是以字体大小为例。之前,你需要在你的CSS文件中指定的新样式:

.root { 
    -fx-font: 12px Tahoma; 
} 

#fancytext { 
    -fx-font: 20px Tahoma; 
} 

这之前:

Before the button is pressed

被按下按钮后的:

After the button is pressed