■ 久しぶりのSwing開発で躓いたところ 10年ぶりにSwingでデスクトップアプリを開発し、いつのまにか本格的に実用に耐えるフレームワークに仕上がっていたのを知った。NetBeans IDEはとても快適で、API仕様の確認やAPIライブラリのソースコードの確認も簡単にできる。わからない部分があっても、Web検索をすればたいていのことが解説されているのを発見できた。しかし、それでもいくつか、解決策がすぐには見つからない点があった。せっかくなのでここに書き残しておく。 1. テキストコンポーネントのHTML機能を殺す Swingでは、登場した当初からテキストコンポーネントでHTMLが使えるようになっていた。つまり、テキストの冒頭が「<html>」で始まっていると、それ以降のテキストがHTMLとして解釈される。IEでセキュリティ問題を引き起こしたのと同根のうざい仕様だ。JavaScriptは
Posted by alexfromsun on August 19, 2009 at 08:11 AM | Comments (2) Hello Swing community After much discussion it's become clear that the Swing Application Framework API as it is today hasn't reached consensus and we feel still needs further design work done. Since the SAF API was committed to milestone 5 of JDK7 and that time is already here, this date is now impossible, and we need to decommit
JTableのJTalbeHeaderの高さを変更して列幅の合計が1200ピクセルを超えて横スクロールするとバグった。 原因はつかめてないのだけども現象として記録。 APIのバグっぽいんだけどなー。 以下ソース public class TableTest { //検証1 // private Object data[][] = { { "1", "2", "3", "4", "5", "6", "7", "8", "9", // "10", "11", "12", "13", "14", "15", "16", "17" } }; // // private String columnNames[] = { "1", "2", "3", "4", "5", "6", "7", "8", // "9", "10", "11", "12", "13", "14", "15", "16", "
_ RjbからのSwingの使い方 RjbでSwingを使いたいという問い合わせが来た。 JRuby使え、と返したら、そうは行かない事情として、組み込みRubyだからという理由が戻ってきた。なるほど。言われてみれば、Win32OLEを使う場合も同じかも。 使い方にもよるが、もちろん、できなくはない。 問題は、Swingのワーカスレッドと、イベントリスニングスレッドは、どちらもメインスレッドではあってはならないというSwing側の事情と、GC(メモリアロケーションとか)と独自のスレッド管理の都合から、RubyスクリプトはすべてメインスレッドでなければならないというRuby側の事情が、見事に食い違っている点にある。 どちらかが妥協すれば良い。つまり、他のスレッドでは動作できない(たまたま動作しているのは、動作しているとは言えない)Rubyではなく、JavaでSwingのイベントリスニングスレッ
Java1.3以降はDynamicProxyというメッセージ(メソッド)捕捉の仕組みを持つが、.NETのRealProxy等とは違い、インタフェースがメッセージ捕捉対象の絶対条件となるため、JavaBeansのPropertyChangeSupportの自動化等、インタフェースが実装されているとは限らないクラスまでを捕捉の対象にするためには、バイトコードエンハンサの力を借りる必要がある。(Java7では手軽なコードエンハンスの機能は提供されるんだっけか?) 拙作のSwingアプリ用フレームワークは、最初この問題(インタフェースの実装が必須であることと、プロパティが変更された際の通知コードを書かなくてはならないこと)を「やむなし」と割り切っていたのだが、コードを書かない、という良さは、特にJavaでは捨てがたく、外部のライブラリィを使ってでもその選択肢を有効にすることにした。 Javaでバイ
Overview Features User Guide XUL Sample CSS Engine Why CSS engine? CSSEngine/API CSSSerializer/API Architecture/CSS Engine CSS Engine/Swing CSS Engine/SWT Developer Guide Eclipse Projets CSS Engine Download Download Translation English Frensh Project Documentation Project Information TK-UI provides multiple CSS Engine implementations in order to apply CSS styles on different objects, such as Swing
ネイルで使う材料で、DIY時の木割れやネジ跡を派手にしたらかわいい OSB合板でちょっとしたボックスをつくりました。 ビス止め下手すぎて木を割ったり穴あけすぎたりした場所に、好きな派手色の樹脂を詰めてパテ代わりにしてみました。 ちょっと某HAYっぽみ出て可愛かったので、自分用にメモです。 手順 塗装 派手色グミジェルで失敗部分…
独自に定義したアクションのキーストロークがSwingコンポーネントに吸われてしまってハマることが多いので、自分のためにリストアップ。カーソル移動系の自明なアクションは省略してあります。 JTableのF8とか、JSplitPaneのF6/F8辺りは盲点だと思います。 JRootPane KeyStroke Action When Shift F10 postPopup WHEN_ANCESTOR_OF_FOCUSED_COMPONENT JTextArea KeyStroke Action When Alt DELETE delete-next-word WHEN_FOCUSED Ctrl A caret-begin-line WHEN_FOCUSED Ctrl B caret-backward WHEN_FOCUSED Ctrl D delete-next WHEN_FOCUSED Ct
Swing Application Frameworkでは、メソッドに@Actionアノテーションを付けることでアクションを定義できます。さらに、@ActionにenabledPropertyパラメータやselectedPropertyパラメータを付加することで、アクションの実行可否状態や選択状態を宣言的に記述可能です。 例えば、ドキュメントが変更されているときだけ「上書き保存」を実行できるようにするには、次のように記述します。 private boolean modified; public boolean isModified() { return modified; } public void setModified(boolean modified) { boolean oldValue = this.modified; this.modified = modified; fire
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く