Jostain syystä en saa millään tavalla luettua JTextFieldiin kirjoitettavaa tekstiä. Eli mulla on JTextField, jota kuuntelen TextListenerillä.
import java.awt.event.TextListener;
import java.awt.event.TextEvent;
public class Tekstikenttä extends JTextField implements TextListener{
public void textValueChanged(TextEvent e){
System.out.println("Kirjoitettu teksti: " e.paramString());
}
}
Nyt komentoriville pitäisi mielestäni tekstikenttään kirjoituksen ja enterin painalluksen jälkeen tulostua: Kirjoitettu teksti: [se mitä kirjoitin tekstikenttään]. Eli mitähän en taaskaan ymmärtänyt oikein. Olen lukenut jo Sun-tutoriaalin aiheestaja ja kokeillut myös ActionListeneriä. Ei vain vieläkään aukea....
import java.awt.event.TextListener;
import java.awt.event.TextEvent;
public class Tekstikenttä extends JTextField implements TextListener{
public void textValueChanged(TextEvent e){
System.out.println("Kirjoitettu teksti: " e.paramString());
}
}
Nyt komentoriville pitäisi mielestäni tekstikenttään kirjoituksen ja enterin painalluksen jälkeen tulostua: Kirjoitettu teksti: [se mitä kirjoitin tekstikenttään]. Eli mitähän en taaskaan ymmärtänyt oikein. Olen lukenut jo Sun-tutoriaalin aiheestaja ja kokeillut myös ActionListeneriä. Ei vain vieläkään aukea....
Vastaukset 4
Vanhimmat
Siis mä en nyt tosiaan puutu muuhun koodiin, mutta jos sulla on JTextField Tekstikenttä, niin sä varmaan saat sen tekstin ulos sieltä kutsumalla metodia getString() eli Tekstikentta.getString().
Mut viisaammat varmaan osaa tulkita ton sun koodin.
kuuntelijan, mutta et ole liittänyt sitä itsensä kuuntelijaksi.
Ei siis riitä, että implementoi TextListenerin ja koodaa vaaditut metodit, vaan kuuntelija (tällä kertaa luokka itse) pitää myös liittää kuuntelijaksi.
tässä luokassa kait näin
this.addListener(this);
Niin tuossa sinä tulostat TextEvent-olion paramStringin, etkä TextField-olion sisältöä.
Kokeileppa vaihtaa tuo näin:
System.out.println("Kirjoitettu teksti: " this.getString());
'this' viittaa tähän Tekstikenttä-luokkaan, eli vähän niinkuin itseensä. Eli tässä käytetään TextField-luokan metodia getString.
Ja eikös pitäisi vielä importata Swing-käyttöliittymäpaketti, kun sinulla näkyy olevan noita J-alkuisia (eli Swingejä) komponentteja.
eli:
import javax.swing.*; // swing-paketti tai
import java.awt.*; // perus awt-käyttöliittymä
Helpompi varmaan kokeilla ensin perus awt-komponentteja, eli ottaa tuo J pois TextFieldistä
Toivottavasti tästä löytyy jotain sinnepäin....
Tekstinhakeminen:
JTextField tekstikenttä = new JTextField();
String teksti;
teksti = tekstikenttä.getText();