2015-10-22 4 views
0

Я пытаюсь изменить размер текста кнопки при изменении размера окна, но я не знаю, как это сделать. Я использую NetBeans, JavaFX и Scene Builder. Посмотрите на изображения: Кнопка увеличивается, но размер шрифта остается неизменным. from here to hereИзменить размер текста внутри кнопки

ответ

0

Вы можете использовать setFont метод. Например

button.setFont(Font.font(40)); 

изменить стиль текста

button.setFont(Font.font("Calibri",FontWeight.BOLD,20)); 
+0

нет, когда я перетащить окно и изменение размера кнопки, текст внутри кнопки должно измениться слишком ! но остаются одинаковыми! –

0

Вы можете изменить свойства и ScaleY свойство Scalex.

Предполагая, что вы изменяете размер с помощью внешней панели.

final double origHeight = outerPane.getPrefHeight(); 
final double origWidth = outerPane.getPrefWidth(); 
button.scaleXProperty().bind(outerPane.widthProperty().divide(origWidth)); 
button.scaleYProperty().bind(outerPane.heightProperty().divide(origHeight)); 

Вы можете вставлять код в разные места в зависимости от того, как вы настраиваете приложение.

Я проверил, вставив это в FXMLDocumentController, заменяя пустой initialze(), который уже был там:

@FXML 
private Button button; 

@FXML 
private AnchorPane outerPane; 

@Override 
public void initialize(URL url, ResourceBundle rb) { 
    final double origHeight = outerPane.getPrefHeight(); 
    final double origWidth = outerPane.getPrefWidth(); 
    button.scaleXProperty().bind(outerPane.widthProperty().divide(origWidth)); 
    button.scaleYProperty().bind(outerPane.heightProperty().divide(origHeight)); 
} 

Сохранить и скомпилировать, а затем заново SceneBuilder и установите fx:id на вкладке Код на право на которая изменяется на outerPane и кнопку button.

+0

Это не то решение, которое мне нужно, я должен прочитать шрифт кнопки, когда я трачу окно на draggin, и я не понимаю, как это сделать. Спасибо! –

+0

Изменение масштаба кнопки также изменяет текст на кнопке. – WillShackleford

+0

ваш код не работает очень хорошо, это то, что я вижу: [! [С] [1]] [1] [2] [1] [[к] [2]]: HTTP : //i.stack.imgur.com/gmeqe.png [2]: http://i.stack.imgur.com/We5cB.png –

0

Вы должны связать значение Font Size и применить его с помощью styleProperty(), например:

DoubleProperty fontSize22 = new SimpleDoubleProperty(22); 
fontSize22.bind(homeButton.widthProperty().add(homeButton.heightProperty()).divide(10)); 
homeButton.styleProperty().bind(Bindings.concat("-fx-font-size: ", fontSize22.asString(), "px;")); 
Смежные вопросы