[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: BorderItemPainterのthis.painter == null(Re: JDK1.2.2でHGridのセルが見えない)




えんどうです。

>BorderItemPainter の this.paint == null なのは、
>bevelInner == FLAT && bevelOuter == FLAT
>つまり、縁はFLATなので、縁を描画する必要がないからです。
>多分問題ありません。

はい。私の勘違いでした。^^;

>HGrid.openDataSet()は、呼ばれてます?

これは呼ばれてます。HNavigator ではナビゲート可能で、
HGrid には見えませんがセルがあります。クリックすると編集可能です。
HDataSetは正常に構築 (SELECT) 出来ています。

その後わかったこととしては、

higa.jhcl.view.GridCore の paint() の中で getClipBounds() が呼ばれていて、
higa.jhcl.view.HComponent の getClipBounds() の中で、

>  protected Rectangle getClipBounds() {
>    Graphics g = getGraphics();
>    System.out.println("HComponent(136): getClipBounds(), g=" + g);
>    if (g == null) {
>      return null;
>    }
>
>    Dimension vp = getSize();
>    Rectangle c = g.getClipBounds();
>    System.out.println("HComponent(143): getClipBounds(), c=" + c);
>    if (null == c) {
>      return null;
>    }
>
>    Rectangle clip;
>    if (c.width > vp.width || c.height > vp.height) {
>      clip = c.intersection(
>        new Rectangle(0, 0, vp.width, vp.height));
>    } else {
>      clip = c;
>    }
>
>    System.out.println("HComponent(156): getClipBounds(), clip=" + clip);
>    if (!clip.isEmpty()) {
>      return clip;
>    } else {
>      return null;
>    }
>  }

Graphics#getClipBounds() を呼んでいる個所があるのですが、

(1) jdk1.1.8\bin\java コマンドのときは Graphics#getClipBounds() が正常

  HComponent(136): getClipBounds(), g=sun.awt.windows.WGraphics[2,81]
  HComponent(143): getClipBounds(), c=java.awt.Rectangle[x=0,y=0,width=33,height=1
  61]
  HComponent(156): getClipBounds(), clip=java.awt.Rectangle[x=0,y=0,width=33,heigh
  t=161]

(2) jdk1.2.2\bin\java コマンドのときは Graphics#getClipBounds() が null 

  HComponent(136): getClipBounds(), g=sun.awt.windows.WGraphics
  HComponent(143): getClipBounds(), c=null

であるところまでは追えました。(ハアハア)
-- 
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Japanese Only)