たとえば、アドレス帳の電話番号などをユーザーが編集できるようにするとします (実際、まさに私が行っていることです)。完全に編集可能なテキストとして表示する変数を挿入できる println に追加できるものはありますか? 私がこれを行っている割り当ては、実際にはこれを要求していませんが、あればクールだと思います。Google で検索していますが、何も見つかりません。また、何を探しているのか、正しい用語を念頭に置いているかどうかもわかりません...
3 に答える
いいえ、フレームワークで Java が提供するものだけを使用するわけではありません。一部のテキストを編集するには、
- Java では入力がバッファリングされる (つまり、Enter が押されるのを待つ) ため、キーを押して操作することはできません。
- 出力するテキスト内を移動することもできません。
これは、JNI または JNA を使用して、ネイティブ コード (Linux の ncurse など) を使用して実行できますが、それほど簡単ではありません。
これらの機能を追加することを目的としたプロジェクトがいくつかあることに注意してください。そのため、コア ライブラリ以外のものを使用できる場合は、試してみることができます。たとえば、http://code.google.com/p/java-コンソール-api/
これには、機能と複雑さへの単純さと移植性の順に、さまざまなオプションがあります。
情報の入力を求め、応答の完全な(戻りが終了した)行を読み取り、通常の端末入力機能を基本的な編集に使用できるようにします。
gnu readlineライブラリのようなものを使用して、より高度な編集を可能にします。ただし、ウィジェット(画面上の特定の場所にあるテキスト入力ボックス)はまだありません。ここにJavaの実装があります:http://java-readline.sourceforge.net/
ncursesのようなものを使用して、カーソルの具体的な配置、テキストラベルの印刷、キー押下の処理、および独自のテキスト入力ボックスの実装を行います。楽しくない。
次のようなテキストユーザーインターフェイスライブラリ(TUI)を使用します:http ://www.bmsi.com/tuipeer/
コンソール ウィンドウのように見えるウィンドウを開いて、キープレス イベントに反応できる場合は、求めていることを実行できますが、プログラムを実行しているだけの場合、プログラムは実行を停止し、制御を元に戻します。コンソールなので、他に何もできません。
ただし、Java のスクリプト可能なバージョンを使用する場合は、独自のシェルを記述でき、シェルが実行を停止しないため、求めていることを実行できます。
しかし、それはおそらくあなたのコースを超えているでしょう。