質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

解決済

3回答

1633閲覧

変数が格納されている場所を知りたい

kidaer

総合スコア31

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

0クリップ

投稿2018/05/23 07:57

編集2018/05/23 08:06

JAVA

1import javax.swing.*; 2 3class ziriki{ 4 5 6public static void main(String [] args){ 7 8JFrame jframe = new JFrame("テスト"); 9JFrame iframe = new JFrame("その2"); 10JFrame lastframe = new JFrame("最後の"); 11 12jframe.setVisible(true); 13iframe.setVisible(true); 14 15 16iframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 17jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 18

↑上記のコードで、ウィンドウを3つ作成。
内2つを表示して、3つ目だけ非表示。
2つのウィンドウを×ボタンで破棄したのち、2つのウィンドウが破棄されたフラグを受け取って3つ目のウィンドウを破棄ということがやりたいです。

しかし、if(iframe.setVisible = false)などやってみたところ、エラーになってしまいました。

iframe.setVisible(true);の真偽値はどこに格納されているのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/05/23 08:05

Swing をタグに追加しておいてください。
kidaer

2018/05/23 08:07

タグにSwingを追加しました。ありがとうございます。
guest

回答3

0

ベストアンサー

visibleというbooleanのプロパティーはJFrameの実装内部に隠されていてそれをどこにあるかを知ることは重要じゃないですが・・・多分質問者さんが知りたいのは情報のアクセスの仕方だと思いますので「ゲッター、セッター」について調べてみるとよいかと思います。

大抵はxというプロパティーがあったとき

getX() 「xを参照する」
setX(value) 「xを設定する」

という組で参照・設定を行いますが、booleanの値の場合英語圏の人たちの感覚に合うように

isX() 「xか?」
setX(value) 「xを設定する」

のように名前を付ける習慣になっていたりします。

本件であれば

isVisible()
setVisible(value)

というメソッドの組がゲッター・セッターの仕様になってます。こうしたものはリファレンスをちゃんと見れば書いてありますので「リファレンスを見る」のも大事ですよ?

投稿2018/05/23 08:09

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kidaer

2018/05/23 08:41

リファレンス一覧は見てはいるのですが、何を書いているのかがわからず、その説明書も何処にあるのかわからないのであちこちサイトを探しては手さぐりしているという状況です。普通はリファレンス一覧を見れば大体わかるものなのでしょうか? 少しずつ専門用語をぐぐってるのですが、ぜんぜん使い方がわからなくて……。ゲッター&セッターについてはProgateで少し習ったのですが、リファレンス一覧での使い方がさっぱりといいますか……。とにかく今回の件では、getOpacity()かgetOwnedWindows()で取得した中身を変数に入れて、それと比較すればいいのでしょうか? やってみます。回答ありがとうございました!
KSwordOfHaste

2018/05/23 08:52

本件は文法エラーレベルの問題なのでまずはリファレンスで解決してほしいですが、その先に本当に難しい点があると思います。そこで躓いたらまた「こうやってみたけど期待通りにならない」といった質問をすると何かしらアドバイスが得られるかと思います。リファレンスを見ていることは大変よいと思いますが、How To的な検索も有効な場合があります。「swing ウィンドウ 閉じる」なんてキーワードであたりを付けると意外とヒントが見つかったりします。検索もまた訓練が必要な技術です。
kidaer

2018/05/23 09:07

今ちょうどそれをやっているところです。リファレンスがあまりにもとっかかりがないので、初心者サイトにある構文をリファレンス一覧で探してどう動くのかな?とか、変数の格納されてる場所が知りたいな!とか、どういうクラスなのかな!とか……。今も真偽値が入ってるっぽいautoRequestFocusがprivateだとわかり、「だからその取得はどのタグでやればいいんだよ!」と嘆いていたところです。リファレンス一覧に検索がない……! 何かとても入口を間違っている雰囲気がするのですが、みなリファレンス一覧から入門しているのでしょうか? リファレンス一覧を読む為の基礎知識がごっそり抜けている気がします。もし何か心当たりがあれば教えてはもらえませんでしょうか?
KSwordOfHaste

2018/05/23 11:24

自分は例えばswingのリファレンスがチンプンカンプンからそうでなくなるまでかなりの時間を要しました(多分年単位)。わからなくて放り出してた時期もありますが、やはり前提知識が絶対的に不足してたのだと思います。Java言語を学ぶのはそれほど難しくないのですがGUIにせよ何にせよ「仕組み」「考え方」を知ることは簡単じゃないですね。プログラミングを学ぶのが難しいのは「これをこの順番に学べば必ずわかるようになる」という道がはっきりしていなくて「わからない」にもかかわらず「取り組む努力を続ける」ことをしないと「わかるようにならない」という矛盾にあると思います。ある程度の修業期間は必要なんでしょうね。ちなみに自分は修行は終わってないです。多分一生終わらないと思います。
guest

0

JFrameここを確認してください。

投稿2018/05/23 08:06

m.ts10806

総合スコア80852

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KSwordOfHaste

2018/05/23 08:12

自分はついgetter/setterのことだけコメントして肝心の中身に踏み込んでなかったです w;;;
m.ts10806

2018/05/23 08:21

私もgetter/setterだけで終わらせようと思ったんですが、 結局仕様も理解した上で使わなきゃ意味がないかなと、ドキュメントへの導線を貼る結論に至りました。
KSwordOfHaste

2018/05/23 08:38

おっしゃるとおりと思います。
kidaer

2018/05/23 08:45

setVisibleが探してもなかなか見つからなかったので助かりました。ありがとうございます! ただ何が書いてあるのかがわからなくて……。申し訳ありません。回答ありがとうございました。
m.ts10806

2018/05/23 08:53

日本語ドキュメントなので一個ずつ少しずつ確かめていけば理解はしていけると思いますよ。KSwordOfHasteさんも仰っていますが、最も正しい情報が記載されているのはリファレンス、マニュアルです。 リファレンス、マニュアルが読めるようになることが成長に直結してきます。 もちろん一字一句読み込めというわけではなく、調査の第一歩をリファレンスから始めるように癖付けるという意味です。
kidaer

2018/05/23 09:10

あっ、みなさん本当にリファレンス一覧から始めてるんですね……! 了解しました。少しずつですが、検索で理解していけたらいいなぁと思います。回答ありがとうございました!
m.ts10806

2018/05/23 09:18 編集

そうですね。 ネット上の記事や書籍を全く信用しないというわけではないですが、何かしら端折ったり都合良くなおしたりしている例がないわけでもなくて、自分がやりたいことに当てはまるとも限りません。 動作や意味といった「仕様」に関わる部分はリファレンスが何よりも正しいです。 Javaのリファレンスはリンクで辿っていけたり、JavaDocの形式のはずなのでコードに直結していて直感的ではあると思います。 がんばってください。
kidaer

2018/05/23 09:26

そうなのですか……。あまりにも専門用語やわからない概念前提の話が多いものですから、何か仕様書(パソコンの設計図みたいなもの)をごそっと見逃してるんじゃないかなぁという気がしてしまって……。でも、その仕様書がリファレンス一覧なのですね。頑張ります。ありがとうございます。
m.ts10806

2018/05/23 09:56

まあプログラミングって専門用語しかないので、そこは慣れるしかありませんね。 基本英語なので例えばGooge翻訳など活用すれば「それとなく意味が分かる」ようにはなると思いますし(エラーメッセージなんかは基本Google翻訳に頼ってます) あとはその日本語をいかにコードに反映させるか、なので、 ちょっとずつ着実に進んでいけば良いと思います。誰もが最初は初心者でわけわからないところから入っているので。
guest

0

iframe.setVisible ってのはメソッドです。それを比較したところでどーしよーもないですぜ

投稿2018/05/23 08:00

y_waiwai

総合スコア87784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問