[java] Dostęp do wartości z JTextField

SzYpxx
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 27 lut 2011, o 14:29
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 4 razy

[java] Dostęp do wartości z JTextField

Post autor: SzYpxx »

Cześć,
mam program w którym chcę wpisywać dane typu int i przepuszczać je przez metodę obliczającą je, i dającą pewien wynik.
Zrobiłem ten programik w javascript'cie i jest ok. ale troche mam problemy z zawiłościami javy jeśli można to tak nazwać.

Jeśli utworzę pole za pomocą konstruktora JTextField() to jak uzyskać dostęp do tego tekstu, narzecz powyższej metody pomijajac tu omówienie addActionListener(). ? i czy liczby wpisywane w pole textowe nie spowoduja błędu. ?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[java] Dostęp do wartości z JTextField

Post autor: Afish »

Ale o co Ci chodzi dokładnie? JTextField ma metodę getText() (albo podobną, zerknij do dokumentacji).
SzYpxx
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 27 lut 2011, o 14:29
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 4 razy

[java] Dostęp do wartości z JTextField

Post autor: SzYpxx »

Mi chodzi tylko o to aby liczbę wpisywaną do TextField można było wykorzystać w obliczeniach.

Podam przykład z JS.

Kod: Zaznacz cały

var liczba = prompt("","");
         liczba +=1;
         document.write(liczba);
Tylko o to mi chodzi. Chcę stworzyć program ale mam problemiki na starcie a książka wszystkiego nie wyjaśnia.
Czy można w ten sposób wprowadzać dane do programu? (nie wiem czy dobrze to wyjaśniłem

Prompt to niby JTextField. umówmy się... bo normalnie to by było input.
W JS też mamy podobną metodę getElementById. Jeżeli nadamy Id jakiemuś elem. to można go potem wykorzystać w obliczeniach.Np:

Kod: Zaznacz cały

<input id= "liczba" type="text">
Czy getText() działa na tej samej zasadzie? Czyli można przekazać wartość pola do metody aby coś obliczyć?
EDIT: tzn. ja wiem że można tylko jak się do tej wartości odwołać.
Ostatnio zmieniony 6 mar 2011, o 16:12 przez SzYpxx, łącznie zmieniany 2 razy.
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

[java] Dostęp do wartości z JTextField

Post autor: spajder »

Możesz przekonwertować tekst do liczby:

Kod: Zaznacz cały

int liczba = Integer.parseInt(field.getText());
dodatkowo funkcja rzuca wyjątki, musisz to obsłużyć
SzYpxx
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 27 lut 2011, o 14:29
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 4 razy

[java] Dostęp do wartości z JTextField

Post autor: SzYpxx »

Czyli rozumiem że muszę do tego stworzyć metodę. To w miarę rozumiem. Wyjątki z książki obczaję.(są przykł. jak je obsłużyć)

A czy jeżeli:

Kod: Zaznacz cały

liczba = Integer.parseInt(pole.getText())
To mogę już później odwoływać się do tej wartości za pomocą samego słowa "liczba" ?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[java] Dostęp do wartości z JTextField

Post autor: Afish »

Musisz trochę obkuć podstawy, bo ciężko Ci będzie.

Kod: Zaznacz cały

int liczba = Integer.parseInt(pole.getText())
Takie coś deklaruje Ci zmienną typu integer, a następnie przypisuje do niej test z kontrolki o nazwie pole, wcześniej konwertując go na liczbę całkowitą. Jeżeli operacja się nie powiedzie dostaniesz odpowiedni wyjątek. Jeżeli wszystko zakończy się bez błędów, to w zmiennej liczba masz to, czego potrzebujesz.
SzYpxx
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 27 lut 2011, o 14:29
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 4 razy

[java] Dostęp do wartości z JTextField

Post autor: SzYpxx »

No i o takie wytłumaczenie mi chodziło. Dzięki.

Cały czas obkuwam podstawy... na błędach;)

-- 8 mar 2011, o 16:00 --

Dla wszystkich zainteresowanych:

Kod: Zaznacz cały

public void actionPerformed(ActionEvent evt){
		Object src = evt.getSource();
		if(src==B1) a = P1.getText();
		L1.setText(a);
		P1.setText("");
		
		repaint();
Jeżeli mamy obiekty: JButton B1;, JTextField P1;, i JLabel L1;

to możemy po prostu wziąć tekst z pola P1 przypisać go do zmiennej 'String a;'(którą utworzyliśmy wcześniej) a po naciśnięciu 'B1'
przesłać go do danego obiektu np. 'L1'.

Tak samo jest z liczbami. Można przesyłać je do obiektów i będą traktowane jako string.
Jeszcze nie wiem czy można operować tymi liczbami po prostu rzutując je na 'int'.
Ale wkrótce się dowiem;)

Pozdrawiam.

-- 8 mar 2011, o 16:05 --

A jeśli jeszcze dodamy

Kod: Zaznacz cały

P1.setText("");
na końcu to po przekazaniu wartości z pola P1
zniknie wpisywany tekst przygotowując je do nowego wpisu i jednocześnie likwidując konieczność ustawiania przycisku "wyczyść".

Pozdro.
ODPOWIEDZ