Ich habe den Code vollständig überarbeitet und es ist fast abgeschlossen. Das letzte, was ich herausfinden möchte, ist, wie man die Anzahl der Großbuchstaben aus der Zeichenkette erhält, die der Benutzer in das Programm eingibt. Ich habe das Programm korrekt mit Scanner und System.out ohne JavaFx ausgeführt. Ich habe jedoch nicht herausgefunden, wie man den Code von einer Konsoleneingabe in eine Eingabe in einem Textfeld übersetzt. Hier ist mein neuer Code.JAVA FX - Erhalten der Anzahl der Großbuchstaben von Eingang
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->{
});
}
}
}
Hier ist der Code für das Programm ohne 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);
}
}
Ich glaube nicht, Ihre innere Klasse UpperPane sollte – BoDidely