コードを完全にやり直しました。ほぼ完成しています。私が把握しようとしている最後のことは、ユーザーがプログラムで入力した文字列から大文字の数を取得する方法です。私はScannerとSystem.outをJavaFxなしで使ってプログラムを正しく実行しました。しかし、私は、コードをコンソール入力からテキストフィールドへの入力にどのように翻訳するかを理解していません。ここに私の新しいコードがあります。JAVA FX - 入力から大文字の数を取得する
import java.util.Scanner;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.control.Button;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
public class UppercaseLetters extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
// Create Pane
UpperCase pane = new UpperCase();
primaryStage.setTitle("UpperCase");
primaryStage.setScene(new Scene(pane));
primaryStage.show();
}
private class UpperCase extends GridPane {
Label lblString = new Label("Enter String:");
Label lblAmount = new Label("Number of capital Letters:");
TextField tfString = new TextField();
TextField tfAmount = new TextField();
private UpperCase() {
setHgap(10);
setVgap(10);
setPadding(new Insets(10,10,10,10));
add(lblString, 0, 0);
add(tfString, 1, 0);
add(lblAmount, 0, 1);
add(tfAmount, 1, 1);
tfString.setText("0");
tfString.setAlignment(Pos.CENTER_RIGHT);
tfAmount.setText("0");
tfAmount.setAlignment(Pos.CENTER_RIGHT);
Button submit = new Button("Submit");
HBox hButtons = new HBox(submit);
submit.setOnAction(e->{
});
}
}
}
ここには、JavaFxなしで実行されるプログラムのコードがあります。
import java.util.Scanner;
public class CapitalNumbers {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a string: ");
String s = input.nextLine();
System.out.println("The number of uppercase letters = " + count(s.toCharArray()));
}
public static int count(char[] chars) {
return count(chars, chars.length - 1);
}
public static int count(char[] chars, int high) {
int count = Character.isUpperCase(chars[high]) ? 1 : 0;
if (high == 0)
return count;
else
return count + count(chars, high - 1);
}
}
私はあなたの内部クラスUpperPaneが、私は完全にすることなく、今の作業プログラムにコードを編集したあなたのスタート機能 – BoDidely