denshikobo’s blog

PICプログラミングやPCの操作で感じた日々の由無し事を綴ります

JAVA SWINGのrepaint()でしばし嵌まる

(2015.08.18)
オシロジ”は簡易なオシロ機能とロジアナ機能を果たすRaspiのアプリケーションで、PIC32MXの計測プログラム(C言語)とRaspiの操作・表示プログラム(JAVA Swing)で構成されます。

計測プログラムの開発と操作・表示プログラムの開発を(交互に)繰り返しながら、少しずつ作業をすすめています。

SWING GUIビルダーの力を借りて、一年前にそこそこ動くものができたのですが、その先に進むことがなかなか出来ません。

f:id:denshikobo:20150818174231p:plain

(一年前にここまで動いた)


左側の設定・操作画面と右側の計測表示画面をマルチ・ウィンドウ化したいと考え、DesktopPane、TabbedPanel、LayerdPaneなどの方法を試してみたのですが、どうもしっくりしません。

悩んだ挙げ句、設定・操作画面はボタン操作で複数のPanelを張り替えることにしました。しかし、これまでSWING GUIビルダー頼みの開発を続けてきたので、JAVA Swingの基本的なところが理解できていないようです。Panelを張り替えるという単純な操作が、思うように動いてくれません。orz

”remove()とrepaint()”でググって、ようやく"revalidate()"にたどり着きました。ラベルの張り替えならrepaint()だけで良いのですが、張り替えたPanelの描画には、repaint()する前にrevalidate()を呼び出す必要があるようです。

f:id:denshikobo:20150818174251p:plain

まだ、ばらばらですが”GUIビルダーのくびき”を逃れて自由になったオシロジの今の姿です。

 

にほんブログ村 IT技術ブログへ にほんブログ村 ネットブログ コミュニティサイトへ にほんブログ村 IT技術ブログ オープンソースへ