[Java lista] swt automatikusan
Laja
laja at freemail.hu
2009. Nov. 18., Sze, 18:43:15 CET
Hi!
> Nem tudom közben sikerült e megoldani a problémát,
Sajna nem, csak épp mással voltam elfoglalva...
(Egyébként a layout() -ot is próbáltam, de nem segített, sőt elcseszte a
felületet... :)
> annyit tudnék segíteni, hogy elsőre kicsit furának tűnik ez a
> felhasználói felület - pl miért kell egyetlen szöveg mezőt user
> inputra, és outputra is felhasználni, ráadásul parancs kiadásra is,
> ezzel a TESZT kóddal. Szerintem mindenkinek egyszerűbb lenne, ha lenne
> egy beviteli mező, egy státusz mező, meg egy "Teszt" gomb :)
Kezdem azt hinni, hogy tényleg nem tudok érthetően írni ;)
Egyetlen beviteli mező van, és csak bevitelre van használva. Felhasználó
ebbe ütögeti be a kódjait, amire történnek dolgok, és a GUI-n is
megjelennek dolgok. Nincs is több beviteli mező, csak ez az egy.
Na most néha sok-sok kódot kell feldolgozni, és ilyenkor jó lenne ha nem
kellene valakit odaültetni hogy egyesével bepötyögje őket, hanem
ilyenkor egy szöveges állományból soronként beolvassa a kódokat, és
egyébként minden ugyanúgy történik mintha kézzel ütötték volna be.
> A másik, hogy a leírásodból nem tünik ki, hogy mikor hívsz a beviteli
> mezőn "input.setText(ujKod)"-ot.
Alapvetően semikor. A beviteli mezőn van egy TraverseListener, ami
figyeli hogy mit pötyögnek be, és ha ENTER-t talál, akkor a beviteli
mező értékét feldolgozza:
input.addTraverseListener(new TraverseListener() {
public void keyTraversed(TraverseEvent event) {
if(event.character=='\r') {
String kod = input.getText();
feldolgozKod(kod); //kód feldolgozása
input.setText(""); //töröljük
}
}
});
> Tehát, indítasz egy szálat, majd abból hívsz egy display.asyncExec(new
> Runnable() { public void run () { input.setText("ize"); } }); -t.
Kipróbáltam, de ez sem műkszik....
Valszeg nem keyTraversed-et kellene használni, csak nem tudom
melyiket... (amiket próbáltam nem voltak jók).
Laja
További információk a(z) Javalist levelezőlistáról