- PR -

コンソールでの初期表示

1
投稿者投稿内容
matsu
会議室デビュー日: 2004/06/03
投稿数: 7
投稿日時: 2004-06-03 20:27
コンソールで文字を入力する前にあらかじめ何か文字を表示しておいて、
その表示されている文字を変更して、
Enterを押下した後にその変更した文字をreadLineで受け取る
というような事はできるのでしょうか?

どなたかお知りの方、ご教授願えませんでしょうか?
宜しくお願い致します。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2004-06-05 08:06
matsuさん、こんにちは。

コンソールでとありますから標準入出力を使用すると
いうことだと思いますが、
あらかじめ表示した文字列が編集バッファに入るような
システムを使用していれば出来るかもしれませんが、
ほとんどの場合できませんし、可搬性もありません。

編集するプログラムを作るのはどうでしょうか?
matsu
会議室デビュー日: 2004/06/03
投稿数: 7
投稿日時: 2004-06-07 09:55
Kissingerさん返答ありがとうございます。
返事が遅くなって申し訳ありません。

>あらかじめ表示した文字列が編集バッファに入るような
>システムを使用していれば出来るかもしれませんが、
>ほとんどの場合できませんし、可搬性もありません。
私も色々考えてやってはみたのですが、
APIの仕様書を見ている限りでは無理なような気がしていました。
現在あるJAVAのクラスなどでは対応できないということでしょうか?

>編集するプログラムを作るのはどうでしょうか?
私が当初やろうとしていたことは、まさにその編集プログラムでして、
DBから取得した値を編集してDBに戻す、といったことでした。
編集するにはDBから取得した対象文字列をあらかじめ表示しておけば
何の文字を編集しようとしていたのかわかりやすい、且つ、
その表示してある文字列を直接編集できれば尚よいかと考えていたのですが。
この方法が無理なら、System.out.println("")などで編集する文字列を表示しておいて
編集する文字列を認識させるということぐらいしか思い浮かばないのですが…。
Kissingerさんのおっしゃる編集プログラムというのは
具体的にどういったものなのでしょうか?
お聞かせ願えればと思います。

また、こんな方法もあるのでは、という考えをお持ちで
いらっしゃる方がおりましたらお聞かせ願えないでしょうか?
宜しくお願い致します。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-06-07 12:52
引用:

編集するにはDBから取得した対象文字列をあらかじめ表示しておけば
何の文字を編集しようとしていたのかわかりやすい、且つ、
その表示してある文字列を直接編集できれば尚よいかと考えていたのですが。


ここん所、よくわからないんですが、仕様上、標準入出力を解して、直接編集しなければならないのですか?それともGUIを使用してもよいのでしょうか。
GUI版なら、読み込みと書き込みボタンを用意し、読み込みボタンを押したら読み込んだ情報をTextFieldにセットし、書き込みボタンを押したら、TextFieldの入力文字列をDBに戻すようにすればよいのではないでしょうか。
コード:
public class 読み込みアクション implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        読み込み処理();
    }
}



さらに一工夫すれば、表示前に、読み込ませることもできます。
一例として、swingの場合なら
コード:
SwingUtilities.InvokeLatter(new Runnable() {
    public void run() {
        // 読み込み処理でDBからデータを取り込み、TextFiledにセットしてやる
        読み込み処理();
        framw.setVisible(true);
    }
});


としてやれば、たぶん、表示前に取り込みを行うと思います。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-06-07 12:52
引用:

編集するにはDBから取得した対象文字列をあらかじめ表示しておけば
何の文字を編集しようとしていたのかわかりやすい、且つ、
その表示してある文字列を直接編集できれば尚よいかと考えていたのですが。


ここん所、よくわからないんですが、仕様上、標準入出力を解して、直接編集しなければならないのですか?それともGUIを使用してもよいのでしょうか。
GUI版なら、読み込みと書き込みボタンを用意し、読み込みボタンを押したら読み込んだ情報をTextFieldにセットし、書き込みボタンを押したら、TextFieldの入力文字列をDBに戻すようにすればよいのではないでしょうか。
コード:
public class 読み込みアクション implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        読み込み処理();
    }
}



さらに一工夫すれば、表示前に、読み込ませることもできます。
一例として、swingの場合なら
コード:
SwingUtilities.InvokeLatter(new Runnable() {
    public void run() {
        // 読み込み処理でDBからデータを取り込み、TextFiledにセットしてやる
        読み込み処理();
        framw.setVisible(true);
    }
});


としてやれば、たぶん、表示前に取り込みを行うと思います。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-06-07 12:52
引用:

編集するにはDBから取得した対象文字列をあらかじめ表示しておけば
何の文字を編集しようとしていたのかわかりやすい、且つ、
その表示してある文字列を直接編集できれば尚よいかと考えていたのですが。


ここん所、よくわからないんですが、仕様上、標準入出力を解して、直接編集しなければならないのですか?それともGUIを使用してもよいのでしょうか。
GUI版なら、読み込みと書き込みボタンを用意し、読み込みボタンを押したら読み込んだ情報をTextFieldにセットし、書き込みボタンを押したら、TextFieldの入力文字列をDBに戻すようにすればよいのではないでしょうか。
コード:
public class 読み込みアクション implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        読み込み処理();
    }
}



さらに一工夫すれば、表示前に、読み込ませることもできます。
一例として、swingの場合なら
コード:
SwingUtilities.InvokeLatter(new Runnable() {
    public void run() {
        // 読み込み処理でDBからデータを取り込み、TextFiledにセットしてやる
        読み込み処理();
        framw.setVisible(true);
    }
});


としてやれば、たぶん、表示前に取り込みを行うと思います。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-06-07 13:41
コンソールプログラムからコマンドライン上での編集を行うのは、Javaの標準APIでは無理でしょう。
入力値(パスワード)を表示させないだけでも、かなりトリッキーな方法でしかできなかった記憶があります。

従って、どうしてもJavaのコンソールプログラムからやるのであれば、JNIからOSの機能を呼び出す
ようにするしかないと思います。本当にできるかどうかわかりませんが…
matsu
会議室デビュー日: 2004/06/03
投稿数: 7
投稿日時: 2004-06-07 15:15
「かずくん」さんありがとうございます。
確かにSwingやAWT、またWebのシステムなどであれば実現可能なのですが、
私が練習として勝手に考えてる仕様でして、
今回はあくまでコンソールのみを使用というのがポイントでした。
誤解を招いて申し訳ありません。


「uk」さんありがとうございます。
>コンソールプログラムからコマンドライン上での編集を行うのは、Javaの標準APIでは無理でしょう。
やはりそうですか。

>入力値(パスワード)を表示させないだけでも、かなりトリッキーな方法でしかできなかった記憶があります。
そこまで作りこむ必要もないのと、そこまでできるスキルが私にはありませんので
諦めようかと思います。

やはり修正対象文字列を表示しておいて、
コンソールを読み込むの前に、ユーザーにもう一度入力してもらうというのが
一番無難なようですね。これだと新しく入力しているのと変わらないのですが(汗

「コンソールプログラムからコマンドラインの編集を行うのはJAVA標準のAPIではできない」
というのわかっただけでも収穫でした。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)