Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Kuinka tehdä yksinkertainen CLI Javalla?

(nimetön) [21.05.2008 13:05:37]

#

Minun pitäisi väsätä full-duplex p2p instant messengeri yksinkertaisella command line interfacella käyttäen javaa. Ohjelman teko ei muuten tuota ongelmia, mutta en ole keksinyt mitään keinoa, millä saisin ohjelman päivittämään saapuvia viestejä ja samaan aikaan alalaidassa olevan teksti promptin odottavan lähetettävää viestiä. Haluaisin siis samanlaisen käyttöliittymän kuin esim. irssissä.
Onko tähän mitään yksinkertaista tapaa?

Jackal von ÖRF [21.05.2008 14:55:52]

#

Säikeillä tuo onnistuu. Ongelmana on vain, että jos kirjoittamisen aikana näytölle tulostaa jotain tavaraa, niin syötteen kirjoitus ja tuloste menevät näytöllä lomittain (kokeile alla olevaa koodia).

        Thread t = new Thread(new Runnable() {
            public void run() {
                int i = 0;
                while (true) {
                    i++;
                    System.out.println(i);
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        t.start();

        Scanner in = new Scanner(System.in);
        while (true) {
            String s = in.nextLine();
            System.out.println("Kirjoitit: \"" + s + "\"");
        }

Irssin tapaiset tekstikäyttöliittymät on tehty curses, ncurses tai vastaavalla kirjastolla. Ks. http://en.wikipedia.org/wiki/Text_user_interface

Eiköhän Javallekin ole vastaavia kirjastoja (tai sitten sellaisen voi tehdä itse). Google löysi ensimmäisenä nämä: http://www.nongnu.org/jcurzez/ http://sourceforge.net/projects/javacurses/

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta