• 締切済み

Javaコンソールプログラム(CUI)について。

Javaコンソールプログラム(CUI)について。 キーボードの入力ですが、ノンブロッキングな処理は出来ないのでしょうか? また、エコーもさせない(入力した文字を表示させない)方法はありますでしょうか? (例えばFrameアプリ、Appletで用いられるKeyListenerインターフェイスのような動作) ご回答の程、宜しくお願いいたします。

  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

  • LunaSun
  • ベストアンサー率30% (4/13)
回答No.2

エコーはVer.1.6ならば http://java.sun.com/javase/ja/6/docs/ja/api/java/io/Console.html を利用するようです。

mintia007
質問者

補足

なるほど、System.console()ですか。 エクリプスだとヌルポになってしまいますが、単体なら動作しますね。 ちょい検証してみたいと思います。 ご回答ありがとうございました。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

> エコー これはコマンドラインがしているので Javaでは制御できないわ。 > ノンブロッキングな処理 つまりキー入力により動いている処理を停止させる とかそういうことをしたいってことかしら? Threadを使えばできるわよ。

mintia007
質問者

補足

あわわ。やっぱり出来ないのかなー。 ノンブロッキングも例えThreadを使用したとしても、エンターキー待ちだし・・・。 ご回答ありがとうございました。

