• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文: Javaのループ中のメモリの動きについて)

Javaのループ中のメモリの動きについて

このQ&Aのポイント
  • Javaのループ中におけるメモリの動きと、メモリが使われすぎる可能性について説明します。
  • 無限ループを含むJavaのプログラムでメモリ使用量を測定する方法についての質問です。
  • テキストフィールドの文字列を置換し、カットする処理を無限ループで行う際にメモリ使用量に懸念があるかどうかについて知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.2

 #1です。 >なんとか待ち受け状態の機能を考えようと >してこうなってしまいました。  気持ちはわかります。  そして、全く的外れというわけでもありません。  事実、C言語でWindowsアプリケーションを一からゴリゴリ書こうと思えば、似たようなことをしなくてはいけません。  しかし、プログラマーがそういうことをしなくていいのが、イベント駆動型プログラミングです。 「スレッドを無限ループで回し、コンポーネントの状態変化を監視し続ける」というアイデアでしょうが、そもそもそれは、イベントディスパッチスレッドのお仕事です。  たとえば、ボタンのActionイベントは、使ったことがあるようなので、それを思い出してみてください。  無限ループの中で、マウスポインタの位置とマウスボタンの状態を常時監視し、JButtonの位置で、マウスボタンが押されたら、JButtonがクリックされたと判断する、なんて、やったでしょうか?  それをするのは、イベントディスパッチスレッドであり、イベントディスパッチスレッドは、条件が合致すると、それに対応したイベントをトリガします。  プログラマーは、それに対応した、イベントリスナーをあらかじめ登録しておけば、よいと言うことです。  さて、今回のことで言えば、JTextField のテキストの変化を監視したいと言うことなので、それに見合ったイベントがあるか、探すべきです。  JTextField はちょっとややこしいのですが、APIドキュメントを読めば、ちゃんと書いてあります。  調べてみてください。

hatokamome
質問者

お礼

重要なヒントをありがとうございます。 意味が理解できました。 さっそくJTextFieldのイベントリスナーを使って書き直します。 いつもアドバイスありがとうございます。

その他の回答 (1)

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんにちは。  コードを一目見て、「これはフリーズして動かないだろう」と思ったのですが、期待通りの動きではないにせよ、動くには動いたので、びっくりしました。  なんかいろいろ創意工夫の後が見られて、何とか動かそうと言う「その意気やよし」とは思いますが、残念ながら根本的に間違っています。  もうすこし、イベント駆動型プログラミングの基礎を勉強しなおしましょう。  でも、まあ、迷走するというのは、悪い事じゃないですよ。  今回のような迷い道に入り込んでから、基礎をやり直せば、イベント駆動のありがたみが身にしみるというものですよ。

hatokamome
質問者

補足

いつもありがとうございます。 なんとか待ち受け状態の機能を考えようとしてこうなってしまいました。 イベントではなくスレッドで起動しなければならないということでしょうか。 イベント駆動型プログラミングはActionListenerやMouseListenerなどよく使うのですが、 イベント駆動のどのような部分の基礎のことなのか解りません。 (スレッドの働きのようなものでしょうか) ヒントを頂けませんでしょうか。 よろしくお願いいたします。

関連するQ&A