Diskuze: Automatická velikost textu v Buttonu
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

					Člen				
			
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zapoměl jsem úplně zmínit, že dělám v JavaFX a bylo by dobré kdyby to
šlo udělat přes Scene Builder, ale určitě uvítam jakýkoli nápad 
Ahoj, ve SceneBuilderu tohle neuděláš. Po chvíli googlení a testování Ti můžu ukázat akorát ukázkový kód, zbytek už z toho musíš vykuchat sám.
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
    private static DoubleProperty fontSize = new SimpleDoubleProperty(10);
    private static IntegerProperty blues = new SimpleIntegerProperty(50);
    public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button("Resizable color");
        Parent parent = new StackPane(btn);
        Scene scene = new Scene(parent);
        fontSize.bind(scene.widthProperty().add(scene.heightProperty()).divide(50));
        parent.styleProperty().bind(Bindings.concat("-fx-font-size: ", fontSize.asString(), ";"
            ,"-fx-base: rgb(100,100,",blues.asString(),");"));
        primaryStage.setScene(scene);
        primaryStage.setWidth(800);
        primaryStage.setHeight(600);
        primaryStage.show();
    }
}
Toto když zkompiluješ a spustíš, tak dostaneš aplikaci, ve které se bude zvětšovat/zmenšovat tlačítko podle velikosti okna.
						Ahoj
Nieco podobne som uz riesil, mozes sa inspirovat mojim (trosku nepeknym) kodom:
public void setDynamicSizedButtons() {
        anchorContentPane.getScene().getWindow().widthProperty().addListener(new ChangeListener<Number>() {
            @Override
            public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
                if (((Double) newSceneWidth / 40) > 20 && ((Double) newSceneWidth / 40) < 40) {
                    squareBtns();
                    double fontSize = (((Double) newSceneWidth / 34));
                    double responsiveWidth = (((Double) newSceneWidth / 2.5));
                    String style = "-fx-font-size: " + fontSize + "px;" +
                            "-fx-pref-width: " + responsiveWidth + "px;";
                    tasks.get(0).getMenuButton().setStyle(style);
                    tasks.get(1).getMenuButton().setStyle(style);
                    tasks.get(2).getMenuButton().setStyle(style);
                    tasks.get(3).getMenuButton().setStyle(style);
                } else if (((Double) newSceneWidth / 40) < 20) {
                    verticalBtns();
                    String style = "-fx-font-size: " + 30 + "px;" +
                            "-fx-pref-height: " + 100 + "px;";
                    tasks.get(0).getMenuButton().setStyle(style);
                    tasks.get(1).getMenuButton().setStyle(style);
                    tasks.get(2).getMenuButton().setStyle(style);
                    tasks.get(3).getMenuButton().setStyle(style);
                }
            }
        });
    }
					Zobrazeno 5 zpráv z 5.