もう、また仕事で使ってるPCの調子が悪くなった。
再起動に20分以上かかる・・・。
イベントビュアーを見るとPrint Spooler起動の前にReadFileがタイムアウトしている。
うーん、なんだろ・・・。
朝、会社に着いてPCの電源を入れたらなんか起動が遅かった。
ま、まさか・・・。
と思って何回か再起動してみた。
またあれです、再起動に20分以上かかるあの症状です。
何が原因かまったく分かりません。
エラーが発生しているので、先輩の助言でダンプを出さないようにしてみました。
あとは明日PCを起動したときにどうなるか・・・。
ダメだったら再セットアップだな・・・。
特に何もいじってないのに・・・。
気合でPCを動かし、仕事は出来ました。
で、昨日の続き。
ComponentTitledBorderに階層構成のコンポーネントを配置した場合の処理。
これがめっちゃタフかった・・・。
Container.validate()だけじゃぜんぜん解決しなかった。
やったことは、まず、SwingUtilities.paintComponent()の前に、
タイトルコンポーネントのdoLayout()を呼ぶ。
そのあと、Container内部の全てのコンポーネントに対して
setBounds()でコンポーネントの位置と大きさを確定させる。
内部のコンポーネントは、Container.getComponents()で取れます。
予めdoLayout()を呼んでいるので、
いったんタイトルコンポーネント内部を描画したことと同じになっている(と思うんだけど)ので、
getPreferredSize()やgetBounds()とかでなんとかなります。
(なぜか、setBoundsをやらないとウィンドウ再描画とかでおかしくなる・・・)
次にdispatchEvent()のところ。
これは上に比べて簡単で、タイトルコンポーネントとその内部のコンポーネントすべてに対して
Component.dispatchEvent()を呼んであげればいいだけ。
どうせ、JPanelの中にJCheckBoxがあってもJPanelをタイトルコンポーネントとしているのなら、
タイトルコンポーネント内の全てのコンポーネントのサイズは
タイトルコンポーネントのサイズでいいじゃないか、ということでそのままにしてます。
うーん、でも、やっぱりちゃんと計算した方がいいのかな・・・。
そうすると計算が・・・。
FlowLayoutのパネルにパネルを入れると一計算がうまくいかないんよね・・・。
どうやるんだろ。
まあ、タイトルコンポーネントにMouseListenerでも入れておいてくださいよ。
なんとかうまく動いているっぽいのでここでコーディングは終了。
ぐはー、疲れた・・・。
Javaで予めこういうの用意してくれればいいのに・・・。
今あるTitledBorderなんて、ComponentTitledBorderのタイトルコンポーネントを
Stringを描画するJLabelにしちゃえばいいじゃんかよ。
なんでTitledBorderに表示するタイトルをStringで保持してるんだよ。
このあとはクラス図を書いてました。
まだ画面構成が出来てないのに画面のクラス図ですよ。
まずは必要なコンポーネントを置いてみる。
別の画面でも使いそうなコンポーネントは共通コンポーネントとしてみる。
書いていると、「ああ、この画面はこうした方がいいな」といったところが出てくる。
明日は画面の構成を考えるか。
PCがちゃんと動けばな!
今日は今月から入ってきた人の歓迎会。
いつもの中華料理店。
おしゃべりしてきました。
なんだかんだで3時間も居座ってました。
最後の方はぐだぐだでした。
あれで2次会行くとかどんだけ元気なんですかね・・・。
明日も仕事あるのに。
帰ってきてからすぐにBleachのエンコード。
それから風呂に入って、すこしゆっくりしてから見ました。
はい、次ー。
この2日ほど、DQ9をやりながら腹筋をした。
は、腹がいてー・・・。
筋力落ちすぎ。
仰向けになって足を紙一重で浮かせるのが一番きつい。
背筋もやってみようかな。
さて、そろそろDQ9をやってそれから寝るかね。
PCが怖い・・・。
[0回]
PR