Haluan tehdä Javalla ohjelman, jossa Textareassa oleva teksti vaihtuu sen mukaan, mitä käyttäjä valitsee ComboBoxista. Esim. jos Combosta valitsee elementin auto, tekstilootaan tulee teksti auto, jos taas vaihtaa elementtiin juna, auto häviää ja korvautuu junalla.
Olen saanut aikaiseksi koodin, mutta siinä entinen teksti jää tekstilootaan kun valitsee uuden elementin. Olen aloittelija, en kaipaa näsäilyä kokeneemmilta. Ei myöskään ole koulutehtävä.
Olen saanut aikaiseksi koodin, mutta siinä entinen teksti jää tekstilootaan kun valitsee uuden elementin. Olen aloittelija, en kaipaa näsäilyä kokeneemmilta. Ei myöskään ole koulutehtävä.
Vastaukset 7
Vanhimmat
TextArea periytyy TextComponent-luokasta, jossa on metodi setText(String t), eli TextArea-luokalla on myös sama metodi.
Ongelma on, että tekstin pitää korvautua. Tekstilootassa voi olla tekstiä jo ennestään käyttäjän tekemistä muista valinnoista muissa komponenteissa. Ne pyyhkiytyvät yli, mikäli käyttää pelkkää setText-metodia. Lisäapua siis kaivataan!
Javassa on mahdollista käyttää säännöllisiä lausekkeita tekstin etsimiseen, http://java.sun.com/developer/technicalArticles/releases/1.4regex/
Eli: haet textarean tekstin, haet ja korvaat siitä halutun sanan ja laitat uuden tekstin takaisin textareaan.
Joo, noinhan se käy. Tosin tässä kohdin pitää jo vähän miettiä onko ohjelman/käyttöliittymän rakenne ihan paras mahdollinen jos joutuu tämmöistä kikkailua tekemään. Paha sanoa tarkemmin kun ei tiedä mistä ohjelmasta on kyse.
noi regexpit on aina inhoja ja tässä tapauksessa minusta turhia, kun molemmissa lootissa on just samat tekstit.
Voithan tehdä vaikka niin, että kun combosta painetaan jotain, niin teksti menee ArrayListiin tai taulukkoon ja kirjoitat jokaisen combon painalluksen jälkeen taulukon sinne textareaan takas.
tai useempi taulukko per asiat jotka voivat korvata toisensa
Eli jos ymmärsin oikein, niin sulla on X määrä JComboBox:eja ja niiden valinnat päätyvät String muodossa JTextArea:aan ItemListener:in kautta ja haluat jonkin sanan korvautuvan sillä sanalla jonka valitset jostain boxista, josta valitsit sen toisenkin sanan joskus, huh???
Tuntuis et ehkä tähän tarvittais JTable plus JComboBox renderöijä ja editori, vai miten sä sen tekstin tulkkaat sieltä JTextArea:sta. Onko se lause, kasa tarvittavia atribuutteja tai jotain muuta???
Iteäkin kiinnostais myös tietää vähän tarkemmin et mikä on ideana. Helpottais myös neuvojen antamista.