関連するQ&A

  • コンソールアプリの入出力制御

    早速ですが、質問させていただきます。 現在、CUIのコンソールアプリケーションをキーボードの入力より、メニューの制御などを行っています。 コンソールアプリケーションは以下のようなメニュー・設定 などが表示され、それぞれ、キーボードより選択を行う形となっております。 ==== Menu ===== 1.test1 2.test2 3.test3 > テスト番号を入力してください: 上記のような入力がいたるところに存在し、大変手間となっております。 そこで、外部のソフトから、本コンソールアプリの入出力制御が出来ればと考えております。 この場合、バッチファイルなどでコンソールアプリへの制御が可能なのでしょうか?

  • CUIって?

    パソコンの画面に命令やデータを表す文字列をキーボードから入力する操作環境をCUIって言うとありました。 MS-DOSとかUNIXがこれにあたるのだそうですが、言っていることはすごく理解できるのですけど、正式名はなんと言うのでしょうか? GUIはグラフィカルユーザーインターフェイスだから、コマンドユーザーインターフェースなのかな? それと、Excelなどのデータベース関数の引数にCriteriaとありますよね。 これってなんて読むのですか? PCの用語は難しいです。 教えてください。お願いします。

  • Javaプログラムの繋げ方について。

    Javaプログラムの繋げ方について。 今まで(1)のようなプログラムを書いていました。 作りたいものに向けて色々検索するとやりたいものに近い(2)のようなサンプルプログラムを見つけました。 しかし、Java初心者なもので混ぜ方(?)がわかりません。 現在の私の知識からいうと今までのはアプレットでフレーム使うのはアプリケーションなのかな?別物なのかな?そんな感じです。 もし、混ぜることができるなら何かアドバイスをお願いします。 (1)package test; import java.applet.* ; import java.awt.Label ; import java.awt.Font ; import static java.awt.Font.BOLD ; import java.util.*; import java.awt.Graphics; import java.awt.Image; import java.awt.*; public class test extends Applet{ public void paint(Graphics g){ g.setColor(Color.red); g.fillOval(320, 200, 100, 100); } public void init () { ~~~~~~~~~~~~~~~~ } public void start () { ------------ }}} (2)import java.awt.*; import java.awt.event.*; public class MouseEvent7 extends Frame { int posX = 50; int posY = 50; public static void main(String [] args){ new MouseEvent7(); } //コンストラクタ MouseEvent7(){ this.addWindowListener(new WinAdapter()); //ウィンドウリスナーの登録 this.setSize(200,200); this.setVisible(true); //MouseMotionListenerの登録 addMouseMotionListener( new MouseMotionAdapter(){ public void mouseMoved(MouseEvent e){ posX = e.getX(); posY = e.getY(); repaint(); //paintメソッドを実行 } } ); } public void paint(Graphics g){ g.drawOval(posX,posY,50,50); } } (1)の内容に本当に(2)のプログラムで出来るマウスの動きに合わせて円も動く+クリックしたらそこで止まるだけいいのですが。 出来たら止まった点の座標も取りたいですが、そこまではいってません;;

  • java for文プログラムについて

    java for文プログラムについて javaのfor文のプログラムにて 2つの数値をキーボード入力し入力値を+入力値とやっていきたいプログラムを組みたいのですがどんなプログラミングを行えばいいのでしょうか。 例えば入力が15 もうひとつの入力が20だとすれば15+16+17+18+19+20=105という計算を行いたいです プログラミング環境はeclipseです 分かる方教えてください。

  • Javaのよさについて

    結構前から、”これからはJavaを勉強した方がいい”と か、”インターネット関連のアプリにはJavaがいい (?)”とか言われてますよね。でも、JBuilderを使っ て、JBuilderのTutorialをやってみた感想は、すごく遅い と思うんです。なんだか動作の全てが...。Appletにして も、普通のモデムの人にとっては、Loadingの時間はかなり耐 え難いものがあると思います。そこで質問です 1.Javaは実際にはどのような場面で使われるのでしょう? 2.JavaでWinアプリを作る意味はあるのでしょうか? よろしくお願いします。

  • 複数のJavaプログラムでデータを共有する方法について

    レベルの低い質問だとは思うのですが、相談にのってください。 Javaでコンソールプログラムを作っています。 コマンドプロンプトを複数立ち上げ、同じJAVAプログラムを同時に実行します。(プログラムは同じですが、処理内容はそれぞれ異なります。並列な処理です。) これら複数のプログラム同士でデータ(処理の進捗状況など)を共有するにはどうすればいいでしょうか。(そもそもそんなことができるのでしょうか) 今考えているのは、共有データ用のテキストファイルを1つ作り、それを各プログラムが参照(読んだり書き込んだり)する、ということ考えています。しかし、これだと複数のプログラム同士が同時にファイルを読み書きするようなタイミングがあるかもしれず、思ったような動作をしないかもしれません。 そこで、質問です。 (1)今回のような場合(コマンドプロンプトを複数立ち上げ、同じJAVAプログラムを同時に実行)で、データ共有に使えそうなトピックや方法があれば、お教えください。ヒントでもなんでもいいです。(とりあえず、ちょっとした付け焼刃でなんとか動いてほしいので……) (2)「コマンドプロンプトを複数立ち上げ、同じJAVAプログラムを同時に実行」しているのは、単に私の技術が低いからです。今後プログラムを根本的に書き直して改良するために、今後どのようなJavaのトピックを勉強すればいいでしょうか。 乱文失礼いたしました。どうかよろしくお願いします。

  • 画像表示アプレットプログラムについて

    Javaのプログラムを勉強中です。 javaを理解するために下記のプログラム(zukei.java)を作成しました。 このプログラムを実行(appletviewer zukei.java)すると エラーにはなりませんが、(3)の行により画像("b.jpg")がすぐには表示されません。表示されたWindowにほかのWindowをいったんのせてから動かすと(3)行により画像"b.jpg"が表示されます。 (1)(2)の行は最初からうまく動作して表示されます。 もちろん(3)のappletをthisにするとうまく動作します。 理由がわかりません。 どなたかご教授ください。 プログラム zukei.class *<APPLET CODE="zukei.class" WIDTH=500 HEIGHT=500></APPLET> */ import java.applet.*; import java.awt.Graphics; import java.awt.*; public class zukei extends Applet { Applet applet; Image myimage; int iKai; public zukei(){ applet = this.applet; } public zukei(Applet applet) { this.applet = applet; } public void init(){ iKai = 0; myimage = getImage(getDocumentBase(),"b.jpg"); } public void paint(Graphics g) { kaku(); //(1) g.drawArc(100,150,50,50,0,360); //(2) g.drawImage(myimage,10,300,180,180,applet); //(3) } public void kaku(){ System.out.println("ABC" + iKai++); } }

  • Cのコンソールアプリ

    Cを勉強し始めて1ヶ月ほどになります。 [a] メインメニュー (1)○○開始 (2)○○終了 (3)××× (4)△△△ (9)プログラムの終了 処理番号入力:_ [b] ○○開始 ESCでメインメニューへ戻る (1)○○開始 (2)キャンセル 処理番号入力:_ コンソールアプリで[a]のようなメインメニューがあり [b]のような画面でキャンセルの選択やESCを押した場合などに 「メインメニューに戻る」動作をさせたいのですが、 forやwhileを使えばいいのでしょうか? なかなかイメージが出来ていなくて教えていただけるとありがたいです。 環境はVisual C++ 6.0です。

  • javaプログラムの実行ファイル作成について

    下記のコードをPleiades44から実行可能ファイルを作成し(例えば、c:\bbb.jar) コンソールから実行しましたが、コンソールには何も表示がなく終了します。 注)GUIの他のコードはPCのコンソールから実行できました。 そのソースの内容は、キーボードから入力し、その入力をコンソールに表示するものです。 尚、このプログラムはPleiades44では、Debugや実行が出来、Eclipseのコンソールに ("input integer: ")と表示出来、次に数値を入力しますと、その内容が表示出来ます。 また、binホルダーに行き、java Sample1.Sample4でも旨く実行できました。 Q1)このプログラムの実行ファイルを作成して、をPCのコンソールから実行はできないものでしょうか? 尚、実行ファイルの作成方法は、ファイルを選択して、右クリックで、実行可能ファイルを 選択するものでした。 //======================== package Sample1; //Sample4.java import java.io.BufferedReader; import java.io.InputStreamReader; public class Sample4{ public static void main(String args[]){ int x=9; while(x!=0){ System.out.print("input integer: "); InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); try{ String buf = br.readLine(); x = Integer.parseInt(buf); }catch(Exception e){ x = 0; } System.out.println("Input Number = " + x); } //while System.out.println("end"); } } //=============================== 以上、宜しくお願いします。

    • ベストアンサー
    • Java
  • キーボードの入力としてOSに渡すプログラム

    キーボードの入力としてOSに渡すプログラムを作りたいんですが、どうすればいいでしょうか? 具体的には メモ帳などに入力のカーソルを出してる状態で、 プログラムを起動するとプログラムであらかじめ指定しておいたキーが押されたものとしてメモ帳に入力されるようなプログラムなのですがどうやればいいでしょうか? 自動入力といった感じのものなのですが。 C言語でコンソールアプリあたりで作ろうと思っているのですが使用できる関数やアルゴリズムなど教えてください。

専門家に質問してみよう