Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • Anonim

    Hej!
    Wlasnie probuje stworzyc pod java cos na ksztalt konsoli (cos a la terminal pod linuksem). Pole wpisywania komentarza umiescilem jako TextField, a output z komputera w TextArea. Niestety niebardzo wiem jak sprawic zeby to poprawnie dzialalo - jezeli wpisze w konsole jakas komende z parametrem, to nie wiem jak je oddzielic i poprawnie zinterpretowac. Jezeli ktos a jakiekolwiek sugestie to bede bardzo wdzieczny.
    pozdrawiam
    wojtek
  • KosciaK

    Zerknij sobie do źródeł takiego BeanShella

    Ekspertem nie jestem ale...
    Jak wpisujesz "komenda parametr1 parametr2" to parametry od komendy są czymś oddzielone. Tu spacją. Więc możemy wykorzystać regex do splitowania wpisanego Stringa czy od razu wyławiania potrzebnych elementów
  • george

    Albo zajrzec do zrodel programow w C - tam jest taka funkcja ktora wszyscy kopiuja ktora zajmuje sie tylko rozbiciem linii komendy na opcje ( hehe nie pamietam jaksie nazywa)
    Albo tokenizer, albo splitujesz i patrzysz czy masz np - lub cyz pasuje do jakiegos slowa kluczwego.
  • YouCan'tGoWrongWithStretchyPants

    to prawda, jest w C libarg, ale mam wrazenie, ze ona zajmuje sie odwrotnym problemem: jak przechwycic rozne parametry i dostac je w zrozumialem formie, a nie jak je przekazac aplikacji, bo o to chyba chodzi koledze.

    libarg pozwala np. interpretowac takie parametry jak -uroot, --user=root itd.

    jesli chodzi o oryginalny problem, to powiedzialbym, ze wszystko zalezy od tego, jak bardzo skopmlikowane reguly chcemy zaimplementowac. jesli tylko cos w stylu

    komenda argument1 argument2 "argument ze spacjami"

    to mozna to zrobic recznie.

    shelle potrafia duzo duzo wiecej, ale moze wcale nie ma takiej potrzeby w tym przypadku?
  • Anonim

    Generalnie chodzi o to, ze pisze gre w scrabble, ktora MUSI byc ubslugiwana przy pomocy konsoli (tzn konsoli ktora sam zakoduje). Chodzi i to zeby uzytkownik mogl wpisac komendy typu:
    -umiescKlocek(char litera, int xcoord, int ycoord)
    -zapiszGRe(nazwapliku)
    -zaladujGre(nazwapliku)
    -nowagra
    -itp itd
    chodzi wiec o dosyc rozne komendy. A czy ktos orientuje sie jak zakodowac taka 'prawdziwa' konsole - taka gdzie tekst po wpisaniu w textfield idzie do text area i wypycha w gore to co bylo tam napisane wczesniej?
    wielkie dzieki za wszelkie sugestie
    pozdrawiam
    wojtek
  • george

    nie wiem czy jest juz taki komponent ktory tak robi. jesli nei to poprostu rozszerzasz sobie textaerea dodajesz StringBuffera np ktory kontroluje co ma byc wyswietlone -> dodajesz na poczatku usuwasz na koncu i wyswietlasz, tyle. Przynajmniej tak mi sie wydaje ze to najprostszy sposob zrobienia tego, jesli ktos zna inny to :)
  • KosciaK

    Komendę masz przed "(" lub jeśli nie ma nawiasów, argumenty pomiędzy "(" a ")", oddzielone ", " więc nie ma kłopotu z wyciągnięciem danych(nazwa metody i String[] z argumentami). Klasa String i metody split, substring, charAt, startsWith, endsWith i jazda. Korzystając z regexp'ów pewnie też da radę.
  • Anonim

    Sorry, wlasnie rzucilem oko na projekt i i output konsoli chce zrobic jako JLabel - czy to dobry pomysl?
  • Dzemus

    >Wojtek napisał
    >Sorry, wlasnie rzucilem oko na projekt i i output konsoli
    >chce zrobic jako JLabel - czy to dobry pomysl?

    Zdecydowanie zły:]

    Użyj JTextArea, albo najlepiej JTextPane - taką konsolę już kiedyś pisałem, dawno temu. I z tego co pamiętam, to umieściłem JTextPane'a w JScrollPane i to był output konsoli. JTextField zaraz pod tym robił za linię poleceń. Do niego podłączyłem ActionListenera, który na wciśnięcie entera przepisywał linię na koniec JTextField'a i chyba zapewniał przewinięcie scroll'a opakowującego JTextPane'a na sam koniec...
  • Ja nie istnieje (FURBY)

    parsuj parsuj; D