- - PR -
ビープ音について (
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2002-02-16 15:11
こんにちわ、松犬です。
今回はビープ音についての質問です。 notepad にて下記コードを実行した場合はビープ音が鳴るのですが、 Visual Age for Java で同一コードを実行した場合、 「・」この様な記号が表示されるだけなのです。 (\t や \n は正常に使用出来ました。) Bug fix code? System.out.println("\u0007"); Visual Age for Java で何らかの設定を行う必要があるのでしょうか? 何だか、駄目? な質問ですいません。 汗 [ メッセージ編集済み 編集者: 松犬 編集日時 2002-02-16 15:16 ] | ||||
|
投稿日時: 2002-02-18 13:00
\\aでビープ音が鳴るかどうかはシステム依存なのではないでしょうか。
AWTを呼び出してしまうので初回はオーバーヘッドがありますが、 java.awt.Toolkit.getDefaultToolkit().beep() で代用できます。 | ||||
|
投稿日時: 2002-02-19 21:52
java.awt.Toolkit.getDefaultToolkit().beep()
上記を使用する事により、ビープ音が鳴りました。 Javaってシステム依存じゃないと思っていたんですけど、 そんな事もあるんですね。 | ||||
|
投稿日時: 2002-02-20 01:18
「バイナリ 0x07 を『表示』すると beep が鳴る」のが環境依存なんです。
0x07 という1バイトを「なにも表示せずに beep を鳴らす」と解釈する環境もあれば、「画面全体を一瞬反転させる」と解釈する環境もあります。もちろん完全に無視する環境もあります。 そういうことを避けるために、環境に依存せず「beep を鳴らす」ためのメソッドが準備してあるのです。 | ||||
|
投稿日時: 2002-02-20 09:52
「writer once, run every where」のJavaも実行環境によって動作が変わることもありますよ。Javaのプラットフォーム互換(文字エンコード)でも取り上げてますが、使用しているJVMでも動作が違うこともあります。(ちなみにこれは未だ解決してないのですが・・・)またJVMによって実行速度が変わることもあるようです。 基本的にシステム依存はしませんが、時折システムやJVM、Java Compilerなどによって奇妙なことをすることがあります。大概はマイナーな問題ばかりなのですけどね。 | ||||
|
投稿日時: 2002-02-20 15:44
ちなみに、文字コードにまつわるあたりは
当然のようにプラットフォームに依存しますのでご注意を。 プログラム中で特定の文字コードに依存するルールを前提とすると どこかではまります。今回のbeepもそのひとつかなと思います。 ということで、しょむさんの言うように依存度を減らすために メソッドが準備されているわけですね。 場合によっては定数のときもあるかもしれません。 (プラットフォームごとに実装ということです。念のため) | ||||
1
