• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Modyfikacja prostego kodu w JavieFX

Cloud VPS
0 głosów
167 wizyt
pytanie zadane 19 czerwca 2018 w Java przez blofeld Użytkownik (700 p.)

Hej. Prośba chciałbym zmodyfikować poniższy kod tak aby TextField przyjmował tylko Stringi. Teraz karze wpisać tylko cyfry inaczej wyświetla komunikat. Chciałbym żeby było odwrotnie :-) Nijak nie mogę tego ogarnąć :-)

public class TextFieldWithCheckingAValue extends Application
{

    Stage blue;
    Button red;
    Scene verde;

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

    @Override
    public void start(Stage primaryStage) throws Exception
    {
        blue = primaryStage;
        blue.setTitle("Weclome");
        blue.setWidth(400);
        blue.setHeight(400);

        Label ela = new Label();
        ela.setText("Please Enter Your Age");

        TextField ala = new TextField();
        ala.setPromptText("Your Age Please");

        red = new Button("Check");
        red.setOnAction(event -> answer(ala, ala.getText()) );

        VBox aga = new VBox(10);
        aga.setPadding(new Insets(30,30,30,30));
        aga.getChildren().addAll(ela,ala,red);

        Scene verde = new Scene(aga);
        blue.setScene(verde);
        blue.show();

    }


    public boolean answer (TextField ale, String message)
    {
        try
        {
            int a = Integer.parseInt(ale.getText());
            System.out.println("User age is : \n" + message);
            return true;
        }
        catch (NumberFormatException e)
        {
            System.out.println("Sorry but \n"+message+"\n"+"is not a number\n");
            return false;
        }
    }
}

 

1 odpowiedź

0 głosów
odpowiedź 19 czerwca 2018 przez Wiciorny Ekspert (281,390 p.)

Podpowiedź... można by sprawdzać po kolei : korzystając np z metody 

Character.isLetter().

ewentualnie lepsze rozwiązanie to skorzystanie z  simple regular expression:

if (str.matches("[a-zA-Z]+$")) {
   // str consists entirely of letters
}

Jeszcze można pokusić się o zastosowanie odpowiedniego wzorca "JAVA PATTERNS" :) 

https://javarevisited.blogspot.com/2012/10/regular-expression-example-in-java-to-check-String-number.html

komentarz 19 czerwca 2018 przez blofeld Użytkownik (700 p.)

Przyjacielu Jesteś Wielki. Kilka dni nad tym siedziałem. Biblioteka Alpha mi w ogóle nie szła a tak, zadziałałem w ten sposób :

public class T48 extends Application
{
    Stage window;
    Scene blue;
    Button red;


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

    @Override
    public void start(Stage primaryStage) throws Exception
    {
        window = primaryStage;
        window.setTitle("Welcome");
        window.setWidth(400);
        window.setHeight(400);

        Label black = new Label();
        black.setText("Matrix");

        TextField aaa = new TextField();
        aaa.setPromptText("Tu wpisujemy text");




        red = new Button("Red");
        red.setOnAction(event -> Answer(aaa,aaa.getText()));


        VBox bbb = new VBox();
        bbb.setPadding(new Insets(25,25,25,25));
        bbb.getChildren().addAll(black,aaa,red);

        blue = new Scene(bbb);
        window.setScene(blue);
        window.show();

    }

    public boolean Answer(TextField ale, String message)
    {

        message= ale.getText();
        if(message.matches("[a-zA-Z]+$"))
        {System.out.println("Your Choice is: " + message);
        return true;}

        else
        System.out.println("Sorry ale wpisałeś cyfrę... ");
        return false;

    }

I poszło :-D

A Powiedz mi jeszcze tylko czy   str.matches() sprawdza tylko Stringi czy ma też zastosowanie przy cyfrach ? czyli że np int.matches("[0-9]" 

Podobne pytania

0 głosów
1 odpowiedź 810 wizyt
pytanie zadane 5 sierpnia 2018 w Java przez periedynek Obywatel (1,320 p.)
+1 głos
1 odpowiedź 115 wizyt
pytanie zadane 26 lutego 2017 w Java przez matir85 Bywalec (2,410 p.)
0 głosów
1 odpowiedź 226 wizyt
pytanie zadane 29 listopada 2017 w Nasze projekty przez Kapi2222 Obywatel (1,220 p.)

93,454 zapytań

142,449 odpowiedzi

322,718 komentarzy

62,834 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...