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

getText() - javafx - wyciągnięcie inputa z textFielda

Object Storage Arubacloud
0 głosów
1,398 wizyt
pytanie zadane 25 stycznia 2018 w Java przez must Bywalec (2,980 p.)

Cześć, tworzę aplikację desktopową za pomocą Scene Buildera. Nie mam pojęcia jak, mimo przeglądniecia juz 10 stron (żyłka juz mi pulsuje), wyciągnąc inta oraz stringa która wpiszę użytkownik do textFielda. 

Kieruje się wzorcem projektowym MVC.

Gdzie mam to zrobić, jak to zrobić. Wiem, że trzeba użyć tego: text.getText(), ale jak to zrobić, to nie wiem:

FXML: 

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="182.0" prefWidth="383.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.ContollerOfCaloriesCounter">
   <children>
      <Label layoutX="17.0" layoutY="27.0" text="Wpisz produkt:" />
      <Label layoutX="17.0" layoutY="54.0" text="Wpisz wagę:" />
      <TextField layoutX="126.0" layoutY="23.0" prefHeight="25.0" prefWidth="126.0" />
      <TextField layoutX="126.0" layoutY="50.0" prefHeight="17.0" prefWidth="47.0" />
      <Label layoutX="15.0" layoutY="129.0" text="Liczba kalorii:" />
      <Button layoutX="122.0" layoutY="79.0" onAction="#countCalories" mnemonicParsing="false" text="OBLICZ" />
      <Label layoutX="112.0" layoutY="129.0" />
   </children>
</AnchorPane>

 

Controller:

package sample;

import java.awt.*;

public class ContollerOfCaloriesCounter {
    Products product = new Products();
    TextField text = new TextField();
    public void countCalories()
    {
        System.out.println(text.getText());
        
    }

}

Jakiś przykład albo cokolwiek, bo naprawde jestem bezradny...

 

1 odpowiedź

+1 głos
odpowiedź 25 stycznia 2018 przez Wiciorny Ekspert (270,110 p.)
wybrane 25 stycznia 2018 przez must
 
Najlepsza

Inta? I stringa jeśli osobno no to do stringa bierzesz 

String słowo = (String) textfield.getText(); mozesz kastować na string chociaż nie koniecznie

jeśli masz inta w polu tekstowym to 

  int savedValue = Integer.parseInt(userInput);

pytanie chcesz wyciągnąć z obiektu ... okej, ale 

 TextField text = new TextField();

tworzysz pusty obiekt, zaraz po tym chcesz wyciągnąć "nula?"? On nie jest inicjowany, musisz określić akcje np. w momencie wywołania akcji. 

Dla przykładu jeszcze: 

textField.addActionListener(this);
The actionPerformed method handles action events from the text field:

private final static String newline = "\n";
...
public void actionPerformed(ActionEvent evt) {
    String text = textField.getText();
    textArea.append(text + newline);
    textField.selectAll();
}

Trzecia opcja- Czemu kontroler używa AWT? a XML- piszesz w JavaFX? To są dwie różne technologie

zamiast java awt, użyj JAVAFX...

1
komentarz 25 stycznia 2018 przez Kapi2222 Obywatel (1,220 p.)
Po 1 wyrzuć ten import java.awt.* ,bo to jest technologia Swing, a Ty chcesz skorzystać z JavyFX więc musisz importować z bibliotek JavyFX.

Po 2 aby pobrać coś z textfieldu, to najpierw musisz w Scene Builderze nadać konkretne ID temu textfieldowi. Następnie w kodzie za pomocą adnotacji @FXML przypisujesz ten TextField i wówczas masz połączony widok z tym co siedzi w Twoim kontrolerze.

Jeżeli chodzi o pobranie tego to oczywiście tworzysz jakiegoś Stringa np. String coś_tam = texField.getText(); Wówczas zawartość tego co było w textFieldzie będzie siedzieć w tym Stringu.

Jeśli chcesz pobrać Inta ze textFieldu to musisz go włożyć do Stringa, a następnie sparsować do Inta, ponieważ to co siedzi w Textfieldzie to jest String z początku. Parsowanie pokazał ktoś wyżej ;)
komentarz 25 stycznia 2018 przez must Bywalec (2,980 p.)
Dziękuję Kapi. Zerknę na to jeszcze wieczorem, póki co biorę się za apke konsolową :D
1
komentarz 25 stycznia 2018 przez Wiciorny Ekspert (270,110 p.)
Fajnie, że poradziliśćie sobie- niemniej jednak "jednak' Naucz się dobrze OP- potem baw się dalej, bo ogarniać OP trzeba dobrze, jeśli chce się być programistą. A   może "podstawy to źle powiedziane" ale po takim nierozumieniu kodu, pisaniu - nie rozumieniu porlbemu widać, że no jednak nie potrafisz myśleć, obiektowo to napewno i nie masz wiedzy o OP
komentarz 25 stycznia 2018 przez must Bywalec (2,980 p.)
albo rzuciłem się na zbyt głęboką wodę :)
1
komentarz 25 stycznia 2018 przez Wiciorny Ekspert (270,110 p.)
Tak, ale coś co działa ' nie oznacza' że jest dobre :). Wiec pisząc apke niepoprawnie implementacyjnie nawet w repo jej nie mozesz umieścić. Powodzenia

Podobne pytania

0 głosów
1 odpowiedź 946 wizyt
pytanie zadane 21 czerwca 2016 w Java przez kaminki Obywatel (1,030 p.)
0 głosów
1 odpowiedź 299 wizyt
0 głosów
0 odpowiedzi 348 wizyt
pytanie zadane 23 lipca 2017 w Java przez niezalogowany

92,570 zapytań

141,423 odpowiedzi

319,643 komentarzy

61,958 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...