我正在尝试切换到javafx而不是swing,但尝试找到执行确切任务的方法时有点坎坷。
获取一个读取纯文本文件并替换当前文本区域(不附加)的方法。
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);
}
}
答案 0 :(得分:0)
首先,我建议您查看本教程:http://code.makery.ch/library/javafx-8-tutorial/
如果你想构建结构良好的javafx应用程序,你必须创建 .fxml
文件,控制器类和(某些)模型 class(es)。
但对于这些要点,这里是答案。
如果要设置Region
的大小,则必须使用.setPrefSize(double,double)
方法,如果要设置动态,则必须使用myButton.prefSizeProperty().bind(anyRegionYouWantToBindTo.widthProprty())
}
我真的不明白你想要什么,我想你想要使用一些造型,然后你可以写一个.css
文件,然后把它放到textArea
&# 39; s styleClass
。
从文件中获取文字而不是使用textArea.appendText(String)
后,您必须使用textArea.setText(String)
我认为这些是您的问题的解决方案,但我强烈建议您阅读有关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);