JavaFX按钮文本不显示

时间:2018-06-23 21:14:36

标签: java button javafx

我目前正在JavaFX中创建布局。但是,我的按钮的文本在某些地方显示,而对于某些按钮,文本仅显示为“ ...”。
我想在按钮中显示整个文本,同时保持窗口大小为500x500。
这是我的代码,我正在创建10个按钮,只有其中一些显示其文本。有什么办法可以在整个布局中设置按钮大小不变,同时还能显示其文本?

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class MainGUI extends Application {
    private Button[] buttons=new Button[10];
    private Stage window;
    private GridPane layout;
    public int count=3;
    @Override
    public void start (Stage primaryStage)
    {
        window=primaryStage;
        layout=new GridPane();
        layout.setPadding(new Insets(100));
        layout.setVgap(10);
        layout.setHgap(10);

        for(int i=0;i<10;i++)
        {
            buttons[i]=new Button();
        }
        buttons[0].setText("y=0.5x");
        buttons[1].setText("y=x");
        buttons[2].setText("y=2x");
        buttons[3].setText("y=0.1x^2");
        buttons[4].setText("y=x^2");
        buttons[5].setText("y=10x^2");
        buttons[6].setText("y=3 sin(x pi/10)");
        buttons[7].setText("y=6 sin(x pi/10)");
        buttons[8].setText("y=6 sin(x pi/5)");
        buttons[9].setText("y= 5 sin(x pi/10) + (5/3)sin(3x pi/10) + sin(x pi/2) + (5/7)sin(7x pi/10)");

        for(int j=0;j<10;j++)
        {
            if (count==3)
            {
                count=0;
            }
            if(j<=2)
            {
                GridPane.setConstraints(buttons[j],count,0);
            }
            else if ((j>2) && (j<=5))
            {
                GridPane.setConstraints(buttons[j],count,1);
            }
            else if((j>5) && (j<=8))
            {
                GridPane.setConstraints(buttons[j],count,2);
            }
            else if((j>8) && (j<=9))
            {
                GridPane.setConstraints(buttons[j],1,3);
            }
            count++;
        }
        layout.getChildren().addAll(buttons);
        Scene scene=new Scene(layout,600,600);
        window.setScene(scene);
        window.show();
    }
    public static void main(String[] args)
    {
        launch(args);
    }
}

1 个答案:

答案 0 :(得分:0)

这是带有0个插图的外观:

enter image description here

如您所见,它非常安静。 一个简单的替代方法是使最后一个长按钮跨越两列:

GridPane.setConstraints(buttons[j],1,3,2,1);

产生的结果

enter image description here

要更好地控制布局,请考虑使用一些子窗格。例如:

enter image description here