• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaGUIインスタント変数とローカル変数)

javaGUIインスタント変数とローカル変数

このQ&Aのポイント
  • Java GUIでのインスタント変数とローカル変数についての質問です。
  • 質問の内容は、「ボタンを押してもJTableが表示されない」というエラーに関するものです。
  • 要約すると、インスタント変数pとローカル変数pの違いを理解してコンポーネントを正しく貼り付ける方法を知りたいとのことです。

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

  • ベストアンサー
noname#177743
noname#177743
回答No.1

コンストラクタにある、 JPanel p = new JPanel();  ↓ p = new JPanel(); としてください。 JPanel p = new JPanel(); だと、このコンストラクタメソッド内でのみ利用できるJPanel変数pを作って、それに設定することになります。つまり、インスタンス変数pと同じ名前のローカル変数を作ってそっちに代入してしまうわけです。p = new JPanel();だと、既に用意されている変数pに代入します。

javaboy
質問者

お礼

解決できした!!! ありがとうございます!! 本当に感謝です

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

その前回のときもヒント出したんだけどね。 > インスタント変数pとJPanel p;で定義した、ローカル変数(おそらく。別の変数だよ、という意見がありましたら、ご指摘ください)は別物で、デバッグを行ったらローカルのp の中身は、null(何も入ってない)といわれてしまいました ぜんぜん理解できてないみたいじゃないですか。 ちゃんと理解したなら、はっきり「ローカル変数」と「インスタンス変数」が区別できるはずですよ。 変数とかメソッドとかクラスとかの「名前」には、それぞれ有効な範囲が(スコープ)があって、他のスコープの名前とは重ならないようになっています。 そうでないと、うかつに変数名をつけられないからです。 例えば、よくつかうfor ( i=0;...)などつかう変数 iが、どこかで使われてたら、知らないところで書き換えられて、ループ回数が変になる、なんてことがあると困りますよね? 変数の種類とスコープは、基本中の基本です。 それが理解できないうちは、GUIでのプログラミングなんて早すぎます。 まずは、基礎の学習をしっかりやってください

javaboy
質問者

お礼

回答ありがとうございます。 私が扱った本では、メイン変数とSTATIC変数の説明しかされていなかったので、それ以外の変数に関しては皆無でした。 ネットなどをみて勉強したのですが、たりないみたいですね。(ネットのものは、理解しにくいものが多い) 色々参考書を見ながら、勉強していきたいと思います。

関連するQ&A

専門家に質問してみよう