• 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,384 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 (269,710 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...

komentarz 25 stycznia 2018 przez must Bywalec (2,980 p.)

Produkt jest Stringiem, więc wyciągam Stringa. Liczba kalorii jest intem, więc wyciągam inta (bądź doubla, ale to nieważne).

Dalej nie wiem jak to zrobić. 

Tworzę 

String text = textField.getText();

I co? Kompletnie nie rozumiem tematu. Stworzyłem w Scene Builderze pole tekstowe i jak mam do tego pola tekstowego się odnieść...

 

komentarz 25 stycznia 2018 przez Wiciorny Ekspert (269,710 p.)

ale twój textField- nie jest z XML- JAVA FX TYLKO JEST TO TEXTFIELD Z AWT

import java.awt.*;   //  textfield dla tego jest innym obiektem niz dla
javafx.scene.control.TextField// to jest poprawny import twojego TextField

 

1
komentarz 25 stycznia 2018 przez Wiciorny Ekspert (269,710 p.)

String text = textField.getText();

 

Nie rozumiessz co w tym momencie robisz? :D To zacznij od podstaw programowania... i metod.  Po co bierzesz się za MVC, jak nie znasz podstaw programowania obiektowego. 

komentarz 25 stycznia 2018 przez must Bywalec (2,980 p.)
Rozumiem co w tym momencie robie. Znam podstawy programownia obiektowego.

Nie rozumiem jak mam wyciągnąc dane z textFielda, który utworzyłem w Scene Builderze.

Ale przeciez po dodaniu String text = textField.getText(); do metody nic się nie zmienia. Dalej nie mam wartości inputa..
1
komentarz 25 stycznia 2018 przez Jonki Dyskutant (8,180 p.)
Pole textField z pliku FXML przypiszesz do obiektu TextField w kodzie Java za pomocą magicznej adnotacji @Fxml.
komentarz 25 stycznia 2018 przez must Bywalec (2,980 p.)
Nieważne. Zajmę się tworzeniem aplikacji konsolowej. Może kiedyś przejdę na FX. Dzięki za pomoc ;)
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 (269,710 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 (269,710 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ź 941 wizyt
pytanie zadane 21 czerwca 2016 w Java przez kaminki Obywatel (1,030 p.)
0 głosów
1 odpowiedź 292 wizyt
0 głosów
0 odpowiedzi 347 wizyt
pytanie zadane 23 lipca 2017 w Java przez niezalogowany

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...