将文本字段更改为大写/小写无法正常工作

时间:2019-02-10 02:49:30

标签: javafx

创建GUI后,下一步是使按钮能够在按下时将文本字段更改为各自的大小写。但是,我尝试过的所有方法似乎都无法证明这一点。

    AppContainer.tabbedApp.Tabs.Add(new TitleBarTab(AppContainer.tabbedApp)
    {
         Content = new Form2 { Text = "Another Tab" }
   });
   AppContainer.tabbedApp.SelectedTabIndex = 0;

我如何检索文本肯定有问题,或者完全是因为我要在If语句中尝试进行操作?每个按钮都是我尝试过的两个版本,它们使我认为我在检索文本错误或操作错误。预先谢谢你!

1 个答案:

答案 0 :(得分:0)

其他地方是否需要字符串userText?直接通过getText()和setText()获取和设置userInput的文本会更好。此外,当您已经将它作为全局变量使用时,无需为userInput创建局部变量。

这是经过测试的代码,可以正常工作:(我删除了changeTextButton方法,直接从按钮中进行了更改,但这可以很容易地拆分出来。)

公共类UpperLowerClass扩展了应用程序{

private Button upperButton;
private Button lowerButton;
private TextField userInput;
private Stage window;


@Override
public void start(Stage primaryStage) {
    try {

        window = primaryStage;

        //GRID
        GridPane grid = new GridPane();
        grid.setPadding(new Insets(10, 10, 10, 10));
        grid.setVgap(10);
        grid.setHgap(10);


        //UPPERCASE BUTTON
        upperButton = new Button("Uppercase");
        upperButton.setOnAction(event -> {
            if(userInput.getText()!=null) {
                userInput.setText(userInput.getText().toUpperCase());
            }
        });
       // upperButton.setOnAction(this::changeTextButton);
        GridPane.setConstraints(upperButton, 0, 0);

        //LOWERCASE BUTTON
        lowerButton = new Button("Lowercase");
        //lowerButton.setOnAction(this::changeTextButton);
        lowerButton.setOnAction(event -> {
            if(userInput.getText()!=null) {
                userInput.setText(userInput.getText().toLowerCase());
            }
        });
        GridPane.setConstraints(lowerButton, 0, 1);

        //TEXTFIELD
        userInput = new TextField(); //don't need to create new Textfield here
        GridPane.setConstraints(userInput, 0, 2);

        grid.getChildren().addAll(upperButton, lowerButton, userInput);

        //SCENE
        Scene myScene = new Scene(grid, 300, 250);
        window.setScene(myScene);
        window.show();

    } catch(Exception e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    launch(args);
}

}