Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

-件のコメント

[C65] [program]J2SE5.0のSwingの非互換問題

PING:
BLOG NAME
1.4だと なのが、5.0だと こんな事に。上が消えてしまう。困ったなぁ。 そもそもがトリッキーな技だったらしくて、1.2→1.3の時もこういった問題があった。

コメントの投稿

新規
投稿した内容は管理者にだけ閲覧出来ます

-件のトラックバック

トラックバックURL
http://nekora2520.blog52.fc2.com/tb.php/151-4e185458
この記事に対してトラックバックを送信する(FC2ブログユーザー)

GroupableTableHeaderUI修正点メモ

絵コンテエディタは一応の完成(お絵描き機能は外部AP頼りだけど…)を見た、というか、絵コンテ自体が一応の完成を見てしまったので、次はタイムシートエディタである。まぁレタスというかアニメスタジオIIというか、イメージとしては、こんな感じにしたいのである。
文字列書き換えただけ
ポイントは、グループ化されたヘッダ。
で、こういう、そのまんまなサンプルがある。世界中あちこちにミラーされている名サンプルである(ここもミラーだけど)。
ところが、これはJava1.4では動かない(動かなかった)。JDK1.3からTableColumnコンストラクタがcreateDefaultHeaderRendererを呼ばなくなった為である。いきなりNull Pointer Exception出まくりである。とんでもない酷い後方互換性である。どうもJavaやJava周りのプロダクトはこんなのばっかりである。後方互換性を軽視し過ぎである。特にBEA製品とか(←私情)。
それはさておき、修正方法は、1.3からはTableColumnではなくJTableHeaderがデフォルトレンダラを提供するようになったそうなので、GroupableTableHeaderUI.java中に3箇所ほどある以下を書き換えることでOK。
//TableCellRenderer renderer = aColumn.getHeaderRenderer();
TableCellRenderer renderer = header.getDefaultRenderer();
が、何故かヘッダの区切りが右に微妙にずれるので、同じソースのpaintメソッド中の以下を
//cellRect.width = aColumn.getWidth() + columnMargin;
cellRect.width = aColumn.getWidth() + columnMargin -1; // とりあえず-1したらずれなくなったが…
とすると上手く行った。こちらはいい加減な修正なので怪しい。我が家以外の環境だと却って悪化するかもしれないので注意。
スポンサーサイト

1件のコメント

[C65] [program]J2SE5.0のSwingの非互換問題

PING:
BLOG NAME
1.4だと なのが、5.0だと こんな事に。上が消えてしまう。困ったなぁ。 そもそもがトリッキーな技だったらしくて、1.2→1.3の時もこういった問題があった。

コメントの投稿

新規
投稿した内容は管理者にだけ閲覧出来ます

0件のトラックバック

トラックバックURL
http://nekora2520.blog52.fc2.com/tb.php/151-4e185458
この記事に対してトラックバックを送信する(FC2ブログユーザー)

Appendix

プロフィール

nekora2520

Author:nekora2520
FC2ブログへようこそ!

最近の記事

ブログ内検索

ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。