Javafx按钮大小,EmptyBorder和Read txt文件到TextArea

时间:2017-07-05 05:52:31

标签: button javafx textarea border

我正在尝试切换到javafx而不是swing,但尝试找到执行确切任务的方法时有点坎坷。

  1. 我试图让按钮宽度填满整个场景,并在调整场景大小时进行相应调整。
  2. 在文本区域和按钮周围设置一个小空边框。
  3. 获取一个读取纯文本文件并替换当前文本区域(不附加)的方法。

    package gui;
    
    mport javafx.application.Application;
    mport javafx.scene.Scene;
    mport javafx.scene.control.Button;
    mport javafx.stage.Stage;
    mport javafx.scene.layout.*;
    mport javafx.scene.control.TextArea;
    
    public class Main extends Application{
    
        @Override
        public void start(Stage primaryStage) throws Exception {
            primaryStage.setTitle("TextArea Experiment 1");
    
            TextArea textArea = new TextArea();
            // Which TextArea method would I call to set a plain 
            // text file into the text area ?      
            BorderPane border = new BorderPane();
            border.setCenter(textArea);
            //border.setBorder(new EmptyBorder(10,10,10,10));
            // Is there a method like this in JavaFx ?
            GridPane grid = new GridPane();
            border.setBottom(grid);
    
            double screensize = border.getMaxWidth();
            Button option1 = new Button("Button 1");
            Button option2 = new Button("Button 2");
            Button option3 = new Button("Button 3");
            // how can I get the buttons to be max scene size and 
            //adjust dynamically to scene dimensions ? 
            option1.setMaxSize(Double.MAX_VALUE,Double.MAX_VALUE);
            //option1.setPrefWidth(Double.MAX_VALUE);
            System.out.println(screensize);
            grid.add(option1, 0,1);
            grid.add(option2,0,2);
            grid.add(option3,0,3);
    
    
            Scene scene = new Scene(border, 200, 100);
            primaryStage.setScene(scene);
            primaryStage.show();
    
        }
    
        public static void main(String[] args) {
               Application.launch(args);
        }
    }
    

2 个答案:

答案 0 :(得分:0)

首先,我建议您查看本教程:http://code.makery.ch/library/javafx-8-tutorial/ 如果你想构建结构良好的javafx应用程序,你必须创建 .fxml 文件,控制器类和(某些)模型 class(es)。

但对于这些要点,这里是答案。

  1. 如果要设置Region的大小,则必须使用.setPrefSize(double,double)方法,如果要设置动态,则必须使用myButton.prefSizeProperty().bind(anyRegionYouWantToBindTo.widthProprty()) }

  2. 我真的不明白你想要什么,我想你想要使用一些造型,然后你可以写一个.css文件,然后把它放到textArea&# 39; s styleClass

  3. 从文件中获取文字而不是使用textArea.appendText(String)后,您必须使用textArea.setText(String)

  4. 我认为这些是您的问题的解决方案,但我强烈建议您阅读有关javafx的教程。所以玩得开心:)

答案 1 :(得分:0)

重写您的问题并仅询问此答案的问题。然后,您可以在自己的主题上询问其他问题。

    GridPane grid = new GridPane();
    grid.setMaxWidth(Double.MAX_VALUE);//Make sure the GridPane MaxWidth is set to MAX_VALUE. you can use grid.gridLinesVisibleProperty().set(true); to get an idea of the GRIDPANES current borders

    border.setBottom(grid);
    grid.gridLinesVisibleProperty().set(true);
    Button option1 = new Button("Button 1");
    option1.setMaxWidth(Double.MAX_VALUE);//Set button one MaxWidth to MAX_VALUE

    Button option2 = new Button("Button 2");
    option2.setMaxWidth(Double.MAX_VALUE);//Set button two MaxWidth to MAX_VALUE

    Button option3 = new Button("Button 3");
    option3.setMaxWidth(Double.MAX_VALUE);//Set button three MaxWidth to MAX_VALUE

    //Add ColumnConstraints and set the width to 100%.
    ColumnConstraints columnConstraint = new ColumnConstraints();
    columnConstraint.setPercentWidth(100);
    grid.getColumnConstraints().add(0, columnConstraint);

    grid.add(option1, 0, 1);
    grid.add(option2, 0, 2);
    grid.add(option3, 0, 3);

enter image description here

enter image description here