2013-08-24 97 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