ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

メソッドはスーパータイプのメソッドをオーバーライドまたは実装しません

2009年11月30日 23時41分39秒 | ソフト開発日記
普通にpaintCmponentをオーバーライドしようとしたら
「メソッドはスーパータイプのメソッドをオーバーライドまたは実装しません」
というエラーが

よくわからないけど上のほう見るとオーバーライドしようとしてるクラスは
JFrameを継承していたので、別の場所にJComponentクラスを継承するクラスを作って
その中でオーバーライドしてみた。

class Link extends JComponent{
  @Override
  public void paintComponent(Graphics g){
  }
}

エラー消えた・・。
とりあえず以前の1つのpaint()メソッドに分岐で詰め込んでたものをクラス分けしていこう。と思う。
クラスとか継承とか実装とかよく理解しないまま探り探りきてるけどいいんだろうか。まあいいや。

Swingコンポーネントのpaint・・

2009年11月30日 23時21分26秒 | ソフト開発日記
大学の課題のソフトウェアの開発メモっぽいです

言語はJava、IDEはNetBeansを使いぬるぬるGUIを製作。
Javaを学び始めて2か月くらいだけどNetBeansが便利すぎて
クラスとかよくわかってないのにGUIが出来ていってしまいまずい感じ・・。

とりあえずタブを幾つかつけて、タブごとに違うアニメーションを
表示させるものを作りたかったので、簡単にちらつき無くすため
ダブルバッファリング機能が標準搭載されているとかなんやらの
SwingコンポーネントのpaintComponentに手を出してみることに。

SwingもAwtもpaint()で描写、repaint()で再描写らしい。
更にSwingではpaint()と呼びだしたら
paintComponent()
paintBorder()
paintChildren()
が呼びだされる?
あと今までやろうとしてた、paint()のオーバーライドは
Swingではやっちゃいけないらしい。
オーバーライドするのはpaintComponent()。なんでだろう

今までpaint()をオーバーライドしようとして出来なくて、
しょうがなくどのタブが開かれているかを判断して
1つのpaint()内で条件分岐して・・っと冗長なプログラムになっていたけど
これでオブジェクト指向っぽく見えてくるかも?

そしてpaintComponent()のオーバーライドを試しにいくのであった