Java 高速GUI SWT

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
SWTはJavaでOSのネイティブAPIを直接呼び出し、高速に動作する
GUIツールキッドです。

配布時にOS依存のライブラリを同梱する必要がありますが、
アプリケーションコードはOS非依存で書くことができます。

当初はIBMが開発していましたが、現在ではオープンソースで
Eclipse.orgによって開発が進められています。

なお、ライセンスはCPLという、商用利用に寛容な
オープンソースライセンスです。

"JAVA/C++開発環境"eclipse"スレッド2
http://pc3.2ch.net/test/read.cgi/tech/1023103421

SWT FAQ
http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/faq.html

Component Development Resources
http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html

API Reference
http://www.eclipse.org/documentation/html/plugins/org.eclipse.platform.doc.isv/topics_Reference.html
ハゲシク 2 グェット!!
3デフォルトの名無しさん:02/09/20 00:18
おつかれ!
>ツールキッド
・・・
ツールだけ使ってクラッカー気取りしてるガキの意。
キッド!!
危ない!! マイケル!!
クソスレ立てんな
SSないの?
9デフォルトの名無しさん:02/09/20 00:26
ライブラリー厨が集まってきそうだな。
うちの会社ではJNI使ったGUIライブラリーはとっくにできてるし、
大企業なんかじゃ当たり前に存在するんだが。
なぜここでSWTなのか疑問を感じるな。
2chって、学生と無職だらけ?
( ´,_ゝ`) プッ
11デフォルトの名無しさん:02/09/20 00:38
本日はじめてEclipseからHelloWorldにチャレンジ、
なんと、いくつもウィザードがついているもよう!さっそくHelloWorldを選択したが、、実行できず。。
道は遠い
12デフォルトの名無しさん:02/09/20 00:40
>>11
すれ違い
また立てやがった単発スレッド。
お前らの思考は厨房とかわらねえんだよ。
誰か何か作った?
15($∀$):02/09/20 00:46
>13
大企業の人の話が聞けたのでこのスレは無意味ではありませんでしたYO!
>>9
Javaの裾野が広がると思うけど
大企業、すげーな
>>9
当たり前のように存在する割には全然世に出てこないよな。
まさか社内開発限定とか?
大企業ってそんな無駄な事してるのか。
19デフォルトの名無しさん:02/09/20 00:54
TOOL KID AGE
おまいら、大企業の内輪オナニーはほっといて SWT の話せれ
21デフォルトの名無しさん:02/09/20 00:56
>>18
今更何言ってんだか(w
SWTだって、eclipseだってほぼ完成した状態で世の中に出てきただろーが。
下請け妄想大企業は放置してください
それをオープンソースっていうのがすごいような
M$の力を多少なりとも削げるかも
広げれば勝ちだし
なんか、SwingでもJava相談室スレでまかなっているのに
単発スレってのも正直あれな気もするが、SWTのGUI degigner
の新種が出てきたからURLを貼ってみる。完成度はbigsplashと
50歩100歩って感じ。

http://sourceforge.net/projects/eclipsecolorer/
SwingはクライアントサイドJavaのような気がするが
↓ナイスGUI
あそこは、実際のコードレベルの話じゃなくて、もっと違う話
がメインな気がする... 愚痴とか煽りとか...
2825:02/09/20 01:08
× クライアントサイドJava
○ クライアントサイドJavaはどうよ?
SWTマンセー!!

ScrollableじゃなくてScrolledComposite使った方が人は幸せになれます。
スレ削除依頼した?
>>21
大企業のオナニーライブラリはすでに完成してるんでしょ。
それとも、無駄なコスト裂いてまでこれからも開発続けるの?
大企業ってJNI使ったGUIライブラリーは当たり前か。
すげぇー。
>>31
どうせ内輪モジュールなんて一般公開+一般用途に耐えるほど汎用設計されて
ないからほっといてやれ。
出遅れた気もするが、とりあえずこぴぺ。

FreeML ML情報ページ [SWT Fanclub]
http://www.freeml.com/info/[email protected]

ecipseスレから
■SWT
Q. SWTって自分のアプリケーションから呼び出せるの?
A.
 作り方...http://www.eclipsetotale.com/articles/swt/premierProjetSWT/index.html を参考のこと。
 配布に必要なもの...swt-win32-2026.dll(2026の部分はverごとに違う)、swt.jar、コンパイルしたclassファイル
 実行方法...適当にdll置いてjarにclasspath通してください。

Q. SWTを使ったネイティブアプリを作るには?
A. 以下のコンパイラを使う。
 Windows: JET http://www.excelsior-usa.com/jet.html
 Windows: JOVE http://www.instantiations.com/jove/product/thejovesystem.htm
 Linux: GCJ http://www-106.ibm.com/developerworks/library/j-nativegui/index.html
35デフォルトの名無しさん:02/09/20 01:38
Excelsior JET, Standard Edition (CD) with Standard Support $400.00
JOVE Optimizing Native Compiler for Java Technology ..... $795

JOVEのサンプル実行したけど、やっぱりネイティブなだけあって、
起動も速いね。


私はSwing使いですが、1.4以降はなかなか高速なので
SWTなんか使いませんし、ひょうじゅんにもならんでしょう。
Swingは作り込まなければ、Windowsの操作間隔と違うのが
致命傷だと思う。

特にWindowsで動かす場合、他のアプリと操作間隔が違うっていうのは
許されない場合があるのでは?
SWTのGUIビルダーさえあれば...
>>37
同意。「へんなアプリ〜」って終わってしまう可能性がある。
Swing アプリはあんま使ったこと無いけど Windows の L&F もそんな
違うもんなの?
そういうことにしたいんでしょ。
別スレには
MessageBoxのボタンが矢印キーで動かない
コンボボックスのキーボード検索
オートコンプリート
文字キー単独でのボタンのショートカットが無い
ウインドウからフォーカスが外れてもメニューが開きっぱなし
とか、挙がっていたよ。

だけどSwing擁護派は、その程度は実装でカバーするか
コンポーネントを買うって言ってた。
オリジナルのコンポーネントも作れるし、 コンポーネントの改造もできる
というのが言い分。
別にSwing敵対スレではないのでマターリいこうや
Swingとは適材適所で使い分ければよろし

情報は多いに越したことはない
つーか、クライアントサイドJavaスレと話題がかぶらないように
いこう。
マヌケなVBアプリの操作感のほうが、よっぽどきもいけどなあ。
http://www-6.ibm.com/jp/developerworks/opensource/020125/j_os-plat.html
で、JFaceは、SWTを使って実装されたさらに高レベルのユーザー・インターフェース構築用
ツールキットです。JFaceを利用すると、一般的なUIプログラミング作業が大幅に簡素化されます。

ってあったけど、どう大幅に簡素化されるの?
>>45
そりゃマヌケなのと比べたらいかんでしょう。
工夫のないSwingなUIの酷さも相当なものなのだから。
サーバを鯖と略すなら
ツールも吊るとか都留だとか
>48
なぜそこで鶴が出てこないのか小1j(略
SWTを使って日本語環境で日本語以外を表示するのは可能?
中国簡体字とかタイ文字とか
OSはとりあえず多国語フォントを入れたWin2kだとして
本末転倒
なぜ?
SWTのwin32ピアの作りによるんじゃないの
54デフォルトの名無しさん:02/09/20 20:28
技評の WEB+DB PRESS vol.10 P.75 に
軽快 Java GUI コンポーネント「SWT」で作る Web サービスクライアント
って記事が載ってるーよ
55デフォルトの名無しさん:02/09/20 20:32
>>54
本屋に行くたびにチェック忘れる……
内容はどんな感じなの?
良さげならamazonで1clickするーよ.
56デフォルトの名無しさん:02/09/20 20:54
>>55
SWT の紹介から始まって、環境設定、お約束の Hello SWT World!、
基本コンポの例にレイアウトの仕方、イベントモデルをざっと舐めて、
最後に Google Web サービスクライアントを作っておしまい
ソスリストも入れて全10P、かなり早足、とっかかりには十分
1clickしとけーよ
5755:02/09/20 22:50
>>56
ありがd
1clickしたーよ

しかし"お取寄せ"な罠
Shellが一瞬表示されたあとに消えちゃうんだけど…。
↓なんでこういうループを書く必要があるの?

shell.open();
while(!shell.isDisposed()) {
 if(!display.readAndDispatch()) display.sleep();
}
display.dispose();
マニュアルに書いてあるよ。
>終了条件 (通常、ユーザーがメインのシェル・ウィンドウを閉じるとき) が
>生じるまで、イベント・ディスパッチング・ループを実行します。
もしかして、イベント駆動なプログラム組むの初めての人?
60デフォルトの名無しさん:02/09/21 01:31
58じゃないけど、俺も不思議に思った。
なんかふに落ちないコード、、C++とかじゃ当たり前?
速度を追求すると、こうなるんだろうか・・
gtk -- gtk_main()
Qt --- QApplication::exec()
Tk --- Tk::MainLoop()
>>60
むーんナツカシイ、、
MFCが出る前のWinプログラムみたいだ、、、
プリエンプティブな言語や環境では必須っぽい。
でもその辺りを隠蔽するのがクラスライブラリの役目だと
思うんだけど、、、、
マルチスレッドのJavaでイベントループいじれて
何かいいことあるんだろうか、、、
確かに。どうしてこの程度のコード隠蔽しないんだろう。

VCL -- Application.Run
64デフォルトの名無しさん:02/09/21 03:15
ActiveXでIEを組み込むみたいに、Swingのコンポーネントを組み込むことはできますか!?
65デフォルトの名無しさん:02/09/21 03:18
ネイティブAPIよべるのにOS非依存って
ぷ。
66プロの逝って良しの1:02/09/21 03:31
お医者さんに

「明日からは何でも好きなのを食べて良いですよ。」

と言われたJava厨
67デフォルトの名無しさん:02/09/21 03:56
俺はEclipseがあまりに使いやすいのでプラグインが作りたいだけ
プラグインを作る言語がJavaとSWTだからそれを使う。
ActiveXは最後の手段だが(OS非依存にこだわるのではなく、実装が面倒&汚い&よくわからい(笑)ので)別に使うことはためらわん。

今やっと、HelloWorldプラグインできた、、
明日、カレンダーと電卓のビュープラグインつくりますデス

できればメディアプレーヤをつくりたくて
JMFをSWTから呼び出せないか(=SWTからSwingコンポーネントを呼び出せないか)知っている方いたら教えてください
Compositeを継承したクラスのsetSizeメソッドが妙に遅いんですがこんなもんですか?
スタンドアロンなSWTアプリでも,JFace使ったほうが楽かなぁ?
将来的にEclipseにPluginとして使うことを考えると…
>>67
http://www.eclipse.org/eclipse/faq/eclipse-faq.html
でswingで検索すべし。
Swingを組み込むクラス(SWT_AWT)があるけど、Windowsでしか動かないし、
糞重いし、しかもまだ実験段階だよ、って書いてある気がする。

組み込めたら便利よね。僕はSwingのHTMLコンポーネントが使いたい。
7158:02/09/21 13:08
>>59
イベントドリブンなコードは VB と Java で経験しました。
あのようなイベントループ?もPalm(gcc)の開発で経験あります。
Palm(gcc)の開発ではコンポーネントが増えるにしたがって
イベントループが長くなるのが嫌でした。(どんどん可読性が落ちていく…)

で、SWTに挑戦していきなりソレだったので、驚いたわけです。
もしかしてイベントリスナー使わないで、Shellのイベントループで
各コンポーネントの処理を制御するのだろうか? と。
さすがにそれはない。
確か次かその次あたりの JavaPress で SWT やるって出版社の人が言ってたような…
期待 age
だれか SWT で 2ch ブラウザ作って見ないか?
ギクッ
77デフォルトの名無しさん:02/09/22 06:55
>>75
プラグインとして作って,スレ見るぐらいはできるようにしたんだけど,
しばらくほったらかしになってた…… 再開するかな.

作りかけってのは他にも結構いそうだけど.
もうちょっとgraphicパッケージを充実してホスィ・・・
でも、eclipseプラグインのためのライブラリである事を考えると、
全く期待できないんだろうな。透過png表示できるだけでもありがたいと思わねば。
79デフォルトの名無しさん:02/09/22 22:34
>>77
まじキボン、俺つくろうかなと思ってたけど任せます(笑)
Eclipseのプラグイン2chブラウザたのむじぇぇぇ
この板見ながらプログラミング、、、
在る意味究極の環境、、、
>>80
バカはよせ
Java初心者スレとのシームレスな開発環境か・・・
8377:02/09/22 23:13
JavaOne終わったら再開しよう.
CPLにするので,公開の暁には協力きぼんぬ.
84デフォルトの名無しさん:02/09/22 23:26
エロサイトみながら開発したいのですが良いプラグインありませんか?
開発チーム用の掲示板見ながら開発ってのもいいかも知れん。
メーリングリストとか? ツァットとか?
SWTって随所に感じられるCっぽさがあまり好きになれん
Swing の 1 platform として SWT ラッパーっつうのは無理?
インターフェースだけ合わせてさ、中身は SWT っての
今クライアントやってる人はそれが楽なんだが
88デフォルトの名無しさん:02/09/23 01:24
プラグイン開発してる奴おしえれ
俺の作成手順は
1.ソース作成-コンパイル
2.plugin.xml作成
3.クラスファイルをjar圧縮
4.eclipseのプラグインフォルダに新しいフォルダを作成
5.そこにjarとplugin.xmlをコピー
6.eclipse再起動
・・だが、デバッグの度にこれを繰り返すのが苦痛で死にそう。3−6をオートマチックにやってくれる方法とかあったら教えてください
>>77
SourceForge.jpに登録シル!
Developerデナラキョウリョクスルジョ!
90デフォルトの名無しさん:02/09/23 01:46
すこし考えてくれ。
ネイティブAPIでつくるとJAVAの移植性がなくなるでは
ないか?それならVCつくればいいではないか
馬鹿?
>>90
とりあえず、馬鹿はお前なワケだが…。
>>90
ユーザーコードでネイティブAPIを使うわけではないから、
プログラマから見たら、SWTとSwingの移植性に大差はないのでは?
SWTが十分な数のプラットフォームに移植されればそれで十分。

Swingも1.4でVolatileImageが使えるようになって高速化してるからSwingで十分な領域も
増えてると思うけどね。
個人的にはSWTに期待してる。もっとrichなGUIになってもいいと思う。SWTなら可能。
93デフォルトの名無しさん:02/09/23 02:03
先生!new Label(parent)でコンポーネントにラベルがはりつくってどーゆーこと!?
Labelがparent使って自身を貼り付けてるのか?よくわからんフレームワークだ・・
なんか(前からだけど)どんどんJavaが初期の理想から外れていくなあ…。
標準ライブラリの中にGUIが入ってたのには感動したのに…。
95デフォルトの名無しさん:02/09/23 02:07
>>87
Swingは巨大なライブラリだからSWTラップするっていってもSwingのuiプラグインでやるしかない
処理速度は上がらんでしょ、見た目だけはなんとかできるかもしれないが、、
96デフォルトの名無しさん:02/09/23 02:09
SWTやるならC#のほうが断然まし
97デフォルトの名無しさん:02/09/23 02:10
>>96
C#でEclipseのプラグインつくれればいいけどな
>>96
はぁ?

性能はともかくVB互換を維持した.NETのUIライブラリの
インターフェイスはクソの極みだと思うが。
>>98
残念。.NETのUIはVCL/WTL互換。それなりに洗練されてる。
VBは捨てられた。
つか、、

            / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ∧_∧   < 落ち着けよカスども
     ( ´_ゝ`)   \________
    /     \
   / /\   / ̄\
 _| ̄ ̄ \ /  ヽ \_
 \ ̄ ̄ ̄ ̄ ̄ ̄ \__)
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
  ||  ||           ||

SWTの話しようぜ
10075:02/09/23 02:38
>>77
期待しとります。
協力しますぞ。人柱として。
スタンドアロンでの jface ってどうやって使うん?
SWT だけなら本家にサンプルがあるんだけどさ。
102デフォルトの名無しさん:02/09/23 02:47
>>97
やれるもんならやってみなしゃれ
103デフォルトの名無しさん:02/09/23 02:55
ネイティブAPI?
これてやっぱ移植性がなくなるの?
AIX, HP-UX, Linux, MacOS, Solaris, Win32 以外の互換性はなくなりますね。
>>104
オプソで仕様が公開されているなら、実装してみたら?
せめて炊飯器とかi-modeでも動かないとわざわざJavaで作る意味無いな!
>>104の環境でしか動かないんじゃネイティブで書いても変わらないよ!!!
>>106
>>104 のどの環境でもコンパイルできるネイティブ GUI アプリ作ってみてください。
炊飯器やi-modeはswingなら動くのか?
IEですら・・
Swing使った時点で、対応OSが >>104 と大差無くなるような気もするなぁ。
むしろ携帯なんかの組み込み系エンジニアにしてみたら「デスクトップと同じ
スペックなんて実装できるかボケー!」だろうな。どうみても Swing、SWT
どころか 1.0 標準 AWT すら「デスクトップ環境」用のライブラリだし、
それ向け GUI アプリがそのまま動くとは到底思えない。
せいぜい CE で動けばラッキーと違うか。

というわけでこのスレは一般コンシューマ向けのデスクトップ環境を目安に
話すればいいのではなかろうか。
ちなみに 1.0 の頃は今の EE, SE, ME なんかの切り分けは無くて
「少なくとも java.lang, java.io, java.net, java.util はどの環境でも
サポートせよ」みたいな切り分けじゃなかったっけ?
Z80でjavaは動きますか?
4004でも動きます
>>88 ランタイムワークベンチ使えば? あと、それeclipseスレねたかと。
>>101

http://jfacedbc.sourceforge.net/
これがサンプルになるのでは。
116デフォルトの名無しさん:02/09/23 15:27
>>AIX, HP-UX, Linux, MacOS, Solaris, Win32 以外の互換性はなくなりますね。
それ以外の互換性がいるのか(w
117デフォルトの名無しさん:02/09/23 15:48
炊飯器でGUIが必要なのだろうか?

起動すると「Did you know?」とTipsが表示され

メニューから、ファイル>新規作成>ごはん

さらにウィンドウが開いて、ごはんの種類テンプレートから炊き込みを選択、
名前に松茸ご飯を入力して「次へ」

炊き上がり時間を18時にセットして「高速」チェックボックスをオンにして「完了」

「このタスクを登録しますか?」
確認画面がでるので「OK」を押す

炊き上がると
ファイル>開く>ふた
でふたを開いて(゚д゚)ウマー


118104:02/09/23 15:49
>>116
フフ
そういう意味で書いたんだが炊飯ジャーとか言われてしもた
>>117
ステキ
>>117
いいなー。
だれか、これ、SWT使ってジョークソフト作ってよ。
>>120
それを言っちゃダメだろ。
思いついたら自分で書いて出してこないと
122デフォルトの名無しさん:02/09/23 19:38
>>117
iModeで外出先からそれが出来るようになるんだよ。
>>117
>ファイル>開く>ふた
"開く"ってそっちの"開く"かよ!

>>122
一体誰が米をといで炊飯器に水と松茸と一緒に入れてくれるのか(w
>>123
当然利用者にはASIMOを購入してもらう。
>>124
ネットに繋がったASIMOがクラックされたら(((( ;゜Д゜)))
ASIMOは高い。先行者に汁!!
>>126
先行者は兵器なので輸出入に規制がかかります。
先行者のあの手では米は研げまいて
>>128
無洗米だから大丈夫みゃ
130デフォルトの名無しさん:02/09/23 23:29
>>106
あの、、iMODEのコンポーネントはネイティブですのであしからず(SWTと同じ)

あと、SwingはPersonalJavaでサポートしないためWinCEやザウルスでは動かんが、SWTはもうすぐCEむけのが出るらしい、
つまり、SWTのほうがクロスプラットフォームになる!?かもしれない
スレタイ見てフト思ったんだが、SWTが高速なんじゃなくて、
それ以外が無駄に遅いだけでは?
>>130
i-modeにSWT移植しろよ
i-mode独自ならなおさらネイティブでやってもいいじゃねーかよ
133デフォルトの名無しさん:02/09/24 00:27
何言ってるんだか・・
134デフォルトの名無しさん:02/09/24 00:31
>>125
留守中に松茸ご飯を炊かれてしまうな。
135デフォルトの名無しさん:02/09/24 02:55
>>125
留守中に部屋の片づけをされてしまうな
136デフォルトの名無しさん:02/09/24 02:55
>>125
留守中に溜まりに溜まった洗濯物を洗濯して干されるな。
137 ◆k/Ubp.Kg :02/09/24 04:09
>>131
うん、その通り(笑)。実際ネイティブアプリと変わらないよ。
実際にeclipse使ってみるなりSWTで何か作ってみるなりすると分かる。
# JavaだからVMを立ち上げる分、起動は当然遅いけど。
けっこうキラーなアプリが作れそうな予感
問題は起動とJREのサイズだけか

だけどもしSWTで2chビューワーのキラー的なものが作れたとしても、
やっぱり使われないんだろうか...
>>138
使われるんでねーの? 今のってどれも劇重落ちまくりだし。
一般人に向かって
「使いたかったらJREインストールしろや」なアプリを作れそうなヨカーン
どの道 SWT もバンドルしなきゃならないから JRE/SWT フルセット版と
SWT バンドル版で配布するのがふつーじゃねーの。
VBランタイムDLLでも敬遠される世の中なのに
JREバンドル・・・恐ろしい
>>142
わかってないな。それをユーザーにインストールさせるのがキラーアプリという奴だろう
VBのそれは質でなくて数で普及しただけだがな
あ、↑は業務用でなくて一般ユーザー向けの話な
VB ランタイムは入れると既存アプリの挙動がおかしくなることがあるから敬遠されてる
だけ。ADSL くらいなら数十 MB 程度のファイルごときのダウンロードは屁にもならん。
なんか必死だなw
147 :02/09/24 10:10
初回にJREを勝手にダウンロードしに行くwin32用アプリ?
>>146
おまえがな
JBuilderとか
ネスケとか
一太郎ARKとか

スマン、キラーアプリの話だったな。
つまり、回線が太ければJREの配布はあまり問題ではないと。
と、考えると問題ってないようなもんじゃない?
今時JRE(つーかJVM)が入ってない環境って希だろ
バージョン問題もあるから、やっぱりJREの配布は必要
>>151
…俺入ってない。稀な人です。
>>151
       ,一一、
      / ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ■■-っ < んなこたーない
     ´∀`/  \_______________
   __/|Y/ \
  Ё|__ | /  |
      | У.  |
      | У.  |
>>151
WinXPとソラリスを除くUNIX系はデフォルトでは入ってない。
SWTの仕組みあんまり分かってないんだけど、同じようなコトをSwingではできないの?
>>156
同じことって具体的に何よ?
158156:02/09/24 19:29
>>157
えと、ネイティブAPIを使って高速に動作するように…ってコト。
159デフォルトの名無しさん:02/09/24 20:23
>>158
AWTとSwingのちがいについて勉強してくダサイ。
JREなんか入れてないよ
必要ないし
それを入れさせるキラーアプリってはなしじゃないの?
162デフォルトの名無しさん:02/09/24 22:19
俺的には2chプラグインは豪華なものじゃなくて
ビューポイントの拡張で小さなウインドウでも使えるようなものがいいな

あと、iアプリ実行プラグインだれかつくってくれ
163デフォルトの名無しさん:02/09/24 23:01
ベースコンポーネントを継承してSWTでオリジナルコンポーネントをつくりたいのですが
Swingでいう「JPanel」の代わりになりようなコンポーネントはSWTではどれにあたるんでしょうか?
JavaWebStartで配布は無理かなあ。
>>162 やっぱeclipseスレとこのスレってネタかぶるなぁ。
仕方ないとは思うけど。i-modeプラグインはeclipse-mlのほうにさっき
流しました。でも自分でAnt使って組んだほうがいろいろカスタマイズ
できていいと思うよ。
166デフォルトの名無しさん:02/09/24 23:39
>>164
一般ユーザにはJavaWebStartの重さでいきなり全否定される悪寒.
初回インスコはJREとワークベンチも含めてInstallShieldか何かで固めるしかないと思うなー.
合計40MBだけど,初回だけで,あとはアップデート機能でいけるし.

もちろん,既存eclipseユーザ向けにプラグイン単体でもリリースするとして.
>>166
ちょとまて、SWT自体はDLL(Windowsの場合)一つとささやかな
クラスライブラリだけだぞ。
168デフォルトの名無しさん:02/09/24 23:44
あ、あの、SWTむずかしいと思うのですが俺は異常ですか?
ちなみにC++経験なし、これがいけないのか?
eclipseスレで既出なんだけど、eclipse platform
をベースにしたアプリケーションをInstallShieldで固めて配布する
ためのサンプルはeclipse.orgにもあるね。
>>168
何が難しいと思うのか述べよ
171デフォルトの名無しさん:02/09/25 00:04
>>163
たぶんCompositeかCanvasが良いと思われます。
JREも10Mくらいだろ。
どこから40Mって数字がでるんだ?
173デフォルトの名無しさん:02/09/25 00:29
>>171
とりあえずCompositeっぽいですね。ありがとう
174デフォルトの名無しさん:02/09/25 00:34
>>168
多分Swingと比較して言ってるんだろう、
Swingだって最初はむずかしかったでしょ?SWTとSwingは設計理念が違うから最初とまどうね
まぁライブラリとしてはSwingの方が綺麗だと思うけど、遅くてショボくて使えないアプリつくってもね、、
おいらはswingよりswtくらいの粒度の方がやりやすけどね
いくつかのネイティブコンパイラでSWTサポートが始まってるよ。
これを利用すると、JREが不要になる。コンパイルした exe と
SWT の DLL だけでプログラムが動くですよ!
ちなみに、Swing を使っていると exe にしても、JRE がないと
プログラムが動かない。なんでだろ?
JRE になんか手伝ってもらってるのかな。。
↑あ、すまん。Windowsの話です。
>>176-177 Excelsior JET のこと?FAQになかった?

無料のpersonal版では、いずれにせよJDKが必要だったなぁ。
gcjのmingw版はに期待
179166:02/09/25 06:31
>>167
ああ,いや,2ch用ブラウザの話.言葉足りずでスマソ.

>>172
なんかと混ざってたみたい.記憶違い.

>>178
gcjだとlibgcjがGPLだから,全体がGPL互換でなきゃならない.
でも,swt.jarはCPLだからGPLと互換しない.
だから,SWTアプリに関してはgcjは使えないんじゃない?

Excelsior JETでJRE使わずSWTアプリ作るには
20マソのProfessionalが必要……
>>179
libgcjはlibgccと同じでリンクする分にはどういうライセンスでもかまわない
という例外付きのGPLだよ。だから、GPLと矛盾するライセンスでもgccやgcjで
作ることができる。

http://gcc.gnu.org/java/faq.html#1_1
より
1.1 What license is used for libgcj?

libgcj is distributed under the GPL, with the 'libgcc exception'. This
means that linking with libgcj does not by itself cause your program to
fall under the GPL. See LIBGCJ_LICENSE in the source tree for more details.
182デフォルトの名無しさん:02/09/25 13:22
>>174
プログラムなんか(どこでも)動けば(少しくらい遅くても)いいんだヴォケ。
183デフォルトの名無しさん:02/09/25 14:05
>>182が、業務でプログラム作ってたとしたら、最低品質のものだろうな。
Javaを使っても、VBみたいなコーディングしてそうだし、
RDBMSは、巨大なグローバル変数として使ってそうだ(w
>>183
俺は >>182 ではないが、何で、「最低品質」とか、「VB みたいな」とか、
「強大なグローバル変数」なんてのが出てくるのだろう?

「(どこでも)動けば」っていうのは、「何でも良いから動けば」ってのとは
違うだろ?

と書いてみる。
185デフォルトの名無しさん:02/09/25 14:23
>>183
釣れた!
最近、釣れたって言うの激しくかっこ悪いと感じるんですよ。
187デフォルトの名無しさん:02/09/25 14:29
釣れたとか釣れないなんてのは、主観的概念であって、
言葉遊びの域を出ていないんだよ。

。。。と、釣られてみるテスト
そういうことにしたいのですね( -=・=- -=・=- )
( ´,_ゝ`)
おまいら、SWT の話をしないのはなぜでつか?
>>190
いちいち聞くな。話を戻したいなら話を振れ。このやろう。
このやろう。
193デフォルトの名無しさん:02/09/25 15:14
こやのろう。
194yahooo!!アダルト:02/09/25 15:17
195デフォルトの名無しさん:02/09/25 22:11
さっさとSWTでなんかつくってUPしろや
つかってやるぞ
>>195
漏れはおまえのケツの穴をつかってやるぞ
>>196
漏れは藻前の上の口を使ってやるぞな
198デフォルトの名無しさん:02/09/25 22:54
プラグイン兼SWTアプリを作ろうと思ってextends ViewPartして
さらにmain()でShellをつくってcreatePartControl(shell)
してSWTアプリとして実行すると
java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IAdaptable
・・というエラーがでてしまいます。

extends ViewPartを外したらちゃんと動いています
何がいけないのかご存知のかたいたら教えてください
>>181
おー,そうだったのか,知らなんだ.
そしたら,ライセンス的な障害はないね.
あとはどの程度まともに動くかってことか.

>>198
Part系はJFaceであろ.
JFaceはswt.jarには含まれとらんから,それなりのクラスパスを通さんといかん.
とりあえずruntime.jarとか.
JFaceだと何ができる?
201デフォルトの名無しさん:02/09/26 00:26
>>199
なるほど!ありがとう、
・・ということはスレ違いか、スマソ
202デフォルトの名無しさん:02/09/27 02:05
SWTのWidgetsって簡単に継承できんね。
コンストラクタがパッケージ内publicのstaticメソッド呼んでるよ、、、
まぁわざとそうして互換性を保持していこうって腹かな・・
>>202 できんつーか、継承するなってjavadocコメントに書いてある
ウィジットがほとんど。
204デフォルトの名無しさん:02/09/27 14:08
というか、別にWidgetsレベルで継承する必要はないんじゃない?
SWT で組むとどんな感じになるのか知りたいんですけど、だれか hello, world な
ソース晒してもらえませんか?
サンプルに入ってるよ。
携帯ダイアルアップ環境 only でつ…
eclipse.orgにあるオンラインマニュアルでも読んだら?
209デフォルトの名無しさん:02/09/27 20:40
>>203
マジ!?
>>204
いや、俺Swingでは普通によくやってたんだけど
継承の件もそうだけど、全体的に見てSwingに比べて自由度が低い感じがするねぇ
自由度が高ければ良いという物でもない
制限されているからこそ良いという物もある
>>211
禿同
213209:02/09/27 22:56
まぁ、それは言えるかもしれない。
Swing継承してコンポーネントつくったばっかりにSunのSwing仕様変更の煽りをくらって何度もクラスかきかえたもんなぁ
他人のつくったクラスをそうそう継承するもんじゃねーな、
>>213
本来親が賢ければ子は楽できるもんなんだがな、親がバカだと子が悲惨なことになる。
>>214
若いうちの苦労は買ってでもしるという言葉もあるが……
イマドキの若者は上流ばっかりやって下流肯定を嫌がるそうです
217デフォルトの名無しさん:02/09/28 00:01
継承できなきゃOOPできるわけねーだろボケ!
なんだよSWT
継承するものかどうかはデザインによるだろ
そういう勘違いがどうやったらできるのか
217のプログラミング言語習得履歴を知りたい
219デフォルトの名無しさん:02/09/28 00:10
若いうちの苦労は買ってでもしるというのは自分が若い時苦労したから
今の若い世代にも同じ苦しみをさせようと古い人間が考えた言葉。
>>217
java.lang.Stringがfinalってことは,Javaの根幹からしてOO不能ってわけか.すごいな.
>>219
つまり、swingクラスを継承すると苦労する羽目になるのは、
swingチームが漏れ達にも同じ苦労をさせようと・・・
初めてのGUIをSWTで勉強しています。
色々やってますが詰まってしまいました。

・Tableのセル(or列)に,コンボを入れるってどうやるの?
・DirectoryDialogで「新しいフォルダ」ボタンを消して表示するには?
・Caretって何に使うためのもの?

どなたか…(SWTもSwingぐらい充実したサンプルや書籍が欲しいなあ)
>>222
何かサザエさんの予告みたいだな
224デフォルトの名無しさん:02/09/28 00:25
222ではないけど追加質問

・Tableのセルをアイテム毎に選択できるようにするには?(何故か行単位でしかできない)
225デフォルトの名無しさん:02/09/28 00:27
>>218
OOP暦は2年程度だが、SWTのWigetsは継承可能なようにデザインすべきだと思うが?

>>220
ちみの極論がすごい
>>225
言語はJavaだけ?
>>222
>・Tableのセル(or列)に,コンボを入れるってどうやるの?

org.eclipse.swt.custom.TableEditorとCComboを使う.

>・DirectoryDialogで「新しいフォルダ」ボタンを消して表示するには?

DirectoryDialog使ってRun Anywhereでそういうことはできないっぽい.
Win32だけでいいならBIF_NONEWFOLDERBUTTONを渡すようにしつつ
DirectoryDialogと同じようなことを(Javaで)することは可能だけど……
Pure Javaで何も考えずに作ると"マイコンピュータ"とか見えないんだよね.

>・Caretって何に使うためのもの?

Caretはふつーにキャレットなんでは?
テキストエディタとかでちかちかしてる,挿入位置を表すやつ.

>>224
>・Tableのセルをアイテム毎に選択できるようにするには?(何故か行単位でしかできない)

org.eclipse.swt.custom.TableCursorを使う.
あれはもともとリスト系コンポーネントだから,
TableCursorなんかは結構無理矢理実現してる.
228224:02/09/28 01:28
>>227
さんきゅー、やってみます
229デフォルトの名無しさん:02/09/28 01:30
>>226
OOPはJavaだけ。趣味ではC#もちょこちょこやってるけど、何か問題でも?
ちなみにTableCursorとか見ればわかると思うけど,
SWTってのは継承によって拡張するタイプの設計じゃなくて,
リスナによって拡張するタイプの設計になってるのよね.ペイントリスナとか.
継承よりも疎な関係にできるから,スーパークラスとサブクラスの管理者間の
調整ができない場合も堅牢性を保ちやすい.
漏れはSWTのPopupクラスを何に使うのかがマジで解らん。
Objectから直接継承してるためWidgetとしては扱えないし、
内包してるListウィジェットもprivateでしかもgetter無いし。
楽しげな使い方を漏れに教えてください。
swtでWindowのドッキングってできるの?
そんくらい作れ
>>231
SWTにPopupなるクラスは無いわけだけど……
PopupListならjavadocに用途がはっきり書いてあるよ.
Comboをつつくと出てくるリストの部分だ.
独立したウィンドウだからwidgetじゃないのは当然.
>>234
JavaDocすぐに読めない環境だったから、書き込むときに検証できませんですた。
Comboで使うのね。なるほど。
http://www.eclipse.org/documentation/pdf/org.eclipse.platform.doc.isv.pdf
に、
Extending an existing widgetってのがあるよ。
237デフォルトの名無しさん:02/09/28 18:40
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> SWT
SWTのTableとSwingのJTableで10,000件の表示テストをしたんだけど、
初期にデータをセットするスピードがSwingの方が圧倒的に速いという結果になった。
自分がヘタレなせいでこんな結果になってしまったと信じたいので、識者の意見を求ム。
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
public class Test {
 static String[] DATA = {"1", "2", "3", "4", "5"};
 static int COUNT = 10000;
 public static void main(String [] args) {
  Display display = new Display();
  Shell shell = new Shell(display);
  Table table = new Table(shell, 0);
  table.setHeaderVisible(true);
  for (int i=0; i < DATA.length; i++) {
   TableColumn column = new TableColumn(table, 0);
  }
  long time = System.currentTimeMillis();
  for (int i=0; i < COUNT; i++) {
   TableItem item = new TableItem(table, 0);
   for (int j=0; j < DATA.length; j++) item.setText (j, DATA[j]);
  }
  System.out.println((System.currentTimeMillis() - time) / 1000);
  for (int i=0; i < DATA.length; i++) table.getColumn(i).pack();
  table.setSize(table.computeSize(SWT.DEFAULT, 200));
  shell.pack();
  shell.open();
  while (!shell.isDisposed()) {
   if (!display.readAndDispatch()) display.sleep();
  }
  display.dispose();
 }
SWTのTableとSwingのJTableで10,000件の表示テストをしたんだけど、
初期にデータをセットするスピードがSwingの方が圧倒的に速いという結果になった。
自分がヘタレなせいでこんな結果になってしまったと信じたいので、識者の意見を求ム。
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
public class Test {
 static String[] DATA = {"1", "2", "3", "4", "5"};
 static int COUNT = 10000;
 public static void main(String [] args) {
  Display display = new Display();
  Shell shell = new Shell(display);
  Table table = new Table(shell, 0);
  table.setHeaderVisible(true);
  for (int i=0; i < DATA.length; i++) {
   TableColumn column = new TableColumn(table, 0);
  }
  long time = System.currentTimeMillis();
  for (int i=0; i < COUNT; i++) {
   TableItem item = new TableItem(table, 0);
   for (int j=0; j < DATA.length; j++) item.setText (j, DATA[j]);
  }
  System.out.println((System.currentTimeMillis() - time) / 1000);
  for (int i=0; i < DATA.length; i++) table.getColumn(i).pack();
  table.setSize(table.computeSize(SWT.DEFAULT, 200));
  shell.pack();
  shell.open();
  while (!shell.isDisposed()) {
   if (!display.readAndDispatch()) display.sleep();
  }
  display.dispose();
すまん。2度送ってしまった。以下Swing。
import javax.swing.*;
import javax.swing.table.*;
public class Test {
 static String[] DATA = {"1", "2", "3", "4", "5"};
 static int COUNT = 10000;
 public static void main(String [] args) {
  JFrame frame = new JFrame();
  DefaultTableModel model = new DefaultTableModel();
  JTable table = new JTable(model);
  frame.getContentPane().add(table);
  for (int i=0; i < DATA.length; i++) model.addColumn(DATA[i]);
  long time = System.currentTimeMillis();
  for (int i=0; i < COUNT; i++) {
   Object[] values = new Object[DATA.length];
   for (int j=0; j < DATA.length; j++) { // 遅くしたい
    values[j] = DATA[j];
   }
   model.addRow(values);
  }
  System.out.println((System.currentTimeMillis() - time) / 1000);
  frame.pack();
  frame.setVisible(true);
 }
>>238
Windowsで言うところのいわゆる仮想リストビューとか,
swingでTableModelを自前で使ったときのような事ができないんだよね.
データを実際に放り込んだときにSWTの方が遅いのは,
主にJNIのオーバヘッドであるとかが原因.

で,Tableはアイテムの数が3桁以上だと使い物にならなくなってくるので,
そういうときはTableTreeを使って50個とか100個ごとに分割するのがいいと思う.
JDTのVariablesビューの配列の表示みたいに.

そもそも,1000行とか10000行とかあるTableって使いやすいものでもないし.
分割しても遅いもんは遅いっしょ?
>>242
うんにゃ.
初期化がlazyになる.
つまり,ユーザによってexpandされた段階でデータモデル側(TableTreeItem)
から子のアイテム列が取られて実際のTableに追加される.

もちろん,全体を表示させるのにかかる時間という意味では長いまんまだから
全体を見渡すためにはやっぱり時間かかるけど,
でもユーザに対して素早く"とりあえず"(つまり最初の100個)を
見せられるかどうかは非常に重要.

lazyな初期化はGUIを快適にする効果的な工夫のひとつだよ.
まぁ,テーブル全体をeyeball searchするような使い方の場合は
一気にスクロールできないと面倒な事があるので,
そういう場合はカスタムウィジェットを書くしかないかも.

OS依存でいいなら,例えばWindowsならLVS_OWNERDATA使えば簡単だけど.
ソートしたい場合も死にそう。
そーっとしといて
>>246
ワラタ、ナゴムよ
>>246-247
オヤジなんだな。
Tableってよく使うコンポーネントだけど、それが遅いってのはなぁ。
サンプルのsort a table by columnを見たけど、確かにソートの場合
使い物にならないだろうな。

個人的に、このTableの問題が理由でSWTは使えないという判断を下すしかない。
他が良いだけに、残念だが。
>>249
残念ながら自分にはcustom widgetを作る技術がないから
SWTを使うことができない、ってこと?
>>250
おいおい、Tableって各OS固有のAPIへのすごく薄いラッパーでしかないから、
あれ以上軽負荷のものを作るのは辛いと思うよ。

>>249
SWTとSwingでどのくらい差があったのか教えて。
249ではないけど、 >>238 のを実行すると
SWT 17秒
Swing 0秒
だったよ。
>>250
そのようなカスタム作った時点で、naitive自分で呼ぶことになって
SWTの長所を殺す気がするが?

ちょと思ったんだけど、2次元配列をTableに渡せると速くできるような。
SWTが遅いんじゃなくて、たとえばウインドウズのリストビューが遅いんじゃないの?
他の環境で試してみたら?
ちなみに似た奴をVCで試すと、2秒くらいかなぁ。
>>251
アルゴリズムは改良の余地があるんじゃない?

>>238
なんで 1000 でわるのよ...。
Pentium4 2.2GHz Windows2000、Eclipse2.0.1(JDK1.4.1) 上で実行。

COUNT | 100 | 500 | 1000 | 5000 | 100000
-------+-----+-----+-----+-----+--------
SWT | 391 | 901 | 1532 | 7000 | 12488
Swing | 671 | 681 | 591 | 731 | 801

単位は ms ね。
Swing では 1000 が催促になっているけど、
測定誤差かもしれないし、HotSpot が効き始めているのかも。
SWT が遅いのは何だろね。
どんなしょぼい処理でも JNI を使っているとしたら
そのオーバーヘッドだろうね。
そうだとしたら IBM さんチューニングよろしく。
257256:02/09/29 02:11
すまん最後の COUNT は 10000 ね。
あとうまく表作れなくてスマソ
VCで試した場合2秒なら、確かにJNIの問題だろうね。
ValueObjectみたいにデータが渡せればいいのに。
ソートの問題もあるべ
swingよりVCの方が遅いのは,Win32の場合ウィンドウメッセージ経由で
アイテムを追加する影響かも.
SWTはさらにJNIのオーバヘッドがある.

SWTはネイティブで書くのと同じことをJavaからやるという方針で,
ウィンドウシステムのAPIコールを直接JNI経由で叩くから,
2次元配列をネイティブの向こう側で展開するというのは有り得ない.
データそのものをTableにコピーするというやり方をする限りは
これ以上は速くならんだろうね.

OWNERDATAみたいなのをサポートしてもらうのが一番いいんだけど……
各プラットフォーム版のVirtualTableをここにいるヤシで書く?(w
OS判別してどの実装を使うか動的に決定するということで.
本家では問題にならんのか?
>>261
ならんようだね.
Eclipse UI Team LeadのNick Edgar曰く,
http://dev.eclipse.org/newslists/news.eclipse.tools/msg35241.html
As with anything, this is a performance tradeoff. Swing needs more CPU when
scrolling around to show new items.
てことで,初期化にかかる時間よりもスクロールの速度を優先した,と.

そんなんこっちに選ばせてくれや,と思うが……
>>261
Tableへのデータ挿入オーパヘッドが問題になる状況って、
そんなになさそうだからねぇ。
SWTそのものをメジャーデビューさせるのならいずれは問題になるだろうけど、
eclipseの一部として使うなら問題なしとしてそのままかもね。
264デフォルトの名無しさん:02/09/29 03:31
TableColumnの色
Tableのセレクトされた時の色
を変更する方法はないですか?
>>264
TableCursorのソースを参考にしる.
266デフォルトの名無しさん:02/09/29 04:06
>>265
参考にしたがそんなソースではなかったような・・・
もう一度見てみます。

ところでSWTのAPI JavaDoc日本語化の計画はなし??一生英語?
>>266
お前が翻訳しろ!今なら名前が載るぞ
>>260
Windows版だけでもやろうかな。
http://www.eclipse.org/articles/Article-Writing%20Your%20Own%20Widget/Writing%20Your%20Own%20Widget.htm
に丁寧に解説してあるし。
やめとけ
お前の日本語は読めたもんじゃない
270デフォルトの名無しさん:02/09/30 03:34
>>268
是非お願いいたします!!

>>269
消えてくれ

ふーん、SWTでスピナつかえたんだぁ・・
>>270

> ふーん、SWTでスピナつかえたんだぁ・・

マジ? 教えて先生
>>271
268のURIを見ると載ってる
だけど、実装するのは自分でやれってことでしょ?

あと、OWNERDATAの話がでてるけど、
Win以外でもその機能って実装されてるの?
>>270
あれはスピナが使えることを示すサンプルじゃなくて,
単にプラットフォームネイティブのコントロールをどう叩くか
(つまりOS依存ならなんでも使える)って例だよ.

>>272
類似の機能はまともなシステムなら大抵は実装されてると思うが.
Motifがまともかどうかは知らんけど.
もしSWTオフィシャルで実現されることになれば,
無い環境ではSWT内部で実装しちゃうでしょ.Treeの例もあるし.
SWTのみ(Jface使わない)で,

・進捗ダイアログ(AnimatedProcess使用)を出しつつ裏で重い処理
・進捗ダイアログにつけたキャンセルボタン押下で重い処理中止

というありがちな処理を書きたいんですが,

・Display#asyncExec(Runnable r)

を使うんだろうなと検討をつけて(これってSwingUtilのinvokerLater相当?)
・進捗ダイアログ表示
・重い処理
をスレッドにして両方を asyncExec()でメインのUIスレッドから走らせる
ようにコーディングしても,進捗ダイアログのキャンセルボタンが
押せない…

教えてSWTのえらい人・゚・(ノД`)・゚・
275デフォルトの名無しさん:02/09/30 22:58
ここ見てるやつらに聞きたい、素朴な質問
EclipseをWin以外で使いたいやついるか!?

いなかったらもうネイティブ迷わずつかうぜ
そういうことなら挙手しておきます
277デフォルトの名無しさん:02/09/30 23:11
Macで使いたいかも
278デフォルトの名無しさん:02/10/01 00:28
Tableのスクロールを消す方法はないですかね?
>>274
計算スレッドは別にしなきゃだめだよ.独自のスレッド立てれ.
asyncExec/syncExecはUIスレッドにRunnableを投入するものだから,
UIスレッドで重い処理をやったらUIは止まって,当然キャンセルは押せない.
進捗ダイアログの表示はasyncExec/syncExecに放り込むか,
もともとのスレッドがUIスレッドならその場でやってもいい.

>>278
スクロールバーが必要なときにも,それを表示しない,ってこと?
ネイティブのコントロールのレベルで出してる上に,
それを制御するオプションはTableに無いようなので無理ぽ.
280274:02/10/01 07:53
>>279

ありがとうございます。やってみます。
そっかー考えてみればUIスレッドでやっちゃいけないよな…
考えなしの自分に反省しつつ感謝。
281278:02/10/01 20:56
>>279
や、やっぱり・・

あと、コンボボックスの選択数を変える事も無理でしょうか!?
>>281
説明能力なさ杉
質問を30文字に収めることに命かけてるの?
283274:02/10/02 22:28
>>279

別々なasyncExecを連続で2つ実行するとどうやってもNGでした。なので
asyncExecに入れる1スレッド内で別の生Threadを走らせることでOK
になりました。
別途試してみましたが、asyncExec()にループ or sleepするスレッド
を2つを同時に走らせることはできないみたいですね。
>>283
何がやりたいのかがわからんので微妙だけど,
いずれにしてもUIスレッドは1個しかないから.
async/syncExecは新たにUIスレッドを作るわけじゃないんよ.
285283:02/10/03 22:52
>>284

理解しました。Displayのソース見たら,完全に理解したわけじゃないけど
見えてきました。
286デフォルトの名無しさん:02/10/04 01:56
スレ違いですがWEB+DB PressのSWT紹介で掲載されていた
Google Web APIsみたいなの他にないですか??
287デフォルトの名無しさん:02/10/05 00:11
>>275
こうして移植性がなくなっていくのでした。
Swingマンセー!!
もともと移植性なんて誰も気にしてないと思うけど?
289デフォルトの名無しさん:02/10/05 00:29
もともと移植する必要がないからJAVAを使い始めると思うけど?
290デフォルトの名無しさん:02/10/05 00:36
SWTってSwing慣れた人には最高に使いにくいと思うがどうだろうか?
ネイティブ使う事に異論はないが、なぜこんなにもJavaっぽくない設計なのか・・
iアプリのほうがむしろJavaっぽい
>>290
もともとのウィンドウシステムの構成がJavaっぽくないから。
だがそれがいい......
292デフォルトの名無しさん:02/10/05 00:44
SWTってSwing慣れた人には最高に使いにくいと思うがどうだろうか?
ネイティブ使う事に異論はないが、なぜこんなにもJavaっぽくない設計なのか・・
C#のほうがむしろJavaっぽい
Windows Formsマンセー!・・・(´・ω・`)
>>293
このスレで言うと叩かれるよ。
俺もそこそこマンセーだけど。
295デフォルトの名無しさん:02/10/05 04:34
SWTで、各ファイルのアイコンを取得するにはどうしたらいいでしょうか?

Program p = Program.findProgram (".bmp");
ImageData data = p.getImageData ();
Image image = new Image (display, data);

で、拡張子ごとのアイコンは取れるのですが、
たまに、取れない拡張子があるし(自分の環境では.html .htmだめでした)
exeファイルやフォルダのアイコンを取りたいです。
>>292
HAGEDOU
29777:02/10/05 22:15
とりあえずsourceforge.jpにスペースだけ取ってみたけど,
eclipseのCVSで繋がらず早速頓挫……
http://monalipse.sourceforge.jp/

まだスクリーンショットしかない.
よさげです。
299デフォルトの名無しさん:02/10/05 22:37
はやく公開して〜ん!
大耳モナーは怠け者
>>297 とりあえず、CVSに入ったらしいのでチェックアウトさせてもらってます。
30277:02/10/05 23:53
>>301
はや! コミットの2分後に……

あとは何だ,zipで固めてリリースファイルとして置くのか.
303301:02/10/05 23:53
>>77 ところで、CPLって匿名でもいいんだっけか。ソースの要求があった
ときのために匿名はだめだよんってFAQにあった気がする。
そういや、私もsourceforge使おうか迷っているんだけど、site.xmlが
使える構成に出来るのかなぁ。できればinstall/update maneger
が使える形で配布したいよね。
30577:02/10/06 00:06
http://monalipse.sourceforge.jp/
初版リリース.
果てしなくスレ違いな気もするけど許して.

・使い方
展開してpluginsに入れる.
File-Newでwww.2ch.netプロジェクトを作る.
プロジェクトがログ置き場になる.
プロジェクトを作るとパースペクティブが開くので,あとは適当に.

・できること
スレを読む

・できないこと
スレを読む以外のほとんどあらゆる事

・動く環境
今のとこ表示にIEコンポーネントを使ってるため,Windowsのみ.
Pure Javaなスレビューアの可能性は考えて作ってあるけど,自分で作る気はあんまりなし.
306301:02/10/06 00:06
>>301
ランタイム・ワークベンチで試してみたけど、左側のビューをクリック
すると、NPE出ます。
!ENTRY org.eclipse.ui 4 2 10 05, 2002 23:58:01.297
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui".
!STACK 0
java.lang.NullPointerException
at monalipse.views.ThreadListView.selectionChanged(ThreadListView.java:172)
at org.eclipse.ui.internal.AbstractSelectionService$3.run(AbstractSelectionService.java:137)
at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:839)

あと、配布用zipファイルの生成だけど、build.properties手付かずだけど
手動生成するの? それなら`bin.includes = *.xml,*.jar,icons/*,about.html'
って入れておくことをおすすめします。そうすればplugin.xmlからクリック一つ
で生成できるから。
307301:02/10/06 00:07
ごめん、プロジェクト生成するのね。先走りすぎました...
30877:02/10/06 00:14
>>303
うっ.
* Can a Contributor remain anonymous?
No. Except for those who simply redistribute the Program, each Contributor must
identify itself as the originator of its Contribution in a way that later Recipients
will be able to readily see.
だね.

んー…… どこまで公開すればidentifyできると考えるんだろ.
メールアドレスは一応あるし,サイト立ち上げてるしで,
一応のidentifyには…… ならんかな?

早速プロジェクト存続の危機.
30977:02/10/06 00:26
>>305
iconsとか含んだ単独配布用のzipを作ってくれるの?
とりあえずbin.includes入れてみたけどできないし,
そもそもbin.includesを参照してないみたい.

自分でbuild.xmlに追加しようかと思ってたから,やってくれるなら楽できていいんだけど.

とりあえずupdate managerに対応させたいし,
ある程度完成したらJREとか全部入りのパッケージも作りたいな……
310301:02/10/06 00:30
>>77 心配なら適当に利用条件書いてオリジナルなライセンスでいいのでは?
で、動きました。ところどころでNPE出たりとかスレッドビューのとこで
1..50とか51...100のツリー開いても先頭の1とか51しか出ないとか動作は
怪しげですけど、めっちゃうけました。イイ!! あと、リリースファイルの
ページにファイルまだ現れて来てないですね。
311301:02/10/06 00:37
>>309 以前プラグインを作ったときは、build.propertiesに
source.for.jar = src/
source.bar.jar = var-src/
bin.includes = *.xml,*.jar,etc/*,icons/*,about.html
って書いておけば、
plugin.xmlの右クリック->プラグインJARの作成->zip.pluginを選択して「終了」
で新しくbuild.xmlを生成してくれた。で、次からはbuild.xmlからant動かすか
plugin.xmlから プラグインJARの作成 -> 終了 で配布用zipファイルの生成が可能って感じ。
31277:02/10/06 00:47
>>310
まぁ,大耳モナー的にはあれでidentifyしますたということで,あまり気にしないことに……
ツリー開いても先頭しか見えないってのは,うちの環境だと見ない動き.
よかったらバグトラッカに詳細きぼんぬ.

>>311
build.xmlを再生成したらできるようになたーよ.ありがd.
313デフォルトの名無しさん:02/10/06 23:20
??2chブラウザエラーが出て起動しない

UMLツール使用中はJavaコード補完がきかなくなるが・・

いずれも俺だけ?
>>313
同じく。

プロジェクト作って、パースペクティブ切り替わったとたんクラッシュした。

で、エラーログ。

java.lang.NoClassDefFoundError: javax/xml/transform/Source
at monalipse.server.giko.GikoServer.initialize(GikoServer.java:44)
at monalipse.server.BBSServerManager.getInstanceOf(BBSServerManager.java:120)
at monalipse.server.BBSServerManager.getInstanceOf(BBSServerManager.java:89)
at monalipse.views.BoardListView.createPartControl(BoardListView.java:81)
(以下略)


これはXalanを起動のクラスパスに追加しろということ??
315314:02/10/07 00:25
って、症状が根本的に違うね。
316301:02/10/07 00:44
>>314 それ、実行時のJREのバージョン、1.3使ってない?
31777:02/10/07 01:12
>>313
"起動しない"だけ言われても.
PDE RuntimeのError Logビューから例外の内容きぼん.

>>314
transformまわりはJAXP1.1.xなら実装されてるってわけじゃないのか.
Xercesにないのね.シリアライズとか便利なんだけど……
とりあえずjre1.4.xならOKてことで.
318301:02/10/07 01:31
>>77 今はじめてError Logビューの存在しったよ。なるほど、
Plugin.getLog().log()ってめんどくさい割に.metadata/.logに
吐き出されるだけでおいしくないなと思ってたんだけど、ちゃんと
専用のビューがあったのね。
319314:02/10/07 02:20
>>77
>>301


昨日たまたまJ2SDK1.4インストールしていたので、起動VM切り替えてみたら無事起動したよ。
サンクス。

ソース見たけど、java.util.regexとか使ってる時点で1.3では実行不可なのね・・・・
32077:02/10/07 02:29
>>318
お互いまだ把握し切れてないところがあるようで(w

>>319
transform使っちゃった件は意図してなかったんだけど,
regexはスレビューアでしか使ってないはず.
ここはIE依存でどうせWindowsでしか動かんから,1.4でいいかと思ってわざと.
eclipseにOROとか標準で入ってないみたいだし.
その他はOS X考えると1.3でも動くようにしときたいところ.
321デフォルトの名無しさん:02/10/07 23:21
2chビューワ
プロジェクトを作成すると
「パーツ2chを作成できませんでした」



左のウインドウに赤字で「このビューの作成中にエラーが発生しました。」と表示されています。

JDK1.4,1.3ともに同じ現象
WinXP
32277:02/10/07 23:46
>>321
メニューからWindow - Show View - Other... - PDE Runtime - Error Logビューに
すべてのエラーのログが登録されてるので,関係ありそうなスタックトレースを
ここかsourceforgeの方に貼り付けて.
323デフォルトの名無しさん:02/10/08 00:50
>>322
貼り付けときました(^^
32477:02/10/08 07:34
>>323
jre1.3で起動してるでしょ.
10個前の過去ログぐらい読んでほしいんだが.
32577:02/10/12 16:04
monalipseから書き込みテスト
32677:02/10/12 16:11
monalipse1.1.0リリースしたよ.
・書き込み
・html落ちログ読み
・dat落ちログ読み(要●)

書き込みはReset Perspectiveするか,Responseビューを開いてね.
●はPreferencesで設定.

漏れは2ch用ブラウザはmonalipseに乗り換えますた.
ブックマークがまだ無いけど,
エディタの状態が保存されるのでなんとか代用できる.
32777 ◆HLp.OhmimI :02/10/13 02:57
紛らわしいのでトリップ使うことにする.
monalipseで盛り上がってるところもうしわけないが
monalipse関係は別スレでやっていただきたい
>>328

このスレ自体が要不要論あったばかりなんだから,
ここで分割するのは時期尚早に一票
330295:02/10/13 12:34
>>295
これどなたか分かりませんか?
>>328-329
monalipse は使えるレベルにはなっているんだから、ソフトウェア板に
立てても良さそうな気はするけどね。
オレもソフトウェア板に移動希望。
ってかお願い。
ここで良い。
あれだけ2chブラウザがあるのに、わざわざmonalipse使うのは余程の物好きだけだろ
>>333
えーなんで?
ここは「Java 高速GUI SWT」のスレですよ。

「Delphi相談室その7」のスレがOpenJaneの話題ばっかりになったらいやでしょ?

でも、monalipse以外に話題がない予感。
monalipseは、ビックマーク機能と巡回機能が付いたら、ぜひ使いたいもな。
すくなくともeclipseスレと両方使ってやる話じゃないな。>>monalipse
sourceforgeのフォーラム使うってのもあるけどね。
ソフ板に立ててもいいんじゃない?

ただあたらしもの好きの厨が集まってくるかもしれないんで、
eclipseの使い方がわからないヤシはお断りでいいんじゃない?
2chブラウザだけが目当てなら他のやつでいいんだし。
339 ◆HLp.OhmimI :02/10/13 23:59
なんだか意見分かれれて,どうすれば……
まだ非eclipseユーザに使い方が理解されやすいような作りにはなってないので,
漏れとしては居候させてもらってひっそりやった方がやりやすいけど,
スレ違いというのも重々承知.うーん.

できれば,もちっと居させてくれると有難いんだが.

>>337
sourceforgeのフォーラムはmonalipseで読めないからなぁ,と言ってみる.
>>339
#monalipseでsouceforgeのフォーラム読めるようにしる、と(略
>>340
monalipseは(略
342デフォルトの名無しさん:02/10/16 01:40
monalipseはオープンソースにせんの!?
monalipse の話題は Eclipseスレに移って欲しいな。
こっちは SWTライブラリのスレ。向こうは Eclipse(開発)環境のスレ。
まぁ、併読している人がほとんどだろうけどさ。
monalipseスレをこの板で立てればいいんじゃないの?
ソフトウェア板にあるよりeclipse やこのスレと同じ言ったほうがいいでしょう。
クソスレは腐るほどあるのだから、monalipse用に一つスレが立ったところで
別に同というものでもないと思われ。
またJavaスレか、って言われるのがなんか悔しい
プログラム技術じゃないしな
マ板に立てるとか。
スレタイは
「monalipseで2chに書き込んでるヤシの数→」
とかで。
みんながものすごい勢いでmonalipseをデバッグするスレ...
sourceforgeに対してeclipseからCVS前提で、誰もバイナリ配布を使わないとか。
349 ◆HLp.OhmimI :02/10/17 06:52
やっぱ移るべき? >>347とか(・∀・)イイと思ったが,立てたら叩かれるだろうなw
とりあえずmonalipse1.2.0リリース報告.

スレビューアはスクラッチから書いたのでバグバグなはず.
StyledTextはdt/ddみたいなインデントが実現できないので使えなかった.
単独widgetとしても使えるので,ここだけはこのスレ向きのネタか.
ともかくIEの非同期制御を気にしなくてよくなって,ずいぶん楽にはなった.
スレ内検索はまだできず.

バージョンアップの度にログの互換性がなくなってるのは勘弁.
速度稼ぐためにバイナリにしてて,互換性とるのめんどくさい.
そのうち.datのインポート/エクスポートも必要かね?

その辺踏まえて,現状で速度的には使えなくもないってくらい?
他のをほとんど知らないからよくわからんけど……
eclipseは2.1M1だとPartの切り替えが最適化されてておすすめ.
遅いマシンで2.0.1だとPart切り替え時(スレ開くとか)に
メニューあたりがちらつくと思うのだけれど,これがなくなって速い.

"Abort"はいまだにまともに動いてない.

Windows以外でもjre1.4系なら動くはずだけど,試してはいない.

諸々報告よろしく.

>>342
CPLをオープンソースと考えるならば,オープンソース.
>>349
外部リンククリックでブラウザが開かない…
351 ◆HLp.OhmimI :02/10/17 08:28
>>350
OSは?
当方、環境はwin2k・jre1.4でつ
353 ◆HLp.OhmimI :02/10/17 10:37
>>352
こっちはXP+1.4.1+ねすけ||Operaで動いてる.
monalipse.server.giko.ThreadContentProviderの1550行付近がその処理だけど,
たとえば単体のSWTアプリで
Program.launch("http://www.2ch.net/");
って起動できる? 試してみてホスィ
>>353
それ起動できますた。
しかし外部リンクをクリックするとなぜかドラッグしたみたいになります

…ボタンを離してるのを検出できてないのかな?
355354とか:02/10/17 16:14
なんか色々プラグインを入れすぎたのが原因な気がしてきたので
一度きれいにしてみて、また症状出たら報告します。
356 ◆HLp.OhmimI :02/10/17 17:20
>>354
ああ,そっち方面の問題か……
今かなりクリック判定がシビアだから,なるべくカーソル動かさないでやってみて.
押した位置と離した位置が(ピクセルじゃなく)文字的に一緒でないと駄目.改善予定.
357 ◆HLp.OhmimI :02/10/18 05:07
monalipse1.2.1リリース.主に高速化.
eclipse側で入れてるのかと思ったBufferedInputStreamが
実は入ってなくて欝で氏にそうになった.
入れてそれなりに速くなったけど,もちょっと欲しいかも.
358デフォルトの名無しさん:02/10/19 13:39
このスレ盛り上がってるように見えて、実は monalipse にのっとられただけだな。
SWT自体の話題なんて全然ないし、このスレ死んだな…。
文句があれば話題を振れ。でなければ黙ってろ。
>>359
別に(SWTの)話題を振る必要はないんじゃねーの?
「関係ある話をしろ」というのと「関係ない話をするな」という別だろ。

開発者もさ、チヤホヤされて気持ちいいのは分かるけど、
行き先考えたほうがいいよ。荒れないうちにね。
>>360
まあまあ。
作者にしたらここは居心地いいだろ。読んでるやつはeclipseかSWTに興味があるか実際に
使ってる奴らなんだから。
ソフ板とかにスレ立てると厨も混じってくるし、そういうやつらに限って、更新が少し滞ると
大騒ぎするし、注文も多いし、その機能の実装予定はないとか言うと急に罵詈雑言の荒らしだしな。
楽しく開発するにはつらいかも。

だからマ板に立てたら?と提案したんだけど。
「仕事中にmonalipseで2ch見てるヤシの数→」
じゃだめ? (w
ソフ板のマンセーは後が怖いからね。
363 ◆HLp.OhmimI :02/10/20 04:26
>>361
いやぁ,立ててくれたら使わせてもらうけどw
でなきゃsourceforgeのForumかな…… かなり使いにくいが.
とりあえずこのスレにはリリース報告は書かないことにするよ.
364デフォルトの名無しさん:02/10/20 04:51
別いいじゃねーかよ
今のところSWTの話も別にないだろ、
結局AWTの時代に退化したってことでいいの?SWT
>>365
swingが適切な進化だったと?
>>366
コンセプトは悪くなかったよ。まぁ、Javaの大半がそれなんだけど。
しかし、マシンパワーが十分になりつつある今、それもありかと。
>>367
swingとネイティブアプリの間の使用感の差異は
マシンパワーで解決できるような問題じゃあないでしょ。
互換性やAPI設計は良くても、使い勝手が悪ければ価値は低い。
それを不適切というのだと思うが。
>>368
使用感っても慣れの問題だからねぇ。
swtでWindowのドッキングってできるの?
>>370
ドッキングってなぁに?
セクース
>>372
で き る
374デフォルトの名無しさん:02/10/22 22:58
また2chブラウザネタですまぬが
プロジェクトを最初に作成しなきゃいけないのは、仕方ないのかな?
最初からパースフェクティブ開くだけで動くようには出来ない?
いや、自分でプラグインつくるときの参考にと思いまして・・
375デフォルトの名無しさん:02/10/22 22:59
あの、最近Javaはじめたばかりなので素朴な質問なんですけど
SWTってAWTと比べて何が良いの?
>>375
好みの問題。
とりあえず、両方触ってみてね。
>>377
古いなぁ。。。
379 ◆HLp.OhmimI :02/10/23 00:27
>>374
定義済みパースペクティブなりビューなりが表示されたときに,
プロジェクトが見つからなければ
自動的に新規プロジェクトウィザードを表示することはできる.
ちなみにビューを開いたときの方がいいと思う.
定義済みパースペクティブ使わなくてもそれを構成するビューは開けるから.

ウィザードを経ずに勝手にプロジェクトを生成することもできるけど,
あまりにもお行儀が悪すぎるのでお話にならない.
名前とか自由にできないってことだし.

ちなみにプラグインネタだからeclipseスレ向きかもね.
>>377
ガイシュツ
381デフォルトの名無しさん:02/10/23 22:19
>>375

こ、こ、好みの問題なんですか?マジで?
失礼しました・・・
だって仕事じゃないんでそ。
だったら好みの問題でしかないじゃん。
単発スレ立てるなボケ
>>383
1にかわって詫びる。スマン。
3851:02/10/24 08:26
>>383
1を詐称して詫びる。スマン。
http://pc3.2ch.net/test/read.cgi/software/1035539002/

…立ってますがどうしましょ。
387 ◆HLp.OhmimI :02/10/25 21:32
>>386
いきなりソフ板の荒波か……
あまり積極的には顔出さないと思うのでよろしこ……
何でこのスレでmonalipseの話やってるの?
389 ◆HLp.OhmimI :02/10/26 01:17
>>388
>>75が発端だから.
スレ違いなので作者からは話を振らんことにしたけど,
今みたいに振られれば反応するよ.
>>389
sage進行でマターリ逝くとヨシ!!
売名糞野郎
hahaha!
392デフォルトの名無しさん:02/10/31 01:37
SWTアプリ出てこんね、SWTはEclipseプラグイン専用ライブラリということで

☆☆☆☆☆☆☆☆☆☆☆終了☆☆☆☆☆☆☆☆☆☆☆☆
>>392
そんなにSWTに期待してんのか? (w
SUNがいる限りSWTに未来は有りません。
395デフォルトの名無しさん:02/11/01 01:19
SUNが糞からSWTが生まれました
MSがJavaやってたらSWTなど生まれてもこなかった
>>395
無理して日本語使わんでええよ。
MSがJavaやってたらJ2EEは普及してないだろうなあ(藁
>>397
つぅかASP
399デフォルトの名無しさん:02/11/01 13:21
OleAutomation で ActiveX コントロールを使えますが
ウィンドウを全く作らずに使うことはできないんですかね
マック版SWTはありますか?
>>400
Eclipse が MacOS もサポートしてたからあるんじゃねー?
402399:02/11/03 13:45
技術的なネタを振ってみたがこのスレももう終わりか、、。
>>402
スレ進行 2/3 で弱気になるな(w
あと、自分でも調べてみろ。海外なんかには結構情報あること多いぞ。
>>402
隧ヲ縺励※縺ソ縺ヲ蝣ア蜻翫″縺シ繧薙〓?シ?
貍上l縺ッOLE縺ッ繧医¥繧上°繧峨s縺代←?シ?
visible縺ォ縺励↑縺?縺ァ菴ソ縺?縺薙→縺ッ縺ァ縺阪k縺九b縺励l縺ェ縺??シ?
螟壼??繧ウ繝ウ繝医Ο繝シ繝ォ縺ォ繧医k?シ後→縺?縺?諢溘§縺�縺ィ縺ッ諤昴≧縺代←?シ?
繧ソ繧ケ繧ッ繝舌?シ縺ォ蜃コ縺ェ縺?蠖「縺ァ逕サ髱「螟悶↓繧ヲ繧」繝ウ繝峨え蜃コ縺励※
visible縺ォ縺吶l縺ー蛻カ髯舌?ッ縺ェ縺?縺九↑窶ヲ窶ヲ

縺?縺」縺晢シ後b縺」縺ィ縺オ縺、繝シ縺ョ繝悶Μ繝?繧ク菴ソ縺」縺溘⊇縺?縺檎エ�逶エ縺」縺ス縺?縺鯉シ?
405404:02/11/03 14:47
思いっきり化けた・・・ スマソ
リトライ.

>>402
試してみて報告きぼんぬ.
漏れはOLEはよくわからんけど,
visibleにしないで使うことはできるかもしれない.
多分コントロールによる,という感じだとは思うけど.
タスクバーに出ない形で画面外にウィンドウ出して
visibleにすれば制限はないかな……

いっそ,もっとふつーのブリッジ使ったほうが素直っぽいが.
visible にしない状態でなら使えるんですが、
タスクバーに出ちゃうんですよ、これが。
OleAutomation 使うために OleControlSite、
OleControlSite 使うために OleFrame、
OleFrame 使うために Shell が必要なんで
そのへんが関係してるんでしょうか。
Shell 作るときにタスクバーに出さないようにできれば
何とかなるんでしょうけど。
その辺はWindowsの常套手段としては
・invisibleな親ウィンドウを出す
 (invisibleなのでタスクバーに出ない)
・その子として,visibleな子ウィンドウを出す
 (子ウィンドウなのでタスクバーに出ない)
ってな感じじゃなかった?

で,ウィンドウ自体は見えちゃうわけだけど,
画面外に飛ばせばわからない.
409399:02/11/04 11:34
いろいろ調べてみたところ、まだやってみてはないけど
OleControlSite#doVerb() の引数をしかるべきものにしたら
ウィンドウを出さずに何とかなりそう。

どうでもいいけど SWT の javadoc ってほとんど情報が
書いてないところが多くて困るね。
>>409
あ,たしかに,見た感じできそう.
ただ,多分,ウィンドウ出さないってことは
レイアウト確定しないって事だし,
コントロールによっては何らかの制限はありそうな予感.

ドキュメントはねぇ,まぁオープンソース系としては
かなり整備されてるほうだとは思うけど……
でも結局頻繁にソース読む事になるね.

とはいえWindowsでもMotifでも自分の知ってる
プラットフォームが1個でもあれば
ソースはその流儀で読めるから,比較的読みやすくはある.
SendMessageとかしてるところまでステップ実行できるし.
411 :02/11/06 00:46
SWT - *軽快Java GUIコンポーネント「SWT」で作る Webサービスクライアント
http://www.mobster.jp/wiki/index.jsp?pid=SWT
412デフォルトの名無しさん:02/11/09 21:29
SWTで、table以外にSwingのもんより遅くなるもんはないんかえ
413デフォルトの名無しさん:02/11/09 23:49
GoogleAPIでなんか面白いことできないかな。
今の制約じゃだめか。
>>413
SWTと何の関係が・・・?SOAPスレでも立てて言うならともかく・・・。
>>414

>>411の記事の同じページに書いてある。
SWTと何の関係が?(笑
>>413-415
クライアントサイドJavaのプラットフォームとしてのSWT、ってことだろう。

俺もTableさえなんとかなれば、SWTでクライアントアプリ作ってもいいと思う。
>>417
おまえこっちにも貼ってんのかよ
悲鳴サイト注意報
419デフォルトの名無しさん:02/11/10 03:02
>>413
SWTと関係ないだろうけど、どこで言えばいいのか判らん
これと似たようなプロキシクラスAPIを配布してるようなサイト
・・・(WEBサービスをしてるサイトっていうの?)
を他に何か知ってる?興味あるんだけど
420デフォルトの名無しさん:02/11/10 10:46
>>419
アマゾンは?
421デフォルトの名無しさん:02/11/10 10:56
>>419
ちと違う気もするが web サービスってなら ttp://www.xmethods.net なんかどう
>>419
まずぐぐれ。いくつかリンク集にたどり着ける。
http://www.google.com/search?hl=ja&ie=UTF-8&oe=UTF-8&q=SOAP+Web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
で、前もこのスレで質問して無視されたんだからもうちょっと
話の振り方かんがえたほうがいいんじゃねーの?
423デフォルトの名無しさん:02/11/11 01:18
>>421-422
ありがとう、探ってみます
素人目には既に.NETのサービスの方がかなり普及しているように見えるのですが・・てスレ違いなので去ります
424デフォルトの名無しさん:02/11/13 02:19
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/dev.html

SWT for Qt/E will be included in the next release of the IBM
WebSphere Micro Environment and WebSphere Customer Environment
products. We are currently working on determining the feasibility
of releasing SWT for Qt/E to the Eclipse project.
って書いてあったから、この前出たWebSphereDeviceDeveloper Ver.5
の中をのぞいてみたらちゃんと libswt-qt-2104.so なんてのがあった。
x86向けのしかなかったけど、Linuxザウルス向けJ9とか出ると
面白そうだななんて思ってみたり。
Qt版ってもう出来てるの?KDEで使いたいんだけど.
>>425 QtがGPLとQPLのダブルライセンスだから
公開できないみたい。上のライブラリもバイナリだけでソースは
見当たらなかった。WSDDは商用アプリだし直接TrollTechから
別にライセンスとってんじゃないかな。ちなみにダウンロードは
こちら。
Free download of WebSphere Studio Device Developer 5.0 is now available!
http://www-3.ibm.com/software/pervasive/products/wsdd/download/
age.
>Mac is back in town. Eclipse on Mac OS X has returned to the regular
>builds. Many of the changes to SWT originally planned for M3 are still in
>progress and will be released as soon as they are ready.
>
>Improved GTK widgets. SWT now makes use of up-to-date native GTK 2 widgets
>for tables, trees, and text.
>
>DBCS support on Motif. SWT now supports double-byte characters on Motif
>window systems.
JETって金払うの?
JETなきゃコンパイルできねーじゃん
>>428
Windows環境でフルネイティブな実行ファイル作りたいならそうだね。
JET 買うしかない。ただ、クライアントJavaが遅いといわれている原因の
大部分は Swing によるものだから、SWT にするだけで十分速くなるよ。
だから全体をネイティブコードにする必要はないんじゃないかな?
>>429
じゃあAWTにしても速くなるんかいな。
1.4 の Swing は早くなったと言われてるけど、実際のところどうなのよ?
ハードウェアアクセラレーションの効果のほどはどうなのよ?
432 :02/11/20 16:13
なにもネイティブコンパイルせずとも、

JRE込みで配布して、配布したそのJREを利用してJavaアプリを起動するWin32アプリ
をくっつける形じゃだめかな。JREを別途インストールする必要はないし、環境も変更
しないし、JREのそういった形での配布も認められていると思う。

難点はサイズが大きくなることだが。
>>431
そんぐらい自分で試せ。
>>431
体感できるくらいは速くなったよ。
>>434
GC のタイミングも安定してる。
ループぶん回してもカクカクしない。
436デフォルトの名無しさん:02/11/20 21:05
>>432
Eclipseはまさにそういう配布が想定されているよ。インストールフォルダにJREがあると
そっちがネイティブのラウンチャから呼ばれる。
だからIBMの製品版だと自分でJREを入れる必要がない。
437デフォルトの名無しさん:02/11/21 02:15
どーでもいいんだけど、どうせNativeAPI使うん
だったら,はじめからWindowsAPIだけでガリガリ
書いたほうが手っ取り早くないか?
あえてJava使う意味あんの?
438 :02/11/21 02:40
もちろんあるよ。適材適所だよ。
439デフォルトの名無しさん:02/11/21 15:30
SWTは、まだ過渡期だと思うが、過去のJavaのGUIフレームワークを考えると、
今後の主流となるアプローチかもね。
FreeLicenseで使えるクロスプラットフォームGUIとしては、最強かも。
GTK+はビジネス向けには不安だし、Qtは金がかかる(笑)
AWTは過去の遺物だしSwingはLook&Feelがモッサリしすぎ。
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> SWT
441デフォルトの名無しさん:02/11/21 17:18
>>440
スレ違いだが、Rubyのネイチブコムパイラって無いの?
>>437 一部インラインアセンブラが必要なプログラムを
お前は全部アセンブリで組むのか?
443デフォルトの名無しさん:02/11/22 21:36
本家のmailing listでvirtual tableに関して興味深い話が。

<1 second to display a table with over 150000 rows.

だって。
キタ━━━━(゚∀゚)━━━━!!!!!!
445 ◆HLp.OhmimI :02/11/23 07:40
monalipseはやっぱりTableの遅さがネック.
なので,VirtualTableを作ってみた.
https://sourceforge.jp/projects/monalipse/
動かし方はリリースメモ参照.

カラムヘッダだけはTableを利用して,
テーブル本体はフルにカスタムドローする.
とりあえず表示とユーザ操作だけはできるけど,
未実装機能多数でまだ実用には足りない.

多少トリッキーな実装になってるのだけれど,
うちはWindows環境しかないので,他の環境での動作を確認できない.
誰かMotifとかAquaとかで確認してくれると嬉しいのだけれど,どうだろ.
表示が崩れないかってのもあるけど,見た目自体がWindowsのそれを
模倣した形になっているので,他の環境との相性もちょっと心配.

安定してきたらmonalipseで使ってみようかと.
とはいえ,本家MLのLargeTableが完成したらお払い箱だな……
ハカ━━━━(゚∀゚)━━━━!!!!!!
>431
1.4.1xにした途端、漏れのlibretto/WinXPでは動かなくなった。
まあ、既知の問題みたいね。
こういうのが多発しているんじゃないの?
448431:02/11/23 23:23
>>447
むぅ。そんな事がありましたか。
結局中途半端な Swing よりは SWT 使ったほうがいいのかもしれませんな。
自分でコードを書いてみた感じでも十分な速度を得られたし。
Swing は 1.3 系までしか触れてないけど、ストレスたまるだけだったし。
普通バージョンの付け方からすると
1.4.0は安定版で1.4.1は安定版じゃないと思うんだがどうか
1.4.0はバグだらけだったyo
1.3は開発版かよ
なんとかの一つ覚えって奴だな
まだ1.4は現場では使われてない気がするけど・・・どうでしょ
1回書いたらどこでも動くんだろ?
現場で使われてようと使われていまいと気にすんなよ。
バリバリ1.4使ってまふ
>>447
もしRadeonだったら最新のドライバにすれば直るとおもうよ。
1.4.0は3月でサポート切れです
457デフォルトの名無しさん:02/11/26 00:08
とてつもなく基本的な質問になってしまうのですが、、

子の widget を削除する Composite のメソッドっでどこにあるんですか。
(java.awt.Component#remove(Component c) にあたるメソッド)

>>457
dispose すりゃその widget は消えるよ。
統合しました。


【統合】Java開発環境スレ

  http://pc3.2ch.net/test/read.cgi/tech/1038118138/

>455
ATI Mobility Radeonだけれど、東芝のサイトでダウンロードできる最新のものだけれどダメだね。
ATIのサイトからはダウンロード出来ないしね。

swing系のアプリを使うと100%の確率であぼ〜ん。
461デフォルトの名無しさん:02/11/26 22:08
ある Widget のスクリーン上の絶対座標を取得したいです。

どうすればいいですか。
org.eclipse.swt.widgets.Control#toDisplay()
>>460
たぶん、東芝のサイトのは古い。
464デフォルトの名無しさん:02/11/27 20:44
最近、JAVAの勉強を始めたのですが
背景用のPNGファイルと透過するPNGファイルを
合成して表示するという処理で詰まってしまっています。

それぞれラベルにsetImageしても2つ並んで表示してしまうのですが
こういう時には他のクラスを使うのでしょうか?
それとも、Shell、Layout、Image、Labelとかを正しく設定すればできる
ことなのでしょうか?
swing? awt?
>>464
そういうときはLabelを2つ使うよりカスタムウィジェット作ったほうがいい.
http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html
のSnippetsが参考になるだろう.

もしくはImageDataかImageの段階で重ねてしまう手もあるが.
どっちがいいかはデータ構造によりけり.
467464:02/11/27 21:30
>>466
ありがとうございます。
勉強がてら、よく読んで色々とやってみます。



464じゃないけど、初心者質問です。

Shell(中身はデフォルトのGridLayout)にツールバー・リスト・カスタムウィジェットを
この順で貼り付けた後に、ツールバーだけを非表示にするには?
swingのようにsetVisible(false)とするだけではツールバー分のスペースが
空いたままになってしまいます。ShellのレイアウトをFormLayoutにする、などしか
ないのでしょうか?
>>468
toolbar.setVisible(false);
shell.layout(true);
しる.

というか,やっぱりこれもSnippets見りゃわかると思うが.
470デフォルトの名無しさん:02/11/27 23:00
SWTはパフォーマンスいいけど、作るのは苦痛・・・なのは俺だけ?
C#, VB よりはいいよ
472468:02/11/27 23:09
>>469
素早いレスありがとうございます
473468:02/11/28 00:18
…出来ませんでした…
GridDataの指定が影響する?
>>473
んじゃsetVisibleじゃなくてdisposeしなきゃだめぽ.
disposeしたくない場合,reparentableならどっかの
Compositeに退避させておけるかも.reparentableとは限らないが.
475468:02/11/28 00:42
素直にdispose()してみます。
476464:02/11/29 18:29
おかげさまで透過画像の合成をSWTを使ってできました。

重ねて表示するのは>>466の英文とソースを見て色々試してみたのですが、英文が理解し切れていない
部分もあって、コンポジット2つ作ってsetImageしたラベルを貼り付ける格好になりました。
「Labelを2つ使うよりカスタムウィジェット作ったほうがいい」とのことなのでラベルを貼り付けないで
処理する方法はは引き続き調べているところです。

上記の僕がやった方法だと画像が透過部分がグレーになった矩形で合成されてしまいます。
コンポジットやラベルにSWT.TRANSPARENCY_ALPHAとかを指定しても、上手いことできませんでした。
(このへんの指定とかで、下側の画像を透過してくれるような方法がみつけられませんでした。
もしかして、Bacgroundカラーしか透過できないのでは…とも思ったりしたのですが、どうなんでしょう)

そこのところはGCで下になっている画像の部分を切り出しImage化して、上になっている画像、
マスク、切り出した下側の画像のそれぞれのImageDataからbyte[]型のデータを
とってきて合成し、もとの上になってるラベルのImage書き換えるようにしました。

なんか、むりやりって感じもしますが、いい勉強になりました。
どうも、ありがとうございますた。
>>476
これまた英文になっちゃうけど,
http://www.eclipse.org/articles/Article-Writing%20Your%20Own%20Widget/Writing%20Your%20Own%20Widget.htm
これ見るのもいいかも.
PictureLabelの改造でいけるんでは.

SWT.TRANSPARENCY_ALPHAはウィジェットスタイルじゃないでしょ.
スタイルに関しては各クラスのJavaDocに載ってる.
Labelに関しては,背景透過の制御はできないっぽいけど.

で,どう解決したのか今ひとつわからないのだけど,
もしかして既にLabelを重ねる必要がなくなってたりしない?
サイズが違うにしてもなんにしても,1つのImageにまとめることができてるなら,
それを表示する1つのLabelで用が済んでるんじゃ.
478464:02/11/29 21:12
>>477
情報ありがとうございます。
PictureLabelというのも試してみます。ざっと読んでみた感じでは
たしかに使えそうな予感。まずは、読むのをがんばるです。
直接ImageDataのbyte[]を書き換えるよりは良さ気です。

それと言われてみれば確かLabel1つで済みそうです。
これも練習がてら、やってみます。


ちなみにXXXXXが透過画像のImageDataだとして、8ビットPNGでは以下のように
書いても透過マスクデータが取得できないんですが、そういうものなんでしょうか?
Image mask = new Image(display,XXXXX.getTransparencyMask());
(GIFだとできるんで、読み込んでいるPNGファイルの方が悪いのかも)
保守
483デフォルトの名無しさん:02/12/11 16:06
>>24 のeclipsecolorerをDLしてみたんだけど、
これってどうやって実行するの?
eclipseのplug-inなのにplugin.xmlがzipに無いし…。
bat叩いても、実行出来ない…。

誰かDLして動作確認した人っています?
484デフォルトの名無しさん:02/12/11 16:31
追記です。
test_designer.batを実行すると
Exception in thread "main" java.lang.NullPointerException
at org.eclipse.jdt.core.JavaCore.getDefaultOptions(JavaCore.java:1151)
at org.eclipse.jdt.core.dom.AST.<init>(AST.java:76)
at ru.nlmk.swt.designer.TSWTDesigner.run(TSWTDesigner.java:254)
at ru.nlmk.swt.designer.TSWTDesigner.main(TSWTDesigner.java:451)
ってエラーが出るんだけど、回避方法が分かりません・・・。
485483:02/12/11 18:46
自己レスです。
jdtcore.jarのバージョンが悪かったみたいです。
旧バージョンのものと置き換えたら上手く実行されました。
486デフォルトの名無しさん:02/12/27 09:10
http://www.eclipse.org/documentation/html/plugins/org.eclipse.platform.doc.isv/doc/reference/api/index.html
から読めるオンラインドキュメントをまとめてダウンロードしたいんですが、
どこかにまとまって置いてないですかね?

最終手段はwgetか…
SWTのTextで質問させてください。

通常、Endキーでキャレットが最後に移動すると思いますが、
これを無効にすることってできますか?
KeyListenerでもいじれば
インターネッツを食い尽くしてやる。
490デフォルトの名無しさん:02/12/29 11:50
>>488
KeyListenerでは無効にはできないのでは?

ソース見てたんだけど、
SWTってデフォルトキー操作の変更でできなさそうじゃない?
>>486 なぜまず自分のパソコンのなかのオンラインマニュアルを探さないのか...
>>491
感謝

\plugins\org.eclipse.platform.doc.isv_2.0.0\doc.zip
の中にありました。
>>490
Textに以下のようなKeyListenerをつければ?ってことね

KeyEventからキーコードをとってきてEndのときは無視、
それ以外のときはしかるべき動作をする
494デフォルトの名無しさん:02/12/31 14:01
>>493
違う。
SWTはデフォルトのキー操作を変える方法は持ち合わせていないと思う
ということ。
340 名前:デフォルトの名無しさん :02/12/31 15:23
Java厨も哀れだよな。
100% Pure Java(プ の思想に反するSWTで無理矢理盛り上がってるんだもんな。
そんなのだったら初めからMSのWFC使ってれば良かったじゃん。
WFC って Liunx でも動く?
>>495
まったくだ。SWTってWFCとなんら変わらんね。
498デフォルトの名無しさん:03/01/02 17:04
WFCがクロスプラットフォームだったら、そっちが盛り上がってたかもね。
>>498
クロスプラットフォームかつ、ライセンスがオープンなら盛り上がってたかもな。
>>499
> ライセンスがオープン
ライセンスがオープン?
>>500
ロイヤリティフリーで自由に使える。
502IP記録実験:03/01/08 22:15
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
>>584
グッジョッブ
僕の肛門のAPも記録されそうです
>208 名前:すきやきっち@似非学者 ◆a2T922RdeA

お前が2ちゃんねる型の掲示板群をつくれ。

そこで実験しろ。
ニュー速を閉鎖しないのは、やはりニュー速住人が他に行く事で2chから人がゆっくり離れていってしまう事を警戒してるのでは
ないだろうかと物凄い偏った邪推してみるテスト。
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
おぺら6.05からテスト
書けてるよ〜
ほら!

うんこしないよ
うんこしないよ
うんこしないよ

ほら!
>>22 内容証明が届いた日からの利子もつけて、賠償汁!って判決なんだから、
内容証明による削除要請があり次第、片っ端から消せ!ってことでしょ?
誤った内容である
>内容証明による削除要請があり次第、片っ端から消しなさい。
という部分。及び、それを根拠とするデンパな判決という結論。
ネタ。
他に裁判中なのは何ですか??
何年も前から予想されていたとおり、
民事での兵糧責めにひろゆきは屈したわけだが、
しかし、さっさとヲチ板とかはトマト導入せんと、
今度は、いずれは名誉毀損の幇助で刑務所ってことになるぞ。(藁
みんなここにある。
http://www.p-shoei.com/normal.html
今からqbに爆撃対策入れます。
問題があったらクラシックラウンジのスレへどうぞ。
って、、誰かアドレス知ってたら張ってください(汗)<書けないスレ
セキュリティ設定が甘い無線LANは結構使える
>>365
荒しについての対応は?
t
自由と無秩序のはき違え・・・か。

ただ、差別の非差別による差別やタブーに付いて、一般人が気軽に話せる
場所がなくなるのは勿体無い気もするなぁ。

あめざー行けばいいよ。
電撃タンも行ったみたいだし。

# まだいるかは知らん
SwingとSWT比べてどっちが簡単に覚えられそうでしょう?
523デフォルトの名無しさん:03/01/11 06:08
age
524デフォルトの名無しさん:03/01/11 07:12
◆◇◆◇◆最新情報◆◇◆◇◆
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
          ,,-'  _,,-''"      "''- ,,_   ̄"''-,,__  ''--,,__
           ,,-''"  ,, --''"ニ_―- _  ''-,,_    ゞ    "-
          て   / ,,-",-''i|   ̄|i''-、  ヾ   {
         ("  ./   i {;;;;;;;i|    .|i;;;;;;) ,ノ    ii
     ,,       (    l, `'-i|    |i;;-'     ,,-'"   _,,-"
     "'-,,     `-,,,,-'--''::: ̄:::::::''ニ;;-==,_____ '"  _,,--''"
         ̄"''-- _-'':::::" ̄::::::::::::::::;;;;----;;;;;;;;::::`::"''::---,,_  __,,-''"
        ._,,-'ニ-''ニ--''" ̄.i| ̄   |i-----,, ̄`"''-;;::''-`-,,
      ,,-''::::二-''"     .--i|     .|i          "- ;;:::`、
    ._,-"::::/    ̄"''---  i|     |i            ヽ::::i
    .(:::::{:(i(____         i|     .|i          _,,-':/:::}
     `''-,_ヽ:::::''- ,,__,,,, _______i|      .|i--__,,----..--'''":::::ノ,,-'
       "--;;;;;;;;;;;;;;;;;""''--;;i|      .|i二;;;;;::---;;;;;;;::--''"~
               ̄ ̄"..i|       .|i
                 .i|        |i
                 i|        |i
                 .i|          .|i
 キタ━━━━━━━━━ i|   (゚∀゚)   .|i ━━━━━━━━━━!!!
                .i|           |i
               .i|      ,,-、 、  |i
               i|      ノ::::i:::トiヽ、_.|i
           _,,  i|/"ヽ/:iヽ!::::::::ノ:::::Λ::::ヽ|i__n、ト、
     ,,/^ヽ,-''":::i/::::::::/:::::|i/;;;;;;/::::;;;;ノ⌒ヽノ::::::::::::ヽ,_Λ
     ;;;;;;:::::;;;;;;;;;;:::::;;;;;;;;:::/;;;;;;:::::::::;;;;;;/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::;;:;;;;:::ヽ
さようなら
【社会】2ちゃんねるが全板でIP記録を開始 3年に渡る"匿名掲示板"の歴史に幕…

アフォか・・・。
批判要望に逝け
じゃあ何で名前の欄の星色が違うの?
氏ね
 実は、無責任な書き込みがなくなると、2chは自動的に消滅するとか。
Yahoo! JAPAN コンピュータニュース - 1月9日(木)19時43分
 2chでIP記録実験が始まる
  http://headlines.yahoo.co.jp/hl?a=20030109-00000021-zdn-sci

ZDNet News - 2chでIP記録実験が始まる
 http://www.zdnet.co.jp/news/0301/09/njbt_07.html

 ネット掲示板「2ちゃんねる」管理人のひろゆき氏は1月9日、掲示板に書き込んだ
ユーザーのIPを記録する実験を始めたことを明らかにした。
 ひろゆき氏が発行するメールマガジンで明らかにした。各掲示板の最下部の日付が
「2ちゃんねる20030107」以降のものはアクセスログの記録を実験しているという。
 ひろゆき氏は2002年末、都内の動物病院が同掲示板への発言の削除を求めた裁判の
控訴審で敗訴したのを受け、IP記録の開始を示唆していた。(ZDNet)
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
>ID:A+3kp3mQ

判ったからネレw
DDTアドレスは、何日保存されるんだろか。
というかかえってテレビとかで報道すると
愉快犯、模倣犯で被害が増える罠。
2ちゃんねるは放置プレイなわけです。
ひろゆき自体掲示板が多すぎて把握できてないだろ。
結局はまたループ・・・
そういうことじゃなくて
ブラウザで見ようとするとhttp://server.maido3.com/に飛ばされる状態が
あと何分かかるのかってことだと思う  は
540山崎渉:03/01/13 18:44
(^^)
ということはなにか固定のほとんどは地方出身だということか。
542山崎渉:03/01/16 03:16
(^^)
543デフォルトの名無しさん:03/01/16 20:00
初心者スレからの転載です

J2SE SDK 1.4.1-01 で Excelsior JET 3.0 Personal を使いたく
インストールしたのですが Could not determine the compiler と表示され
Excelsior を起動することが出来ませんでした
解決方法をご存じの方いらっしゃいますか

環境
Windows 2000 Pro (latest updated)
J2SE SDK 1.4.1-01
Excelsior JET 3.0 Personal
>>543
マルチは氏んで。
皆は答えないで。
>>543
マルチすみません。引っ込みます。
初心者スレのほうには、あらかじめ断りをいれてから
こちらに書き込みした次第です
大変申し訳ありませんが
あらためて、どなたか Excelsior JET でこの解決方法をご存じの方
いらっしゃいましたらご教授お願いします
Excelsior JETとSWTはなにか関係があるのでしょうか?
向こうのスレッドのほうが適切なように思えます。
SWTつかったJavaアプリケーションがEXEにコンパイル出来ます
549デフォルトの名無しさん:03/01/19 19:43
Excelsior JETの質問を取り止めます
よそのスレで聞いてみます
>>549
つーか、開発元へといあわせろよ
551山崎渉:03/01/23 20:09
(^^)
552山崎渉:03/01/23 21:56
(^^)
553デフォルトの名無しさん:03/01/24 20:32
awtのpaint(Graphics g)メソッドはswtではどう書けばいいのでしょうか?
org.eclipse.swt.graphics.GCにdrawString、drawArcなどのメソッドがあるのは
分かったのですが、そのメソッドをどう使えば描画できるのかが分かりません。
GC gc=new GC(Drawable drawable);
gc.drawString("hoge");
とすればいいのかと思ったのですが、GCコンストラクタのDrawableの部分には
何を入れればいいのでしょうか?
>>553
描画する対象のウィンドウ。
555553:03/01/25 00:32
>>554
レスありがとうございます。
「描画する対象のウィンドウ」とはShellのことでしょうか?
Display display = new Display();
Shell shell = new Shell(display);
GC gc = new GC(shell);
gc.drawString("hoge",100,100);
と入力して、コンパイルは通ったのですが
何も表示されません。
557553:03/01/25 02:21
>>556
ありがとうございました。ここ読んで解決しました。
shell.open();した後に書かなければいけなかったんですね。
保守
  _, ._
( ゚ Д゚)
ねたぎれ?
ハゲシクサガットル(;´Д`)
保守
sageても保守なの?
yes
保守
566デフォルトの名無しさん:03/02/26 02:53
_
567デフォルトの名無しさん:03/02/26 16:16
JavaWorld特集age
なんかWFCとJDirectの激しく低速化バージョンみたいだな
569デフォルトの名無しさん:03/03/06 11:07
SWTって何て読むの?
普通に「えすだぶりゅてぃー」でいいの?
>>6
ナイトライダーのはキットが正しい。
Knight Industries Two Thousand、略してK.I.T.T.である。
571デフォルトの名無しさん:03/03/07 21:44

http://page5.auctions.yahoo.co.jp/jp/auction/e22909695

ヤフオク出品したよ
1円スタートでマジお勧め!

「10日でおぼえるJSP/サーブレット入門教室」翔泳社

あげ荒らし氏ね
573sage:03/03/08 09:58
今発売中のJava World 4月号にSWTの記事がちょっと載ってますね。
ttp://www.idg.co.jp/jw/index.html
>>568
ついでに微妙に低速化バージョンが.NETだな

WFCはものとしては非常に良く出来てた
あくまでWin限定の話だが。
SwingとSWTの両方で同じアプリをつくるには
どうしたらよいのでしょうか?
両方で実現可能な部分は
コードを統一しないとつらいので
考えているのは
必要な部分だけ
1. 一段階抽象して両方で実装する
2. 一方のAPI(?)を他方で実装
3. コンバータをつくる
おかしいとこがあるかもしれません すいません
どうなんでしょう?
576デフォルトの名無しさん:03/03/21 18:04
>>575

マズは何より、同じアプリを作る必要性について議論を重ねていただきたいんですけども。

作りたければ、Model だけ共有して、あとは別々に作りますな。
UI部分でも、ちょっとしたリスナーのための Interface くらいは共有できるかもしれないけど
後は別物なんだから別々に作ろう。あとは試行錯誤しつつ楽しんでください
577デフォルトの名無しさん:03/03/21 18:26
>575
まずはjava.beans.XMLEncoderとDecoderのSWT版をつくるとか
現実問題として、
Java2が動くのに、SWTの用意されていないプラットホームがどれだけあるのかと。
>>578
どういうこと?
>>579
Java2SEのVMがWin/Mac/Linux/SunOSで動くけど、それぞれSWTが用意されてるってことじゃねぇの?
それより、プラットホームとか言ってる香具師って、FormEditorとかもホームエヂターって言ったりするんだろうか。
581デフォルトの名無しさん:03/03/22 05:42
SWTも今ひとつなんだよなぁ
結局.NETのGUIライブラリが最強というのは紛れもない事実だろ
悔しいけど
Windowsべったりと割り切れば、なんでもやりやすいからね。
俺の場合、結局なんだかんだいってWindowsのGUIに慣れてるので
com.sun.java.swing.plaf.windows.WindowsLookAndFeel
が一番イイ
自分で作ったアプリはすべてコレに変えてる

それにしても、SWTはSwingよりも動作軽いのはわかるけど
AWTと比べるとどうなんだろ?
別に無理してSwing使わずにAWTだけで済むことも多いしさ

>>580
ああ、なるほど。「Java2入れたらSWTも入る」と読み違えてた。アリがd
ま、こういうの見ると川俣あたりが何年も前から言ってた
99% Pure Javaって考え方が正解だったのかなって思うよ
そりゃ.NETと変わらんやん
gcjによるawtの実装は
いつごろになるのだろう?
>>586
変わらんというかそれこそが.NETの軸なんじゃ…
>>586
Javaには選択肢がある。100%Pureにしてがまんするか、ネイティブを使うか。
「99% Pure Java」って言葉は、かわまたんの言いたいことを忠実にはあらわしてないから、ちゃんと本人の文読むように。
http://eclipse.org/articles/Article-Understanding%20Layouts/Understanding%20Layouts.htm

あのさ、↑のレイアウトに関する記事を翻訳してるんだけど、いる人いますか?
591デフォルトの名無しさん:03/03/23 16:11
保守age
ホシュカキコはageる必要ないけどな。
593デフォルトの名無しさん:03/03/23 20:22
>>590
ホスイ、ホスイヨオ〜
>>590
いらねーよプ
んなこと聞いてる間にさっさとアップしる!
>>590 TOEIC 300点の漏れでも理解できますが
597590:03/03/23 23:55
まーもうちょいまってちょ。今GridLayoutのところがおわって、自作のレイアウトを書くところを訳してる。
grabの訳がムズイ、、、感覚ではわかっているものの言葉にするとなるとすんげー難しくなるな、、
600デフォルトの名無しさん:03/03/27 20:55
SwingのJInternalFrameみたいなMDIは出来んのか?
保守
ダブルバッファリングの仕方知っている方
いらっしゃいましたら 教えていただけませんか?
よろしくお願いします
保守
604デフォルトの名無しさん:03/04/03 22:57
Tableの中にComboを表示するにはどうしたらいいですか?
2つの Text があって,両方に 水平スクロールバーをつけたとき,
どちらかのスクロールバーの移動と連動してもう一つのTextの
それも移動する(表示もスクロールする)ようにするのは,
どうやったらいいでしょう??
606デフォルトの名無しさん:03/04/06 13:00
>>604
Tableの子になるのはTableItem。そしてそのTableItemにComboを載せるという
話になると思うが、TableItemは普通のテキストしか載せられないんだよな。。
おそらくカスタムウィジェット書くしかないと思われ。

>>605
表示をスクロールするにはTextのappendを使えばいいから、それを使って何とか
するか、getHorizontalBarメソッドで取得したスクロールバーをなんとかすれ
ばいいんでないかの。
607606:03/04/06 13:03
>>606
>Textのappendを使えばいいから

これは縦方向のスクロールだった。すまん。
やっぱりgetHorizontalBarかな。
>>600
MDIはクロスプラットフォームじゃない.
TreeみたいにMDIが存在しないシステムで
エミュレーションすることも現実的に不可能.だから出来ない.

>>602
Image使う.

>>604
同スレの検索ぐらいしる.
http://pc2.2ch.net/test/read.cgi/tech/1032448424/227n

>>605
HorizontalなScrollBarにSelectionListener突っ込んで自分で連携.
J2SE 1.4.2 で swing の ルックアンドフィールに XP が追加されたようですが、
これを指定できるのは WindowsXP だけですか?
Windows 2000 とかで XP や Mac のルックアンドフィール使いたいです。。
610606:03/04/06 13:36
>>608
おお、俺も検索すべきだったな。ありがd
611デフォルトの名無しさん:03/04/06 13:43
TabItemに複数のウィジェット載せるにはホントにCanvas使うしかないの?
>>611
ホントにって,誰がそんな妙なこと言ったんだ.
613611:03/04/06 14:12
>>609
基本的にそのOSネイティブっぽい外観かmotifしか使えない。
Swingが強化されたからもうSWTはいらねーよ。(ゲラ
616デフォルトの名無しさん:03/04/06 14:24

  ∧_∧
 ( ´∀`)< ぬるぽ
>>615
つーかswing重いじゃん。
>>617
JDK1.4.2 beta試してみれ
SWTも所詮WindowsFormsより重いがな。(ワラ
>>613
Composite

>>617
放置しる
SWTつかったら100% Pure Javaじゃなくなるの?
SWTってJCPに提出しないの?
SWTってSunに嫌がらせされて死滅しちゃうの?
624デフォルトの名無しさん:03/04/06 16:03
>>623
その可能性が高いから素直にSwingやった方がいいよ
SunといいMozillaといい、GUIをゼロから再発明をする理由はなんざましょ。
おかげでどっちも泥沼だし。
>>625
再発明なんてしてないと思うが。
ただ単に開発してるだけ。
627デフォルトの名無しさん:03/04/07 22:08
SWTとは、直接関係ないけど、

統合環境みたいに、自動インデント機能を自作のエディタにつけたいときは、どうすればよいんでしょうか?

また、統合環境みたいにポップアップで単語を補完する機能をつけるには、どうすればよいんですか?

秀丸エディタなどは、何言語で書かれているのですか?あのような高度な機能は、Javaでは無理なのですか?
>>627
>統合環境みたいに、自動インデント機能を自作のエディタにつけたいときは、どうすればよいんでしょうか?
自動インデントは改行されたときに直前のインデントを新しい行の行頭に挿入すればいーだけでしょ。

>秀丸エディタなどは、何言語で書かれているのですか?あのような高度な機能は、Javaでは無理なのですか?
高度な機能ってのが何を指してるか知らんけど、
秀丸にある機能の大半はJavaでも実装可能でしょ。
秀丸みたいに軽快に動作するかは知らんけど。
>>627
>また、統合環境みたいにポップアップで単語を補完する機能をつけるには、どうすればよいんですか?
候補表示による入力支援は 候補の列挙が出来れば、あとは選択させるだけ。
候補の列挙は候補リストの生成やら入力場所による候補の選定が含まれる。
言語仕様の完全な把握と、コンパイラを作成するのと似たような知識や技量が必要になると思われ。
630秀丸買いてぇ:03/04/07 22:53
ありがとう>>628,629

やはり、難しそうだね。あたしでは、むりだわ〜。
631あぼーん:03/04/07 22:54
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!こんなのを発見シマスタ!
      /       /    |
     / /|    /      \  http://www.saitama.gasuki.com/yamazaki/
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
632あぼーん:03/04/07 23:01
          ┌┬┬┬┐
    ―――┴┴┴┴┴―――――、
.  . /  ̄ ̄ ̄//. ̄ ̄| || ̄ ̄ ̄||| ̄ ||    __________
  ./    ∧// ∧ ∧| ||      |||   ||  /
 [/____(゚_//[ ].゚Д゚,,) ||___|||   || <  こんなのが有りますた
. ||_. *  _|_| ̄ ̄ ∪|.|.       |ヽ.__||  \__________
. lO|o―o|O゜.|二二 |.|    救済病院 ||
 .| ∈口∋ ̄_l__l⌒l_|___|_l⌒l._||
   ̄ ̄`ー' ̄   `ー'  `ー'   `ー'
http://saitama.gasuki.com/2ch/
633aaaa:03/04/07 23:03
634金正日:03/04/07 23:11
   ,rn                 
  r「l l h.                / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | 、. !j                | 
  ゝ .f         _      |  
  |  |       ,r'⌒  ⌒ヽ、.  │  http://saitama.gasuki.com/hangul/
  ,」  L_     f ,,r' ̄ ̄ヾ. ヽ. │   こんなのあったニダ
 ヾー‐' |     ゞ‐=H:=‐fー)r、)  | 
  |   じ、     ゙iー'・・ー' i.トソ   | 
  \    \.     l ; r==i; ,; |'  .人_ 
   \   ノリ^ー->==__,..-‐ヘ___
     \  ノ ハヽ  |_/oヽ__/     /\
      \  /    /        /  |.  
        y'    /o     O  ,l    |
こいつらどうにかしてくれ。
636627:03/04/09 22:56
627ですが、秀丸エディタみたいなのを作りたいの続きです。

628さんの記述に『言語使用の完全な把握とコンパイラを作成するのに似たような技量が
必要と思われる』とかいてあります。

私の実力は、1年半Javaをやってきて、会社などでは、一応1通りプログラムが
組めるぐらいに実力がなりました。

628さんのいうような技術を得るには、どのあたりを集中的に勉強すればよいのでしょうか?
また、本の名前など、具体的に挙げてもらえるとうれしいです。

JavaCCあたりで簡単な言語処理系でも作ってみたら?
638627:03/04/09 23:32
JavaCCがわからん。だれかおしえてくれ。 
>>627
そんな態度では一生わかるようにはならないだろうな
>>638
まずはgoogleに聞け
641デフォルトの名無しさん:03/04/10 01:07
Decorations で、
・リサイズ不可
・クローズ不可
・移動不可
・最大化可
・最小化可
を実現したいのですが、どうしたらできるんですか?

スタイルに SWT.MAX | SWT.MIN を指定した時点で
移動・クローズが強制的に可能になってしまうようなんですが…
642638:03/04/10 13:42
どうもありがとう>>637,639,640

JavaCCがどういうものかは、大体分かりました。こんな事ができるとは、びっくりしています。

これって、アセンブラとかの知識は要りますか?

私は、CPUがどのように動いているかなどは、多少理解しています。C言語も『独習C』で
基礎的なことは学びました。アセンブラはぜんぜん知りません。この程度の僕でも
理解できるような代物でしょうか?

よろしくお願いします。
>>642
ざっくりJavaCCを見てみたけど、アッセンブラ方面の知識より
文字列処理の知識がいるかな。
lexとかyaccとか触った事はないのん?
と、なんとなくスレ違いな気がしてきたから後はコッチでどうぞ。

『コンパイラ・スクリプトエンジン』 相談室 2
http://pc2.2ch.net/test/read.cgi/tech/1021136715/
645642:03/04/10 15:33
ありがとう>>643>>644
lexとかyacc触った事があるというよりも、聴いたこともない。。。

私は、業務でやるような、サーブレットとかEJBのかじり位しか、今までやっていないんで。。
でも、秀丸みたいのも、作ってみたいなと最近ちょっと思うようになって。。
だいぶ、知識がつきました。ありがとうございます。

644さんの紹介してくれたスレに移動します。ありがとう。
646デフォルトの名無しさん:03/04/11 01:24
SWT使って商用ソフト作った時って、どうやって配布するんですか?
swt.jar自体はCPLの規約でソース公開しなきゃいかんのですよね?
自分の作ったとこは隠すのOKでも。
647デフォルトの名無しさん:03/04/11 10:53

      ,〜((((((((〜〜、
    ( _(((((((((_ )
    |/ ~^^\)/^^~ヽ| _
     |  _ 《 _  |
     (|-(_//_)-(_//_)-|)    / やっぱもろでしょ
     |   厶、    |    <
     \ |||||||||||| /   \  http://www.media-0.com/www/dvd01/index2.htm
       \_______/ \
       /    \
    ⊂ )   ノ  つ
       (_⌒ヽ
        ノノ `J
http://www-6.ibm.com/jp/developerworks/opensource/030328/j_os-ecgui1.html
これを読んでSWTとjFaceの勉強をしようと思ったんだけど
pluginsorg.eclipse.runtime_2.1.0runtime.jar
このファイルだけがみつからない…みんなある?

無いから気にしないで進めてたらTreeViewerの最初のサンプルで
java.lang.NoClassDefFoundError: org/eclipse/core/internal/boot/DelegatingURLClassLoader
at org.eclipse.core.runtime.Platform.run(Platform.java:413)
at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:1271)
at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:320)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:303)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:289)
at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:729)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:801)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:721)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:238)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:991)
at Explorer.createContents(Explorer.java:19)
at org.eclipse.jface.window.Window.create(Window.java:302)
at org.eclipse.jface.window.Window.open(Window.java:552)
at Explorer.main(Explorer.java:27)
Exception in thread "main"
というエラーがプログラムを実行してすぐにおきて死亡

誰か問題ありそうなところわかる人いますか?
>>648
設定を見直せ
プラグインIDは
org.eclipse.runtimeじゃなくて、org.eclipse.core.runtime。
あと、コピー&ペーストするときはちゃんと見直すこと。パスセパレータ
抜けてるぞ。
651648:03/04/13 23:20
>>649さん
 何度設定を見直しても何処を直せばいいのかわかりませんでした(^^;
C:\eclipse-2.1.0\plugins\org.eclipse.jface_2.1.0\jface.jar
C:\eclipse-2.1.0\plugins\org.eclipse.swt.win32_2.1.0\ws\win32\swt.jar
C:\eclipse-2.1.0\plugins\org.eclipse.ui.workbench_2.1.0\workbench.jar
C:\eclipse-2.1.0\plugins\org.eclipse.core.runtime_2.1.0\runtime.jar  
の4つはeclipseのビルドパスに追加されています。
他に気をつける場所はないですか?

>>650さん
 すいません見落としていました。
 ご指摘ありがとうござました 以後気をつけます。

TreeViewのsetInputを実行しなければ問題なく動くのでそこらへんに
何か問題があると思っているのですが…
652649:03/04/13 23:30
>>651
今頃ですまんが、まだ2.1をDLしてる途中。
ミラーでも重いんだよね。

クラス見つからないって怒られてるんだから設定見直すか、
オープンソースなんだからソース追うか。どこまで動いてるかは調べられる。
653648:03/04/13 23:42
>>649さん
import org.eclipse.core.internal.boot.DelegatingURLClassLoader;(無いと怒られてるクラス)
をしようとした所、コードインサート機能ではinternalまでしか表示されなかった
ので別のjarファイルがいると思い外部jarの追加画面とにらめっこしてました。
 結果 org.eclipse.core.boot_2.1.0\boot.jarを追加する事でちゃんと実行されました。

 649さん 650さんアドバイスありがとうございました。
org.eclipse.swt.custom.StyledText
を使って、ハイパーリンクの抽出・埋め込みを実現したいのですが、
カーソルの変更やクリックの検出をするにはどういう手順がいいでしょうか?

手順1:
1) パーズ時に、ハイパーリンクの文字列が現れる offset を覚えておく
2) MouseListener, MouseMoveListener を作って、StyledText のメソッド
 int getOffsetAtLocation(Point point)
 を使い、xy 座標から offset を求め、処理をするかどうか判断

このように実装しようと考えていますが、ちょっと面倒です。
他に良い方法はないでしょうか?
655654:03/04/14 09:59
ふぅむ・・もう少し自分で調べてみましたが、>654 にある手順でないと
実現しようがないみたいです。
その代わり、StyleRange に offset を持たせて、カーソルの変更や
クリックの検出などは、StyledText のメソッド
StyleRange getStyleRangeAtOffset(int offset)
を使って、そのスタイルの違いから判断させることにしました。
>>655
StyleRangeそのものから判断するのは不自然だし,
表示スタイルが変わったときなど,後々面倒なことになる可能性がある.
LinkedStyleRangeみたいなサブクラスを作るか,
もっと汎用的に独自のスタイル情報を持てるAdaptableStyleRangeを
作るのがいいかも知らんね.
657654,655:03/04/14 14:57
>>656
レスありがとうございますにゃ。
おっしゃる通り LinkedStyleRange みたいなクラスを作って実装しました。
というのも、大量のテキストに一度にスタイルを指定して StyledText に
レンダリングさせようとすると、ものすごく時間がかかることが判明したからです。

ですので、StyledText をスクロールさせるたびに徐々にスタイルを
適用する、Lazy なレンダリングをさせることにしたので、
結局 LinkedStyleRange のようなクラスが必要でした。

#あと、なぜ SWT.WRAP を指定してワードラップをさせると、
#StyledText#setText() などに異常に時間がかかるんでしょうかね…。

Linked〜 は想像がつきますが、AdaptableStyleRange というのは
どんな働きをするんでしょうか? よろしかったらご教授ください。
>>657
>#あと、なぜ SWT.WRAP を指定してワードラップをさせると、

多分視覚的な改行位置の計算が大変なんじゃないかと.

>AdaptableStyleRange というのは

eclipseのIAdaptableとかがそうだけど,
AdaptableStyleRange a = ...;
ILink link = (ILink)a.getAdapter(ILink.class);
if(link != null)
    link.hoge();
みたいな.

Adapterパターンのちょっと変則型かな?
ILinkを相手であることがはっきりするというのと,
ILink以外にも独自スタイルがある場合に
継承関係がごちゃごちゃしないですむというのがご利益,だと思う.

今回みたいな単純なケースではやりすぎかも.
659657:03/04/14 15:53
>>658

どうもありがとうございました。勉強になりました。
日頃から、小さな実装であっても本質を見出そうと抽象化を試みるのは
大切な練習になると思います。

いつもそうしてないとデザパタとか忘れそうですし。
まぁ二度と使わないようなソースコードにも、つい厳密な OO の洗礼を
施したくなっちゃって時間かけたけど、でもやっぱり二度と使わなかった、
というのもままありますけどね(笑)
…まぁ二度と使わなくても、パターンの使い方は自分の中に累積されるから
将来それを再利用する場合もあるか・・。
661山崎渉:03/04/17 15:27
(^^)
662山崎渉:03/04/20 04:31
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
663デフォルトの名無しさん:03/04/20 18:23
ダメだ。
メモリ食いすぎ。
Javadoc手抜き過ぎ。SWTクラスのstatic finalの説明なんか無い奴もあるし。
レイアウトもウィジェットのスタイルも、指定できる種類がSwingに比べて少なすぎ。
今は256MBくらい消費しないとメモリ食い過ぎとは言わないよな。
そうでもない
〜7MB 激軽
〜10MB 軽い
〜12MB 中堅
〜20MB 重い
それより上 糞重い
メモリの食い方と重い軽いはちとち
重い軽いはメモリの食い方だろ。
むしゃむしゃ
スレ違いだが重い軽いは人間様が判断するべきもの。

メモリ食わなくても人間様の感触として重いのなら重いし、
いくらメモリ食っても人間様の感触で重くなきゃ重くなく、
そこでメモリの実使用量などただの数値でしかない。
人間様の快適のほうが無限に重要。

スレ違いsage。
671デフォルトの名無しさん:03/04/23 11:34
ちょっと前にWidgetの継承についての話が出てたけど、蒸し返してもいい?

おいらもJavaでのGUIはSwingしか経験がないんだけど、
Widgetを継承させずに作っていくやりかたが良く分からない。

例えばファイルマネージャみたいなのを作ってて、フォルダツリーを表示させたいとき、
Treeを継承したFolderTreeクラスを作って、getSelectionFile()みたいなメソッドを追加して、
選択されたフォルダをFileオブジェクトとして取れるようにしたりしたい。

でなければ、Treeを使う側のクラスに、
選択されたTreeItemからFileを作成する処理を持たないといけないので、
だんだんと厨なVBのソースみたくなってくる。
個々のWidgetの振る舞いの責任を、全て使う側が持ったがため、
肥大化したソースが出来てく感じ。

>>230が言ってた「リスナによる拡張」がキーになるのかとも思うけど、
上記の例で言えばどういう風に設計すればいいのでせうか?
長文すんません。
>>671
getSelectionFile()みたいなやり方すると,FolderTreeに依存するわけだ.
そーゆーのはよろしくないだろう,というのが一つの考え方.
(たとえば後々Tableに変更するかもしれないでしょう.
もちろんTreeは継承不可というのもSWTの場合は理由だけど)

>>230で書いたのは純粋にWidgetレベルの話だけど,
今回のは一段上の構造を含む話だと思う.
話としては2つ含まれてて,選択情報を得る方法と,
選択情報からディレクトリ等のアプリ固有のデータを得る方法.

選択情報を得る方法に関しては,
例えばJFaceの場合,選択を管理するフレームワークがあって,
ディレクトリツリーを表示するモジュールは
そのフレームワークに対して選択情報を適宜提供する.
で,選択に反応したいモジュールはそのフレームワークに対して
選択リスナを登録して,随時選択情報を受け取る.
SWT直接叩く場合もこんな風にすれば,
選択の提供側と消費側の依存関係が排除できる.

(つづく)
アプリ固有のデータを得る方法に関しては,
JFace使うとObjectで取れるので,提供側と消費側に合意があれば
キャストするとか,そういう話になる.
SWT直接叩くなら,選択情報を提供するときに,
あらかじめFileにしてから提供するとか.

具体的にはTreeにSelectionListener登録しといて,
通知が着たらFileに変換して他のモジュールに再通知してやる
FolderViewみたいなものをTree継承しないで作る.
FolderViewにgetSelectionFile()を作ってもいいし.

もちろん他にもいろいろ方法はあるだろうけど,
ひとつのやり方としてはこんな感じだと思う.


ところでswingでやるとしたらFolderTreeみたいなのは使わず,
FolderTreeSelectionModelみたいなのを作るのも手.
WidgetをFolder専用にするんじゃなくて,モデル側でというやり方.


長文スマソ
674671:03/04/23 14:07
>>672
すばやいレスさんくす。疑問は氷解しますた。
Widgetとの間に、橋渡しを行うクラスを導入して、結合を疎にするということですか。
で、その橋渡しをリスナを通じて行うと。

Swingでの場合に〜Modelを導入するのは初めて知ったけど、
今APIdoc見たらSwingにListModelってのがあって、少し調べてみますた。

実はSWTのサンプルのFileViewerのソースは見てたんだけど、
「Widget継承させればもっと簡単に分かりやすくなるのに」としか思ってなかった。
でも、今見てみると新たな発見がありそうなので、読み直してみます。

>>672さん、ありがとうございました。
>>672-673
院生さんですか?

それはともかく、俺は継承しまくってます。。。
ISA関係になるやつは継承するようにしてるんですがまずいですかねぇ。やきもき
>>675
院生じゃないよ.

ところでJavadoc見ると
IMPORTANT: This class is not intended to be subclassed.
と書いてある通り,SWTでTreeとか継承するのはよろしくない.
swingなら別に,好みの問題だと思うけど.
>>676
そうですか。どうも。
J2SE1.4.2beta入れてSwingでブラウザ作り始めてるんですけど、好みの問題とのことで安心しました。
SWTはgcjでちゃんと動かせるようになったら使おうと思ってます。

ちなみに論文では,と.を使うので院生さんかなと思ったのです。
#Emacsの話だけど俺はtex-modeだけは (setq its-hira-comma "," its-hira-period ".") してるので。


うぉおぉお、全然まとまりのないゴミレスですいません。。
>>677
まぁどっちにしても,実績のあるコテハンでもなし,
漏れなんかの発言に惑わされるこたないと思う.

",."は昔からだなー.中学時分からかも.
俺は思いっきり FolderTree みたいなクラス使っちゃってる(笑)
とりあえず面倒くさかったから・・。
でも面白そうだから後々 Model や Provider で作りたいと思ってます。
複数のスレッドがTCPの通信内容をStyledTextに書き込むアプリを作ってるですが、
各スレッドが直接StyledText#append()するとSWTExceptionが出るので、
Display#asyncExec()の引数にappend()するスレッドを渡して書かせようとしてます。
が、何故かStyledTextに表示されない場合があります。

渡したスレッドのrun()の中でSystem.out.println()するとちゃんと標準出力にはでるので、
実行されてないわけではなく、本当にStyledTextに書いてくれてないだけのようです。
どなたかこの辺の事情通な方、教えてください。
681680:03/04/30 12:12
すまそ。あげ忘れますた。
age厨しね
683680:03/04/30 13:43
すんません。sage進行だとは知りませんでした。お許しを。<_o_>
>>680
渡すのはスレッドじゃなくてRunnableね.

で,そういう症状は聞いたことないし,
そんな単純な問題がいまさら残ってるとも思えないので,
多分おまいさんのコードに問題がある.

非同期にappendするために渡したデータを
append前に書き換えちゃってないか?
asyncExecじゃなくsyncExecにするとどうだ?

コードの別の場所でテキストの置き換えや削除をしてないか?
そのコードが何らかの理由で実行されてないか?

まずはappendしてるとこでブレークしてSWTの中まで
ステップ実行してみるとか.
そうやって覗いてる間は再現しないかもだけど.
685680:03/04/30 16:39
>>684
あう・・・。コードですか・・・。
メソッドの引数がfinalで、なおかつ直後のSystem.out.print()では表示されるので、
データが書き換わってることは無いと思うのですが・・・。

void appendLog(final String text, final Color color) {  // Colorはそのうち色をつけようと思って
  shell.getDisplay().asyncExec(new Runnable() {
    public void run() {
      logText.append(text);   // こっちは時々NG
      System.out.print(text);  // こっちはOK
    }
  });
}

ちなみに、asyncExec()、syncExec()両方ともダメでした。
で、SWTの中までステップ実行してみようと思ったら、
「ソースがねぇよ」って画面が現れただす・・・。
環境整えてから試して、再度結果報告させてもらいます。
さんきゅうでした。
>>685
それならtextが書き換わってるってことはないね.

ステップインはswt.jarにソースアタッチしないと.
plugins\org.eclipse.platform.win32.source_2.1.0\src\org.eclipse.swt.win32_2.1.0\ws\win32\swtsrc.zip
とかね.

まぁ,"時々NG"を捕まえるのは大変だろけど.

あとはappendの前後でlogText.getText()をprintln()してみると,どーだろうね.
687680:03/05/02 15:49
すんません。>>680の件ですが、デバッグでの実行時はもとより、
普通に実行させても再現できなくなりました。
何度も複数のスレッドから大量にStyledTextに書き込ませて、
一件ずつログを追って確認してみたのですが、全て表示されてました。
ここに至って原因は「勘違い」であると断定しました。

>>684様をはじめ、考えてくださった方々、どうも申し訳ありませんですた。
おかしかったのは、DisplayでもasyncExec()でもStyledTextなく私の頭でした。
すみません、質問させてくらさい。

SWTのTableクラスを利用してウィンドウにテーブルを張っつけてます。
テーブルヘッダを作成する為に下記のようなコードを書きました。
TableColumn col = new TableColumn(table, SWT.LEFT);
col.setText("hoge");

で、一度作成したテーブルヘッダを動的に削除する方法が分かりません。
ご存知の方が居ましたらアドバイス宜しくお願いします。
689デフォルトの名無しさん:03/05/07 00:51
SWTスレ見つけたのでここで質問しようかと思います。

SWT始めてみますた。
eclipse内でSWTアプリ作ってますが、swt-win32-2133.dllを認識してくれまへん。
システム環境変数PATHで通してるはずなんですけど・・・・・。

java.lang.UnsatisfiedLinkError: no swt-win32-2133 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1403)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:832)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:108)
at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:46)
at org.eclipse.swt.widgets.Display.internal_new_GC(Display.java:1291)
at org.eclipse.swt.graphics.Device.init(Device.java:547)
at org.eclipse.swt.widgets.Display.init(Display.java:1310)
at org.eclipse.swt.graphics.Device.<init>(Device.java:96)
at org.eclipse.swt.widgets.Display.<init>(Display.java:291)
at org.eclipse.swt.widgets.Display.<init>(Display.java:287)
at com.sat.sample.HelloSWT.main(HelloSWT.java:21)
Exception in thread "main"

てぃなみに、swt.jarはプロジェクトのビルドパスに変数追加してまふ。
何故swt-win32-2133 が見えないのでしょうか?

-Djava.library.path=ほげほげでswt-*.dllがあるフォルダにパス通す。

なども試してみますた。
>>688
>>458

>>689
コマンドプロンプトから実際のコマンド行をコピペしたら何かわかるかも.
どっちにしてもSWTとは関係ないJNIのレベルの話だかが.

gcjって使ってる人います?
http://pc2.2ch.net/test/read.cgi/tech/1046627795/50-51
だけど、同じ症状かもね。
あ、全然違うね。すまそ。
-Djava.library.path=dllへのパス
してみれば?
693デフォルトの名無しさん:03/05/07 07:55
>>692
だからそれは試したって書いてあるだろ?
>>690

ありがとーございます。
table.getColumns()で取得したTableColumn[] に対して
dispose()したら上手く行きました。

感謝感謝っす。
monalipse
696デフォルトの名無しさん:03/05/17 00:19
eclipseつかって、SWTを使いとりあえず、WindowAPIを使った画面出そうと思っているのですが、
うまくいきません。
swt.jar などの設定もきちんと設定を行っているので、コード上で、エラーらしき個所は指示されません。

しかし実行をすると以下のようなエラーが出ます。
java.lang.UnsatisfiedLinkError: no swt-win32-2052 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1410)
at java.lang.Runtime.loadLibrary0(Runtime.java:772)
at java.lang.System.loadLibrary(System.java:832)
こんな感じでズラズラと・・・
くだらない質問なんだと思うので、もし、ここでの質問が不適当でしたら、どこで質問して言いか教えて頂けないでしょうか?

よろしくお願いします。
697デフォルトの名無しさん:03/05/17 00:34
>ウィザードリーオンライン開発中〜
http://game3.2ch.net/mmominor/dat/1052667275.dat
エラーくらい自分で見方を調べろよ。

> java.lang.UnsatisfiedLinkError: no swt-win32-2052 in java.library.path

java.library.path で指定されているディレクトリに
swt-win32-2052.dll がないというエラーなんで

1. swt-win32-2052.dll を java.library.path で指定されたディレクトリに置く
2. swt-win32-2052.dll があるディレクトリを java.library.path に指定する

のどちらかで対処してください。
699デフォルトの名無しさん:03/05/17 01:12
>>698
system32に放り込め。確実に逝ける。
>>699

>696は、忘れたころにPC換えて、また同じエラーで悩むと思われ。
701デフォルトの名無しさん:03/05/17 01:36
>>698
>>699
>>700
ありがとうございます。swt-win32-2052.dll はコンパイル後実行する時に、必要と書いてあったのは覚えていたんですが、
よく考えたら、ビルドした時点で実行してるんですよね。

くだらない質問に答えていただいてありがとうございます。
702デフォルトの名無しさん:03/05/17 01:40
>>701
あんたの思い込みが正しいとしたら、

な ん の た め の ダ イ ナ ミ ッ ク リ ン ク かと小一時間。
ところでところで、>>696はどんなWindows APIを使おうとしてるの?
今のところIEコンポーネントOLEを呼び出すのしか例を見た事無いから、
できればどんな感じでAPIを呼び出してるのか教えてちょ
704SWT厨房:03/05/18 01:50
http://download2.eclipse.org/downloads/drops/R-2.1-200303272130/index.php
いつの間にか(一月前からみたいだけど)、eclipse公式で、
SWT単体でダウンロードできる様になってたよ。
705デフォルトの名無しさん:03/05/22 22:31
706デフォルトの名無しさん:03/05/22 22:45
SWT関連技術
ClientGUIもJavaが制覇「もう誰にも止められない」
http://girlcom.ghostsp.com/swttop.html
707デフォルトの名無しさん:03/05/23 02:29
WizOnline開発中!プログラマ緊急募集(C,Java)
http://219.96.231.242/wizonline/
2chスレ
http://game3.2ch.net/mmominor/dat/1053536167.dat




708デファルトの名無しさん:03/05/24 20:19
「キー入力したら画面を切り替える」
っていうのをやりたいんですが、うまくいきません。
KeyListener#keyPressed()の中で、
前の画面のCompositeをdisposeして、
新しいCompositeを作成ってしてるんですが、
新しい画面でイベントが拾えなくなります。
(CompoisteはShellの子の子に配置しています)

何かいい方法、サンプル、デバッグ手段等あったら、教えてください。
709デフォルトの名無しさん:03/05/26 02:30
JFaceの質問もここでいいですか?

IStructuredContentProviderやITableLabelProviderなどの
Providerを実装したクラスのメソッド内で例外が発生すると、

org.eclipse.core.internal.runtime.AssertionFailedException: assertion failed: The application has not been initialized.
  at org.eclipse.core.internal.runtime.〜・・・がだらだら続いて、
  at MyClass$1.selectionChanged(MyClass:74)・・・すごーく前の呼び出し元

というクソみたいなスタックトレースを吐きやがります。
Window.IExceptionHandler#handleException(Throwable)も試してみたのですが、
このメソッドが呼ばれたときにはすでに上記の意味不明な例外に置き換えられたあとでした。

多分、ClassCastExceptionだとかArrayIndexOutOfBoundsだとかの実行時例外だと思うのですが、
何が起きてるのかを知るいい方法はないでしょうか?
というか、どのContentProvider内のどのメソッドで発生した例外なのかだけでも分かれば助かるのですが・・・。
>>709
何がクソで何が意味不明なの?

>  at org.eclipse.core.internal.runtime.〜・・・がだらだら続いて、
の最初の要素が直接の発生場所を示してるわけでしょ.
デバッガで覗けばいいじゃない.
>>708
基本的なことだけれど,
Listenerはちゃんと新しいCompositeに登録しなおしてる?
712709:03/05/26 10:14
>>710 ありがとうございます。

>何がクソで何が意味不明なの?

何が起きようともAssertionFailedExceptionに置き換えられてしまうところが・・・。

>の最初の要素が直接の発生場所を示してるわけでしょ.

いえ、JFace内で全ての例外をキャッチして、
新しいAssertionFailedExceptionを投げているので、直接の原因が分からないままなのです。

今はデバッガで追うのも大変なので、全てのメソッド内をtry〜catchブロックでくくって、
一度スタックトレースを表示してから再度投げるようにしてますが、
実装したProviderのメソッドでnullを返してしまったがために、
JFace内で起きたNullPointerExceptionとかには対応できません。

というわけで、何とか元の例外を知る方法は無いものかと・・・。
>>712
>いえ、JFace内で全ての例外をキャッチして、

そのcatch節でブレークできる場合,
たとえばcatch(Exception e)なら,
Displayビューでe.printStackTrace();をDisplayすれば
ソースをいじらずに元の例外のスタックトレースが見られる.

catch節がからっぽでブレークできないなら,ソースいじるか,
その手前で毎回止めて地道に追いかけてくしかないかな……
714デフォルトの名無しさん:03/05/26 21:10
>何が起きようともAssertionFailedExceptionに置き換えられてしまうところが・・・。

例外チェーンって言葉を勉強しなおせ。

>713
例外を置き換えてる、って言ってるんだから、その処理がどこかのcatch節に必ず書いてあるはず。
そこでブレークできる。

普通はThrowable#getCause()すればそんなもん探す必要無いんだけどなあ。
715713:03/05/26 21:57
>>714
うん,それは期待できるんだけど,
catch節の外で投げなおしてる可能性もゼロではないので,
保険として書いておいたのだ.

eclipseのAssertionFailedExceptionは
例外チェインみたいな仕組みには対応してないのがちょっとアレだよね.
別にJDK1.4じゃなくても独自に実装できるのだし.
716デファルトの名無しさん:03/05/26 22:25
>>711
登録してます。

以下のプログラムは何かおかしいでしょうか?

---------------------------------(抜粋ここから)
public void create(Composite parent){
this.parent = parent;
Composite composite = new Composite(parent, SWT.NULL);
composite.setLayout(new FillLayout(SWT.HORIZONTAL));
Label label = new Label(composite, SWT.NULL);
label.setText("hoge");
composite.addKeyListener(new L1(composite));
}

class L1 extends KeyAdapter{
Composite composite;
L1(Composite composite){
this.composite = composite;
}
public void keyPressed(KeyEvent e){
System.out.println(e);
composite.dispose();
new TChangeView().create(parent);
}
}
---------------------------------(ここまで)
717デファルトの名無しさん:03/05/26 22:29
>>716
補足
イベントリスナーの中でdisposeするってだめ?

画面切り替えってどうするものか、
いいサンプルあったら教えてください〜
718709:03/05/27 03:23
>>714
いえ、例外チェーンになってたらすぐに分かるのですが、
本当に原因となった元の例外が失われてるですよ。

ちなみに、もしかしてと思ってThrowable#getCause()も試していました。
今までもデバッガで原因を探ってたりしたのですが、
もう少し簡単に分からないものかと思ったです。

>>713のDisplayビューを使う方法は初めて知ったので、試してみます。
少しは楽になりそうです。

ありがとうございました。
719山崎渉:03/05/28 12:42
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
保守
SwingとSWT比べてどっちが簡単に覚えられそうでしょう?
722デフォルトの名無しさん:03/05/31 13:40
今SwingのUIをSWTに書き換えているんだが、
外からUIのパーツにアクセスするのに
いちいちUIスレッドと同期とってスレッド立てるのってめんどくさくねえ?
Layoutもウィジェットの追加もいちいちSwingと考え方が違うし、
コード書いてるとストレスがたまって暴れだしそうだ。。
SWTになれるころには、Swing が書けなくなっている罠。

誰か書いてたけど、
Swingの別実装とはできなかったんだろうか。。
>>722
まさかswingでイベントスレッド外から好き放題アクセスしてた?
AWT/Swingは内部で同期してるよ。
イベントキューに放り込むようになってる。
Toolkitクラス見てみるよろし。
  _, ._
( ゚ Д゚)
726722:03/05/31 14:48
>>723
うっ。やっぱりそういう話になる?
たとえばログをテキストエリアに書き出すのに、
それ用のクラス作ってそこにテキストエリアの参照をstaticで保持させて、
それ経由で各クラスからログを吐き出させてますた。

そこまででなくてもSwingだったら作ったフレームの参照渡せば
外から自由にいじれたじゃない?
SWTだととっても不自由に感じる。

とりあえずの解決として、UIのクラスにログ書き出し用のメソッド書いて、
そこでUIスレッドと同期したスレッドを立ててそれ経由で書かせてます。
でログ出力クラスにはUIクラスを保持させると。

でもこんな感じでボタンの有効/無効操作とかテールへの出力とかが
たくさんある。ある程度アクセスするクラスは絞ってるんだけど
さらに絞らんときついなあ。。
SWTだとどうするのが一番いいの?
UIアクセス用のクラスを作るとか?

>>724
それをいちいち書かされるのがイヤ。
while (!shell.isDisposed()) {
  if (!display.readAndDispatch())
  display.sleep();
}
とか書くのもめんどくさい。
主観的だけどどんどん可読性が落ちてく。。

テーブルさえ持ってれば、もうAWTでいいんだけど。
速さを得るためには何かが犠牲になるものよ
AWT:
void log(String text) {
  textWidget.appendText(text);
}

swing:
void log(final String text) {
  SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        textWidget.appendText(text);
      }
    });
}

SWT:
void log(final String text) {
  Display.getCurrent().asyncExec(new Runnable() {
      public void run() {
        textWidget.appendText(text);
      }
    });
}
729722:03/05/31 15:39
>>728
ありがとー。
結局SWTでUIにアクセスするには
必ずUIスレッドに明示的に同期/非同期でRunnable投げろってことすね。
そのへん何で隠蔽してくれないんだろね。
そういう疑問は、
「なんでjavaって型を自動変換してれないの?」
ってのとおんなじかな。。
>>722
SWTでっていうかswingでもな
Javaってこのへんダサいな。使わずに済んでよかったよ。
>>722
>そのへん何で隠蔽してくれないんだろね。

SWT自体は元々eclipseを構成する中の、比較的低レベルなライブラリィだから。

隠蔽したいならeclipseのソース全体を参考にしつつ、自分で書いてみ。

>>731

マルチスレッドでの同期問題を前提にしていないO/Sや言語のほうがダサい。
複数のタブアイテムのうち1つを最前面に出す場合はどうすれば良いんでしょうか?

 TabFolder tf = new TabFolder(shell, SWT.NONE);
 TabItem ti1 = new TabItem(tf, SWT.NONE);
 ti1.setText("1");
 TabItem ti2 = new TabItem(tf, SWT.NONE);
 ti2.setText("2");

こんな感じで作ったタブのうち、起動時に2番目のやつが前面に出ているようにしたいのですが。
>>733
tf.setSelection(1);
>>732
>SWT自体は元々eclipseを構成する中の、比較的低レベルなライブラリィだから。
IBMによるJ2ME/PersonalProfile for Linuxのβ実装見てると、
java.awt -> SWT -> Qt/gtk/motifなんてなってる。
IBMとかOTIの社内じゃほんと汎用的な低レベルライブラリとして
位置付けられているんだろうな。
awt/Swing/SWTそれぞれコードの書き方が違うの?
なんかJavaらしくないな。
Javaらしさってなんだろ。マルチ環境って意味だと↑のどれ選んでも
かなりの数のOS/Window Systemで動くけどね。
Javaなんだから、単一の書き方で全てに対応できるべき。
イチイチ書き直すなんてダサすぎ。
反論その一
そもそも適用できるレイヤが違う物同士に”単一の書き方”を求めるのが間違い。

反論その二
”これで全てOK”な究極の書き方が数年そこらで出来るはずなし。GUIなら尚更。
>>736とか>>738とかただの煽り屋なんだろうけど
あまりにアホすぎて涙が出てくる
>>738は一理あると思うんだが、
>>741には説明できないんだろうな。かわいそう。
>>742
>>739



…理解できない事象は無視してしまうのか。プログラマーに向いてないからやめた方が良いよ。
>>743

なんでもかんでも全部理解しようとする奴はすぐ限界に直面する。
分からんことは他人に任せる奴がもっともプログラマ向きだよ。

でもまぁ、Javaはほか言語と比べてダサくないよ、全然。
素直な人間の発想と比べればJavaではまだまだダサいのでせう。
745722:03/06/04 20:26
>>732
そのためのJFaceフレームワークみたいだね。
完全隠蔽してくれないけど、同期は意識しなくていいみたい。

結局、Tableの予想以上の遅さにSWT化を断念しました。
AWTにListでTableっぽいの作って使おうかな。。。

>>736
AWTとSwingは書き方がほぼ一緒。
コンセプトはAWTとSWTがほぼ一緒。(端的に言うと)
JFaceでマルチスレッドの扱いがSWTと変わるわけでもないし,
AWTとSwingじゃスレッド回りが全然違うと思うが……
SwingってAWTと同居してたような気がするけど、なんで違うの?
>>745

AWTは当時PureJavaのGUIパーツを作ってる暇無かったから仕方なく、だろ?
SWTみたいに速度や機能のために割り切ってるわけじゃないと思うが。
749722:03/06/04 21:29
うーん、乱暴やったなー。
勉強不足ですた。
Tableってそんなに遅いか?
>>750
このスレの>>238あたりを読め
752732:03/06/05 18:30
>結局、Tableの予想以上の遅さにSWT化を断念しました。
>AWTにListでTableっぽいの作って使おうかな。。。

@ITの新着記事でも遅いと書かれていたね。

Windowsプラットホームで言うと、SWTのTableはCommonControlの「ListView」で
無理やり実装されているんだけど、JNIのオーバーヘッド+Rowをオブジェクトで追加
していく方法であれば遅いのは止むなしかと。

私もいろいろ調べたけど、速いTableを使うにはCanvasクラスを継承して新たな
ウィジェットクラスを書くしかないみたい。

SourceForgeにModel/Viewが分離されているよさげなサンプルがあったので、
私はがりがりと書いてみるよ。

eclipse 3.xまでは待てないしね.....

安藤幸央のランダウン[19] 話題のSWTは本当に速いの?
http://www.atmarkit.co.jp/fjava/column/andoh/andoh19.html
754デフォルトの名無しさん:03/06/08 23:03
>>608
602じゃないですが、Imageを使ってバッファを作ってそこに描画して、
それをShellに直接drawImageすると激しくちらつきます。
何かしなきゃいけないことがあるんでしょうか?
>>752
CPLで公開キボン.

>>754
とりあえずSWT.NO_BACKGROUNDとか.
756754:03/06/09 23:33
>>755
解決しました。
どうもです。
757デフォルトの名無しさん:03/06/13 23:12
レイアウトパッケージ駄目すぎ。
だれかGridBag作って
758直リン:03/06/13 23:13
759デフォルトの名無しさん:03/06/27 09:28
あげとく
760デフォルトの名無しさん:03/07/07 02:44
全然人気無いな
age
だな
762こまちゃん:03/07/11 21:02
tableで。セル(単位)で色を変えるのはどうやるの?行単位(毎)で
変わってしまいます。
よろしゅう。
>>762
自分で描画しる.
org.eclipse.swt.custom.TableCursorのソースが参考になる.
JFace ってどうなの?
SWT と Swing を比較して Swing のほうが API が使いやすいって
よく聞くけど、Swing と API の使い勝手を比較するなら SWT じゃなくて
JFace じゃないの? スタンドアローンアプリケーションで
JFace 使ってる人の意見キボンヌ。
jfaceで2chブラウザ作ってます。
単なる感想だけどなかなか良さげ。

ただ、資料が少ないのでAPI、サンプル、ソースを読みながら出ないと、
呼び出すだけでいいのか、サブクラスで実装しなければいけないのか、とかがわかりにくい。

このページ見てやってみようかなと思ったんだけど、
必要なJarファイルとかが違っていたので要注意ね。
ttp://www-6.ibm.com/jp/developerworks/opensource/030328/j_os-ecgui1.html
>>764
使ってる人が少ない、資料が少ないという時点で「APIが使いやすい」の重要な条件からひとつ外れる。
>>766
そうかもしんない。
ただ、SWTをラップしてUIを作りやすくしてくれるので、
一度は使ってみると良いと思う。

フォント、イメージの破棄とか簡単になるし・・・。
768デフォルトの名無しさん:03/07/13 23:18
769山崎 渉:03/07/15 09:48

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
770デフォルトの名無しさん:03/07/16 18:57
swtでJEditorPaneに相当するのって
MultiPageEditorとかですかねぇ。
>>770
JEditorPaneに何を期待しているかによって違うと思う
・単純なテキスト編集 -> Text
・ちょっとした装飾のあるテキスト編集 -> StyledText
・HTML解析+表示 -> OLE or 3.0で出るとか出ないとか言う何か
772デフォルトの名無しさん:03/07/24 23:20
ShellにText付けたクラスをMyFrameとかいうクラスにしておいて、
別のクラスからMyFrameのインスタンスを何個も作りたいのだが
その場合
while (!shell.isDisposed()) {
  if (!display.readAndDispatch())
  display.sleep();
}
はどこに書けばいいんですか?
>>772
どういうShellを出したかろうと,
readAndDispatchのループを書く位置とは無関係.
774デフォルトの名無しさん:03/07/25 11:35
>>772
HogeクラスからMyFrameのインスタンスを2つ同時に
new MyFrame().open();
new MyFrame().oepn();
で出力したい場合に、ループ処理をMyFrame側に書いてしまうと
2つ目のインスタンスは1つ目のインスタンスのループ処理を
抜けないと到達不可能になるのと思うんだけど、ほんとに無関係??
>>774
無関係.

"MyFrame側"というのが具体的に何なのかわからないが,
無関係というのはどこに書いてもいいという意味じゃないんだ.
アプリごとに適切なやり方でループする必要があるんだよ.
でもその適切なやり方はShellを何枚出すかには
基本的に関係ないということ.

new MyFrame().open();
new MyFrame().oepn();
で動かないならそもそものやり方が適切じゃないのだろう.
Shellを2枚出力する場合は
while (!shell1.isDisposed() || !shell2.isDisposed()) {
  if (!display.readAndDispatch())
  display.sleep();
}
ってやらんといけないのか?
>>776
そうしないといけないということはない.
ループを抜ける条件はアプリによって違う.

お決まりの書き方として捉えるのではなく,
そのコードが何をやっているのかを考えてほしい.
Java GUI SWT編
http://www.cbook24.com/bm_detail.asp?sku=4877830863

なんてものが出てるようだけど、既出ですか?
>>778
まだ実物見てないけど,大村タンなら悪くないかもね.
しかし何でそのページ著者の情報がないのだろう.
Amazonでは著者情報があるみたい。大村タンですね。
http://www.amazon.co.jp/exec/obidos/ASIN/4877830863/ref=sr_aps_b_3/249-7737806-4181927
781デフォルトの名無しさん:03/07/25 21:11
おお、SWT本ないなあと思ってたんだよ。
雑誌の記事だとHelloWorldどまりだし。
782デフォルトの名無しさん:03/07/25 21:14
無修正画像への入り口!今夜はここで過ごしてね!
http://www3.free-city.net/home/espresso/princess/pinkjelly.html

最高画質の無修正画像がたくさん集まってる!
http://www3.free-city.net/home/espresso/bigapple/queen.html
783デフォルトの名無しさん:03/07/30 23:11
sweingよりホント早いの?
784デフォルトの名無しさん:03/07/30 23:17
大村さん元気だな。
末期のOS/2Worldひとりで書いてたもんな・・・
種村さんはどこへ行ったのかな?
>780
>この商品に興味がある人は、こんな商品にも興味をもっています
>
>元サラ金取立てナンバーワンが書いた 自己破産せずに借金を返す法『特定調停』があなたを救う! 金森 信二郎 (著), 金森 重樹 (著)
ワロタ

買いですか?情報キボン
>>785
とりあえず読んだ.いや,SWTの方ね.

まぁ,悪くはない.そんな良くもないけど.
ゆっくり読んでも1時間ぐらいで読み終わっちゃうから,時間は取られない.
値段が気にならないなら買っとけ,て感じ.

この本で全体をなんとなく把握しておけば
本番でJavadoc読むのにそんな苦労せずにすむかも,って用途かな.
あとは,のっけからRunnable渡すところにThread渡してたり,
Javaの初歩的なレベルで危なっかしいところに萌えるとか.
>>785
とりあえず読んだ.いや,借金の方ね.

まぁ,悪くはない.そんな良くもないけど.
ゆっくり読んでも1時間ぐらいで読み終わっちゃうから,時間は取られない.
負債が気にならないなら買っとけ,て感じ.

この本で全体をなんとなく把握しておけば
本番で特定調停するのにそんな苦労せずにすむかも,って用途かな.
>>787
お前、ウザイ
789デフォルトの名無しさん:03/08/02 01:04
789げt
790デフォルトの名無しさん:03/08/02 01:54
791山崎 渉:03/08/02 02:02
(^^)
792デフォルトの名無しさん:03/08/14 00:12
ホシュ
793山崎 渉:03/08/15 15:29
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
クソスレ立てんな
795デフォルトの名無しさん:03/08/17 00:15
仕事でSWT使ってる人いる?
納品物ではないが、仕事のための自作ツールでは使ってる
現在開発中。10月には客先で SWTアプリケーションが動き出す。
798797:03/08/17 23:19
それも MinGW GCJ でネイチブコンパイルという荒業で。
>>797=798
これ分かります?書いたの自分なんですけど。

gcjって使ってる人います?
http://pc2.2ch.net/test/read.cgi/tech/1046627795/50-
800797:03/08/18 23:02
分かるって何が???
そのスレの存在は知っているし書き込みもしてるよ。
>>797
>>799のスレの>>50-51の質問に答えてほしいってことじゃないの?
802797:03/08/19 21:20
>>801
あー、スレ50番からの質問という意味か。l50(最新50)と勘違いしてたよ。

なになに、libswt.a を作ったけどうまく動かない?
ふーん、なんで libswt.a なんて作るのよ。漏れは作ろうとしたことないから知らない。

キミが購読しているメーリングリスト(http://gcc.gnu.org/ml/java/)の連中は
みんな Mohan Embar MinGW GCJ(http://www.thisiscool.com/gcc_mingw.htm)を
使ってるんだよ。キミも Mohan Build を使ってるんだろ?
そして、その配布物の中にはちゃんと libswt.a が入ってる。
まずは、Mohan Build に入っている libswt.a でちゃんと動くか確認してみたら?

それでも、自分で libswt.a を作る必要があるなら、
その必要性を説明してみて。漏れが必要性を感じれば、挑戦してみるよ。じゃ。
803デフォルトの名無しさん:03/08/21 14:19
IBM-DB2の管理コンソールって、Swingだよね。

てか、Swingも産地はIBMだっけ。
Eclipse - SWT も産地はIBMだもんな。 感謝感謝。
MQSeriesだのWebSphereだのAS400オペコンだの、IBMはJava大好きみたいだな。
あとはAS/400のJavaToolboxで使えるGUI部品が、SWTになってくれると嬉しいのだが。
>>804
Javaに替わる選択肢が他に無いというのも大きいと思われます。
マルチプラットフォーム対応のGUIなんて、Javaなしでそれなりにリッチなもの作ろうと思うと、とたんに大変になるし。
まあIBMは4つくらいOS持ってたしな
>>806
4つくらいって何だ?
MVSとVM/CMSとOS/400とAIXか?
OS/2を忘れるとは非国民め。
PC-DOS
810デフォルトの名無しさん:03/08/24 00:57
すいません、いきなり質問で申し訳ないんですけど、

SWTを使って作ったウィンドウの中にInternet Explorerのコンポーネント
を表示させる方法について詳しく解説してるサイトってないですかね?
要は、Windows版Eclipseのヘルプ画面みたいなのを作りたいんですけど。

今のところ↓のページの真ん中よりちょっとした下のほうに書いてある
説明を参考にしてるんですが、もう少し詳しい説明が欲しい。
http://www.mobster.jp/wiki/index.jsp?pid=SWT

で、日本語の資料はこれ以上見つからなかったので、本家Eclipse.org
のサンプルソースを見てみたけど、ちょっと複雑すぎて分かりにくかった。
まあ、OLEの基本も分かってない漏れが逝って良しなんでしょうけど、
こんな俺でも分かるサイトってないですかね? 日本語じゃなくてもいいんで。
811デフォルトの名無しさん:03/08/24 00:58
巨乳体感サイト
おっぱい!おっぱい!またおっぱい!
巨乳のオンパレード!

http://www.exciteroom.com/
C++ から使えるようになるまであとどのくらいかな。計画はあるみたいだけど。
813デフォルトの名無しさん:03/08/24 01:17
まじで。どこみれば計画わかるの
>>812
swt.jar を gcj でネイティブにコンパイルして
それを g++ から使えば一応今でもできないことはない。
tkやQtに加えて、SWTという選択肢が増えるのは嬉しい。
817デフォルトの名無しさん:03/08/24 11:39
>>814
サンクス。
やっぱり、Swing使ってHTMLを表示させるよりは難しいんですね…。
頑張ってみます。
>>817
将来計画として、SWTだけで(ActiveX使わずに)HTMLを表示できるようにすることは考えられてるとのこと。
819デフォルトの名無しさん:03/08/28 13:23
age
Table の罫線を表示するにはどうしたら良いですか?
また、一番右端のカラムの幅を Table の端まで自動的に伸ばすには
どうしたら良いですか?
>>820
>Table の罫線を表示するにはどうしたら良いですか?

Table#setLinesVisible(boolean)

>また、一番右端のカラムの幅を Table の端まで自動的に伸ばすには

Scrollable#getClientArea()
Table#getColumn(int)
TableColumn#getWidth()
TableColumn#setWidth(int)
で,"クライアントエリア幅 - 右端以外のカラムの幅の合計"に設定しる.
サイズ変わったら再計算ね.
822820:03/08/29 23:35
>>821
ありがとうございます。うまくいきました。
リサイズ中に水平スクロールバーが現れたり消えたりしてしまうのが
ちょっと残念ですが、まぁ、これくらいは仕方ないですね。
SWTってwxwindowsでも使える?
3.0M3出たのね.

>>822
Table#serRedraw(boolean)
でリサイズ中のリペイントを隠蔽できないだろうか.

>>823
無理.
>>823
wxWindows は Java で使えるけど。
826デフォルトの名無しさん:03/08/30 06:29
ActiveXコントロールをSWTアプリケーションへ統合する
http://www-6.ibm.com/jp/developerworks/opensource/030829/j_os-activex.html
827820:03/08/30 23:40
>>824
リサイズの開始時に setRedraw(true)
リサイズの終了時に setRedraw(false)
とやればうまくいくと思ったのですが、肝心の「リサイズ開始時」と「リサイズ終了時」を
知る方法が見つかりませんでした。ControlEvent では「リサイズ中」ということしか
分からないですよね。。
828デフォルトの名無しさん:03/08/31 01:32
だれかSwingスレもたててよ
>>817 M3からbrowserウィジットできたみたいね。中身はIEやmozillaみたい
だけど。
830817:03/08/31 03:57
>>829
マジですかっ!!
何か凄くうれしい。
中身はIEやmozillaでいいんです。むしろその方が好都合かも。

ところで、browserウィジットの仕様はまだ確定はしてなくて、
M4とかM5になったら仕様変更になったりする可能性もあるんですかね?

browserウィジットを使った開発は、もう少し様子を見てからのほうがいいのかな。
>>830 どうだろ、org.eclipse.swt.internal.browserパッケージ
じゃなくて、org.eclipse.swt.browserパッケージで公開したって
ことは少なくともAPIのインターフェースは確定していると思って
いいんじゃないですか? 細かい動作までfixしたかはわかんないけど。
832831:03/08/31 04:07
ああ、ごめん、Please be aware that the Browser API is still in flux and may change before the end of Eclipse 3.0.ってかいてあるか。
833デフォルトの名無しさん:03/08/31 22:16
SWTのAWTに対するメリットってなに?
834デフォルトの名無しさん:03/08/31 23:08
>>833
メリットを見いだすスコープがどこにあるかで変わる
Browserは今のところごくごく簡単なインタフェースしか持ってないね.
でも今後DOMサポートするかもとか言ってるのでかなり期待.
ただ,WindowsもMozillaだったらよかったんだけど……

>>827
漏れ変なこと書いちゃったよ.
setRedrawはこの場合関係ない.

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/snippits/snippet77.html
がほとんどぴったりな回答だね.

肝は
・Tableのリサイズを自分でやる
・サイズが増えるか減るかでTableとTableColumnのリサイズ順序を変える
みたいだ.
836デフォルトの名無しさん:03/08/31 23:22
メリットってなに? っていうのは
メリットがでてくるスコープはどこ?ってことで
同じことだよ、まあ。
>>837
おお,すばらしい.サンクコ
M4に入るかな.
839デフォルトの名無しさん:03/09/03 17:18
wxWindowsをベースにしたwx4jというものがあるんだけど、
http://www.wx4j.org/
テーブルへのデータ挿入が速い。
wx4j->688
SWT->5015
以下ソース
import org.wxwindows.*;
public class WXTest extends wxApp {
  public boolean OnInit() {
    wxFrame frame = new wxFrame(null, -1, "test", new wxPoint(10, 10), new wxSize(320, 240),
      wxDEFAULT_FRAME_STYLE);
    wxListCtrl list = new wxListCtrl(frame, wxNewId(), wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxSUNKEN_BORDER);
    list.InsertColumn(0, "column01");
    list.InsertColumn(1, "column01");
    list.InsertColumn(2, "column02");
    long start = System.currentTimeMillis();
    for (int i=0; i < 10000; i++) {
      String text = Integer.toString(i);
      list.InsertItem(i, text);
      list.SetItem(i, 1, text);
      list.SetItem(i, 2, text);
    }
    frame.Show(true);
    wxMessageBox(Long.toString(System.currentTimeMillis() - start), "time", wxOK);
    return true;
  }
  public static void main(String[] args) {
    wxApp app = new WXTest();
    app.MainLoop();
  }
}
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class SWTTest {
  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setBounds(10, 10, 320, 240);
    shell.setLayout(new FillLayout());
    Table table = new Table(shell, SWT.SINGLE|SWT.FULL_SELECTION);
    table.setHeaderVisible(true);
    String[] cols = {"column01","column02","column03"};
    for (int i=0; i < cols.length; i++) {
      TableColumn col = new TableColumn(table, SWT.LEFT);
      col.setText(cols[i]); col.setWidth(80);
    }
    long start = System.currentTimeMillis();
    for (int i=0; i < 10000; i++) {
      TableItem item = new TableItem(table, SWT.NULL);
      String text = Integer.toString(i); String[] data = {text, text, text}; item.setText(data);
    }
    shell.open();
    MessageBox box = new MessageBox(shell, SWT.OK);
    box.setMessage(Long.toString(System.currentTimeMillis() - start));
    box.open();
    while (!shell.isDisposed()) {
      if ( !display.readAndDispatch()) display.sleep();
    }
    display.dispose();
  }
}
Large Tableが使えるようになるのは2.2?3.0?
>>839
wx4jはソートが楽そうだな
>>841 2.2リリースそのものがない。
SWTSwingのバージョンが0.0010に上がってた。
http://sourceforge.net/projects/swtswing
しかし、これどういうユーザが使うんだろう。
SwingはあるけどSWTがないIRIXとかOS/2とか?
>>844
その上にAWTonSWTを乗せるとか。その上にさらにSwingを乗せるとか。
>>845
AWT on SWTってJ2MEのやつしか見たことないんだけど、
Swingのっけられるやつあるの?
>>762
3.0M3から色を変えられるようになったみたいだ。
http://download2.eclipse.org/downloads/drops/S-3.0M3-200308281813/eclipse-news-part2-M3.html
>>846
いや、勢いで言ってみただけなので・・・
849デフォルトの名無しさん:03/09/12 23:22
>>847
Browser とかいうクラスができたみたいだね。
JEditorPane に変わるものとして期待できそう。
850デフォルトの名無しさん:03/09/13 02:33
Table table = new Table(shell, XXX)、という感じでテーブルを作り、
new TableColumn(table, XXX)、という感じでテーブルカラムを作り、
new TableItem(table, XXX)、という感じでテーブルアイテムをいくつか作りました。

で、カラムとテーブルアイテムを変更したかったので、一旦カラムとアイテムを消すため、
table.removeAll()
と書きましたが、テーブルアイテムは全部消えましたが、カラムが消えてくれません。
table.remove(0)
とすると、アイテムの一番目が消えます。

テーブルからカラムを消すためにはどうすればよいのでしょうか?
mobster.jp死んでない?
>>553-557
のようなことをJFace を使用して実現するにはどうしたらいいのでしょうか。

>>852
JFaceはSWTを完全にラップしようとしているわけではないので
SWT使えばいいよ
>>853
はい、そう思って調べているのですが、mainメソッド中で
Hoge hoge = new Hoge();
hoge.setBlockOnOpen(true);
hoge.open();
GC gc = new GC(hoge.getShell());
gc.drawOval(100,100,100,100);
gc.dispose();
Display.getCurrent().dispose();
としてもうまくいきません。原因は hoge.getShell() の結果が null になることだと
いうことまではわかるのですが、これをうまく動くようにするにはどのようにしたら
よいのでしょうか。
質問ばかりですみません。
>>854
setBlockOnOpenの意味もわからず使ってるね.
setBlockOnOpenについてお調べなさいな.
>>855
setBlockOnOpenをすることでウィンドウが閉じるまでOpenメソッドが終了しない
(ブロックされる)というふうに理解していますが、違いますでしょうか。
そのため、>>853 の例でいえばGC gc = new GC(hoge.getShell());としても
hoge.getShell() からは null が返ってきてしまうということだと思います。
ちなみに、setBlockOnOpenを使わないでも相変わらず描画されません。
と、ここまで書きましたがやはり調査不足な感が否めませんのでもう少し試行錯誤してみます。
857854:03/09/17 10:38
失礼しました。
>>853>>854 でした。
>>856
違わない.
それがわかってるのならもはやJFaceは関係ない.
単にSWTの使い方を理解してないだけ.
PaintListenerについて調べてみ.
あとeclipse.orgのSWT関連Articleを読むべし.
>>854
Hogeの中のcreateContents()でgc.draw()してみるとか、
setBlockOnOpen(true)せずに、gc.dispose()以降に !shell.isDisposed()なループをまわしてみるとか・・・

いや、検証していないけどね
860854:03/09/18 04:17
>>858 >>859
ありがとうございます。
>>858 さんのアドバイスを参考にして調べたところ、うまくいきました。
スタンダードな方法かどうかはわかりませんが。
configureShell() 内で shell.addPaintListener すると良いようです。
ご希望の方がいらっしゃいましたらソースを晒します。30行にも満たないものですが。
>>859
createContents() は Control を返す必要があるので何かしら Control オブジェクトを作成
しなければなりません。通常ではそれで問題ないのでしょうが、今回は特にウィジェットを
貼り付ける必要がなかったので試していません。すみません。
また、
while(!hoge.getShell().isDisposed()) {
  if(!Display.getCurrent().readAndDispatch()) Display.getCurrent.sleep();
}
とすると、ウィンドウを閉じたときに NullPointerException が発生してしまいます。
861デフォルトの名無しさん:03/09/18 21:45
850は無視なのですね・・・
>>861
だってガイシュツもいいところなんだもん.
>>457-458
すいません,質問させてください.

IEコンポーネントを使っています.IE上でリンクをクリックしたときに
System.out.println("hoge");したいんですけど,どうやればIEコンポー
ネント上のイベントをとれるんでしょうか.
イベントの番号を与えて listener を設定すればいい。
ただ IE コンポーネントに限らずイベントの番号を調べるのは
結構めんどくさい。がんばってくれ。
>>864

ありがとうございます.やってみます.でも,
イベントの番号って返ってきてますか?あらゆる
イベントの発生を出力させてみたい(独り言
>>865
0 から 255 くらいまで全部に番号を出力する listener を設定するといいよ。
適当だからこのままじゃダメだが下みたいな感じに。
だいたい何をやったらどんなイベントが飛ぶのかわかる。
ActiveX のドキュメントに書いてあればそれが一番いいんだが。

for (int i = 0; i < 256; i++) {
  IE コンポーネント.addListener(i, new Listener() { System.out.println(i); });
}
867デフォルトの名無しさん:03/09/22 23:49
なんか、テーブルがJTableに比べて激しく貧弱なんですが…
こんなものなの?
868デフォルトの名無しさん:03/09/23 16:06
何がしたいの
セルの直接編集
>セルの直接編集
セフレに見えました。
872863:03/09/25 00:43
>>871

だってswt.Browserなんてコンパイル通らんし.stableで解決したいやん.
といいわけをしてみるけどSnippets参考になりました.ありがとうございます.
873デフォルトの名無しさん:03/09/25 02:35
とりあえず、日本語ドキュメントの整備がなされていない状況なのは分かった。
SWTちょっとだけやってみた感想。
とにかくモデル化が全くされていないのとサブクラスが作れないのが
辛すぎるんですけど。
VB感覚ならいいかもしれないけどSwingからの移行は厳しすぎる。

使い込んでる人からの反論をお聞きしたいところ。
TableがJTable並にならんとちょっとなぁ…。
876デフォルトの名無しさん:03/09/27 23:18
結局、マシンの速度が上がるまでの繋ぎという観が否めない訳だが…。
つか現状でもSwingが非実用的なまでに遅い訳でも無いし。
>>874
サブクラス化ではなくコンポジションで対応しろってことじゃない?
Widget関係のコンストラクタもそうなってると思うけど・・・
>>877
そりゃコンポジションすりゃ何でも可能だけども。
インターフェイスを透過させるだけでもすんごい面倒くさいんだけど。

ところでサブクラス作ってnewした時に実行時エラーになるように
書かれてるけど、なんでfinalクラスじゃないんでしょ?
>>875
SWTはOS間のGUIの差を埋めるためのものじゃなかろうか
便利な機能が欲しければJFaceをお勧めする

参考までに、
http://www-6.ibm.com/jp/developerworks/opensource/030328/j_os-ecgui1.html
>>879
JFacegってただのフレームワークみたいなもんだと
思ってたんだけど違うのかい?

リッチなテーブルコンポーネントが欲しいとかそういう要求とは
方向性が違う気がするんだが。
881879:03/09/28 00:28
>>880
どういう機能を要求してるのかわからないけど
IStructuredContentProvider
ITableLabelProvider
ViewerSorter
ViewerFilter
TextCellEditor, ComboBoxCellEditor, ...
あたりはいじって見た?
その上で足りないといってるならすまん
>>882
なるほど、推奨されないだけだなんだね。
ありがとう勉強になった。
884デフォルトの名無しさん:03/09/28 02:26
Javaの世界での「推奨されない」は、しばらくすると本当に非互換になる罠
>>883
推奨されるされないって言う表面的な話じゃなくて,
なんでサブクラス化するような前提になっていないかという
理由があるわけなので,それを読んでほしかった.
>>885
そのくらいは読む前から予測ついていますよ。
そもそもサブクラスを作れない理由が知りたかったわけじゃなくて
finalでない事が疑問だっただけなのです。
http://swtmvcwrapper.sourceforge.net/
まだ詳しく見てないけどこういうのが有用なんじゃないかい?
SWT Widgetsは生で使うにはレイヤーが低すぎる。
結論:Swing >>>>>>>>>>>> SWT >= MFC
>>886
"そもそも"の>>874にはfinalの話はないし,
SWT派の理由つきの擁護を欲しがっているように見えたものだから.
それとも>>874!=>>878だったのだろうか.ごめんね.
>>889
ごめん、せっかくレスしてくれたので冗長だけどレス
>>874==>>878==>>883です。

俺の頭の中ではサブクラス化「禁止」と思ってたのが実はそうではなく
「非推奨」であったことを教えてもらった、というだけ流れなので。

禁止にしろ非推奨にしろ、またそれにどんな理由があるにせよ
サブクラス化を前提としないGUIコントロールクラスは使いにくいという
SWTに対する不満は変わるものではないです。
結局getLocationOnScreen()はどこへ消えたんだ
>>890
どういう場面で使いにくいのかわからんと具体的な反論は無理だけど,
漏れとしては総じて使いにくいとは思わないのだ.

使いにくいと感じるとしても,
安易な継承の危険性ってのはよく言われる話で,
多少の使いにくさは安全を取るために仕方ないんだって
納得するかどうかなのかもね.

あと上の方でコンポジションって話が出てるけど,
setFontとかを全て転送するようなラッピングをしてるとすれば,
それはSWTの使い方としては不適切な方法を採ってる可能性が高い.
TableTreeみたいなよほどのケースではそれが必要だけど,
普通はListenerで拡張するだけで足りる.

>>891
そもそもその話はどこから来たんだ.
Control#toDisplayを見よ.
ヴァカにあわせて長所を封じるのはいかがなものかと思われるわけで。
そもそもGUIの危険な継承っつーのはいったいどういう場面だ、と。
>>893
ヴァカに合わせてというのならポインタ演算だってそういう話になってしまう.
ヴァカとかって問題じゃないのよ.
リスクが減ることによって全体としてはコストが下がる可能性もある.

脆弱な基底クラス問題に関しては
http://www.cas.mcmaster.ca/~emil/publications/fragile/
を読むといいよ.
895デフォルトの名無しさん:03/09/30 00:42
ポインタは「うっかり開放漏れ」「うっかり領域外へ」等々ミスを誘発するのは、
まぁ、分かるが、「うっかり継承しちまった!」なんてミスは…。
>>895
外しすぎ。
897デフォルトの名無しさん:03/10/01 18:19
C+SDK,mfc で長らくプログラムしてきたけど、もうスピードはいらないし(CPU偉いので)
メモリーも気にしなくて良いし(10Mぐらいどうってことない時代)
Java を真剣に勉強しだしました。

以前 AWT,Swing 両方で一緒のプログラムを作って勉強したのですが;
今回は、SWT,Swing 両方でいろいろ勉強しました。

SWT 単体では。。。やっぱ JFace と一緒じゃないと、SWT 単体では。。。

結局 1.4.2 で Swing でも良いなぁって感じです。コモンダイアログも良い感じだし。。
(GTK で、フィルターの切り替えがないのは寂しいが)
SWT は、あくまで、IBM の都合で作った物であって・・・・
これからもし、クライアントのスタンドアローンアプリがJavaでどんどん作られるとしたら、
Swing でも十分だと思います。

SWT じゃないとマズイ点はなんなんでしょう!?
>>897
>C+SDK,mfc で長らくプログラムしてきたけど、もうスピードはいらないし(CPU偉いので)
>メモリーも気にしなくて良いし(10Mぐらいどうってことない時代)

そうでない人がまだ居るから。
899デフォルトの名無しさん:03/10/01 18:33
>>898
そっかぁ(笑)

でもそれなら、私は、これは Java で、これ C+SDK(or mfc) で悩む!
Java で、できない、あるいは、難しい、スピードがぁ なら 迷わず C+SDK(mfc)

Java 内で、 Swing , SWT でスピード比較しても。。。(笑)
SWT の方が、C+SDK からの乗り換えは簡単ですよね。似てますから(笑)
900デフォルトの名無しさん:03/10/01 18:38
ただし、現在の Java のスピードは下手なC、C++プログラマーのプログラムより早い場合もあります
(プロのC,C++プログラムには勝てませんが。。。) 3〜5倍遅い程度ですので! 現在のCPUならまったく問題ないですね。
そのなかで、Swing がどれくらいアホなのか、いろいろ勉強したのですが、問題ないようにも思う
SWT に何もしないより、Swing で何もしないでダブルバッファリングした描画の方が楽で早いし!(メモリーは食うけどね)
NetBeans, JBuilder と Eclipse を比べてみれ。
どちらもスキルの高い連中が作ったものだけど、
Swing と SWT の差が如実に出ている。
902デフォルトの名無しさん:03/10/01 19:45
JETでSWT使える?
903デフォルトの名無しさん:03/10/01 19:54
動作だけなら、JBuilder9 の方が Eclipse よりは早いですね。
それは、処理の内容が断然 Eclipse の方が多いですからね!どちらも、
SWT や Swing での処理時間ではないですね。内部処理での時間ですね。
使い出してくると、JBuilder9 Eclipse では、Swing SWT どっちでも良いでしょうね!

SWT は、IBM の都合で作られていて、あくまで安全に、plugin を動かせるようにってのがメインなのでは?
Swingの場合,Lookをある程度似せることができても,Feelがかなり違う.
それが気持ち悪いという人もいれば,かまわないという人もいるし,
そもそも気付かない人もいる.

漏れは気持ち悪いから個人的なアプリはSWTで書く.

自作板の"きびきび""もっさり"という表現に通じるところもあると思う.
Swingで書かれたソフトのキャプチャ画面を見せられたとするじゃないっすか。
「あー、このボタンって押して2秒経たないと反応ないんだろうなー」
とか
「ドロップダウン開こうとしたらハードディスクがカリカリ言うんだろうなー」
とか思ってしまう自分が嫌だ。
Swing
ホイールマウスが使えないのがイタイ

最近は使えるの?
908デフォルトの名無しさん:03/10/01 23:55
速度の話題の中で>>901を書き込んだ人は、結局、
「SWINGの方が速い!」と主張したいわけだったのだろうか…。
それとも、それらのIDEを使ったことが無い知ったかぶりクン?
SWT上でJava2Dって使える?
ググったらそれらしきことを書いてるような気がするページへのリンクがあったんだけどリンク切れてたんだよね

Java2d使えたらSWTでゲームとか作れるかな
910デフォルトの名無しさん:03/10/04 18:26
SWTってアプレット作れるの?
学生をバカにしてるようなフシがある奴いるけど、何様?
お前も何年か前まで学生だっただろと言いたい。ついでに死ねと付け加えておくか。
912デフォルトの名無しさん:03/10/04 20:39
???
913911:03/10/04 21:07
いや、この板のどこかにたまに出てくるよいう意味よ
914デフォルトの名無しさん:03/10/04 22:23
学生はともかく、電波は馬鹿にされても仕方ないよ(苦笑
915デフォルトの名無しさん:03/10/05 07:02
>>911
????
>>911
お前学生だろ(プ


ってことか?
> お前も何年か前まで学生だっただろと言いたい。
その何年かで大きく成長するんだよ、普通は。

ついでに、この板のどこかにたまに出てくる奴の事を、
このスレでぶちまけたお前には氏ねと付け加えておくか。
  ↑
ヒッキー光臨
>>917
お前学生だろ(プ
919911:03/10/05 22:34
>>ついでに、この板のどこかにたまに出てくる奴の事を、
>>このスレでぶちまけたお前には氏ねと付け加えておくか。
ワラタ

ここでぶちまけたのは>>9を見て頭に血が上ったから。
他にも学生はすっこんでろとか言うオヤヂがいてうざいの。
優越感に浸ってるようで文章が感じ悪い。
920デフォルトの名無しさん:03/10/05 23:24
ヒッキーVS リストラ中年のスレはここですね?
まあ、>>914に同意かなあ・・・
思い出し笑いならぬ、「思い出し切れ」する人はリアルにも結構いて、扱いに気をつかう。
スレッドが900を超えてから1年以上も前のレスにぶち切れて
電波を発散しまくるスレはここですか?
てっきり、今年の9/20に煽られた厨房かと思ってよくよく見ると、確かに去年だった(w
ワラタ
GUI Builderは今なにが一番開発がすすんでるんだ?
使ってる人の意見きぼん
そりゃもちろん、何といっても、
Visual Studioが飛びぬけてるね。
monalipseから書き込みテスト
OLEプログラミングって、情報は何処であつめりゃいいんだ?

for(int i=0; i<1024; i++){
final int id = i;

controlSite.addEventListener(id, new OleListener() {
public void handleEvent(OleEvent event) {
System.out.print(id + ": " + "" );
Variant[] vs = event.arguments;
for (int k = 0; k < vs.length; k++) {
System.out.print(vs[k].getString() + ",");
}
System.out.println();
}
});
}
なんてやって、

112: {265b75c1-4158-11d0-90f6-00c04fd497ea},
250: Microsoft Web ブラウザ コントロール,http://i.am/,0,,106:
112: {D0FCA420-D3F5-11CF-B211-00AA004AE837},
105: 2,0,
105: 1,0,
102: プロキシの設定を検出しています...,
102: サイト i.am を探しています,
108: 100,10000,
102: サイト 216.27.94.80 に接続しています,
102: Web サイトが見つかりました。応答を待っています...,
108: 100,10000,

数字とその内容を見ながら解析してるんだけど、やっぱちゃんとした情報ほしい
928デフォルトの名無しさん:03/10/10 12:46
>>927 windowsプログラミングスレへ行ったほうがよいのかもしれん
929デフォルトの名無しさん:03/10/10 13:10
>>927
基本はMSDNで調べて,より詳しい情報はヘッダファイルをgrep.

ただ,情報の在り処がわかっても,
それを効率的にJavaに持ち込む方法が問題になる.
たとえばIWebBrowser関連はEXDISP.IDL(.h)に含まれる.
これをJDKのidljで変換できればいいんだが,
IDLが非対応の構文なのか,どうも素直にできない.
で,とりあえずEXDISP.IDLをmidl.exeでtlbにする.
さらに,tlbをVJ++のjactivex.exeで.javaにする.
そうすると,MSべったりのJavaテンプレができる.
Javadocコメント風に型情報が含まれるので,
この状態は比較的,機械的に処理しやすい気がする.

そういうようなことをもっと上手くやる方法があるんだと思うよ.
この辺はSWTというよりJava-ActiveXブリッジ一般で
問題になる話なので,その方面を調べるべきかと思う.
漏れはその方面に関わったことがないのでよくわからない.
結果わかったらこのスレで教えてくれると嬉しい.
931デフォルトの名無しさん:03/10/11 01:39
OLEつかActiveXつかCOM使うなら、VB。これ最強。
932 :03/10/11 03:27
学生が馬鹿にされてるわけじゃない。
馬鹿にするために学生というラベリングを行っている、という因果関係。
933デフォルトの名無しさん:03/10/11 06:21
>>930

難しいこと考えなくても、今ある org.eclipse.swt.ole.win32.*
を使えばいいじゃんか

http://www-6.ibm.com/jp/developerworks/opensource/030829/j_os-activex.html
934デフォルトの名無しさん:03/10/11 06:30
Web Browser コントロールのリファレンス情報は

http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/browser_control_node_entry.asp

でゲト

(SWTのウェブブラウザcontrolは3.0からだっけ。)
>>933
そのページのリスト4みたいなラッパを書く(生成する)
効率的な方法について話してるんだ.

もちろん手で書くなら何にも考える必要はないね.
936デフォルトの名無しさん:03/10/11 08:12
イベントってにずらずらと書いてあるんだが、

http://msdn.microsoft.com/workshop/browser/webbrowser/reference/ifaces/dwebbrowserevents/dwebbrowserevents.asp

SWTでこれをキャッチするのって、DISPID ってのを取得する必要がある。

しかし、MSDNにはそれが書いてねーんだよ

Event DISPID DISPID_BEFORENAVIGATE2

とあるのみ。DISPID_BEFORENAVIGATE2 の定数の中身を知りたいんだ。こっちは。
ただ知りたいだけなら、exdispid.hに書いてあったよ(VC++,BCB6,BCC55全て)
938デフォルトの名無しさん:03/10/11 15:00
何もJavaでWinべったりのプログラミングしなくても…
つかWinべったりならVC++なりVBの方がツールの出来も
資料の質/量も断然上。
俺もそう思った。
JavaもSWTも別にWinじゃなくても動くんだからさあ。
ほんとは、3.0buildがM5でAPI freezeするので、それ以降に
browserウィジット使うのがいいんだろうなあ。Eclipse2.1の
プラグイン作ってるとかだと駄目だけど。
SashFormでよくあるメーラのようなペインを構成したいのですが、
どうもうまく行きません、というかどうしたら良いのか分かりません

SashForm sash = new SashForm(shell,SWT.HORIZONTAL);
List list = new List(sash,SWT.SINGLE|SWT.BORDER);
Text text = new Text(sash,SWT.MULTI|SWT.BORDER|SWT.H_SCROLL|SWT.
_SCROLL);

sashを更に縦方向に分割するにはどうしたら良いのでしょうか
>>941
SashForm sashv = new SashForm(shell,SWT.VERTICAL);
Tree tree = new Tree(sashv, SWT.BORDER);
SashForm sashh = new SashForm(sashv,SWT.HORIZONTAL);
List list = new List(sashh,SWT.SINGLE|SWT.BORDER);
Text text = new Text(sashh,SWT.MULTI|SWT.BORDER|SWT.H_SCROLL|SWT.V_SCROLL);
>>942
有難う御座います
参考にさせて頂いてうまく行きました
SWT始めたばかりでよく分かっていませんが、
Layout設定の関係か、HorizontalとVerticalを逆にしました
M4だってのにimproved tableは全然状況見えないねぇ.
R4.0に滑りそうな悪寒……
browserウィジットのほうは動き速いのにね。
今度はMacOSXのsafariに対応したらしい。
946デフォルトの名無しさん:03/10/16 11:18
java ver1.5からはSunの公式パッケージに!!
>>946
最高!(笑)
!!!(笑)!!!
冗談抜きに、AWTをSWTに置き換えてもいいんでないかい?
J2ME Personal ProfileあたりにSWT(のサブセット)が入れば言うことないんだが
>>950 IBMはもうやってるけど、規格としてサポートしてくれればいいやね。
952デフォルトの名無しさん:03/10/17 19:06
>>949
AWTの上に構築されてるSwingが困るワケだが。
coolbarに関する情報ないでつか・・・?
やりたいことはこんな感じでつ。
1.Menuを載せる。
2.ToolBarを縦に2つ重ねたらCoolBarの領域拡大。
Compositeに配置したコントロールをリフレッシュするにはどうするのでしょうか?

描写した線とかなら redraw() でうまくいくのは分かるのですが、
私がやりたいのは、たとえばボタンを3つ配置したあとに何かのアクションで、
別のボタンを配置するといったようなことです。

ボタン群を dispose() するとうまくいきますが、サイズを変えるなど
再描写のタイミングを与えないと表示されません。
redraw() や update() ではだめでした。

どうすればいいのでしょうか?
955953:03/10/20 00:04
とりあえず2に関しては以下のようにすることで希望に近い動作をします。
が、マウスをCoolBar上で動かすだけでイベントが発生します・・・
ドラッグしつつ動かすイベントに対するリスナが見つからなかったので
MouseMoveListenerを使ってますが、まずいですかね?
あと、CoolBarの下に線を引く方法ないですか?

 coolbar = new CoolBar(shell, SWT.NULL);
 for (int i = 0;i < 3;i++) {
  ToolBar toolbar = new ToolBar(coolbar,SWT.FLAT);
  for (int j = 0;j < 2;j++) {
   ToolItem tItem = new ToolItem(toolbar, SWT.PUSH);
   tItem.setText("Item" + i + j);
  }
  CoolItem item = new CoolItem(coolbar,SWT.PUSH);
  item.setControl(toolbar);
  Point p = toolbar.computeSize(SWT.DEFAULT,SWT.DEFAULT);
  p = item.computeSize(p.x, p.y);
  item.setSize(p);
 }

 coolbar.addMouseMoveListener(new MouseMoveListener(){
  public void mouseMove(MouseEvent arg0) {
   shell.layout(true);
  }
 });
>>954
packは??
ただうちだと表示されたり表示されなかったりするけど。。。
957956:03/10/20 22:26
>>954
ごめん layout呼べばよさげ
>>955
new Separator(shell);
・・・ではダメかもしれんが、Compositeとレイアウトとか使ってどうぞ
959954:03/10/21 20:55
>>956
ありがとうございます。
layout、調べてみます。
960953:03/10/21 22:48
だ、誰か助けれ・・・

>>958
レイアウトもいろいろ試しました。
CoolBarの下に new Label(shell,SWT.SEPARATOR|SWT.HORIZONTAL)として
GridLayout で margin をいじったりしましたが、
CoolBarの上段と下段の太さが明らかに違います・・・
961デフォルトの名無しさん:03/10/22 00:18
手探りでjfaeの勉強をしています。
jface でツールバーをつけようとして、
createToolBarManagerを調べていたのですが、、
見つけたサンプルではみな、イメージを貼り付けていました。
SWTでは、ToolItemを使ってボタンを貼り付けられますが、
jface ではできないのでしょうか?
ご存じの方がいらしたらおねがいします。
>961
質問の意図が掴めないので、外してるかもしれんが・・・

ApplicationWindowを継承したクラスでは
createToolBarManagerは自分で実装するもの。
この中でToolBarManager作って、ActionやSeparatorをaddする
もちろんActionにはsetImageDescriptorしとくこと。

で、コンストラクタあたりからaddToolBar呼んどけ
>>961
イメージを追加してた?
どんなサンプルだろう?
class MyAction extends Action {
public MyAction() {
setImageDescriptor(ImadeDescriptor.createFromURL(new URL("..."));
setToolTipText("私のアクション");
}
public void run() {
System.out.println("私のアクション");
}
}
んなの作っておいて
createToolBarManagerで
ToolBarManager result = new ToolBarManager();
result.add(new MyAction());
return result;

とかやればできない?
SWTに慣れたときにはswingが
速くなってそうだな。
>>964
なった。
>>965
比較データ、どっかにない?
>>966
あんまり単純に比較しても仕方ない。
計ったわけではないが速さだけなら、やっぱりSWTだと思う。
968デフォルトの名無しさん:03/10/23 23:31
GUIの場合はあるレベルをクリアしてれば、そこから先はどーでもよくなるな。
毎秒100枚ウィンドウ開いても仕方ないし。
961です。説明が不足していてすみませんでした。
レスありがとうございました。

追加するアクションには、
setTextで文字、setImageDescriptorでイメージを設定していますよね。
メニューでは、両方表示されますが、
ツールバーではイメージだけが表示されます。
ツールバーに、テキストを表示したいと思ったのです。

が。そもそもショートカットキーをもつ
(テキストの張りついた)ボタンを作りたくて、
ショートカットを設定したアクションをツールバーに
追加しようとしたのですが、
ショートカットキーは、メニューにセットされているのですね・・・。
メニューを非表示にしたら、
ショートカットも使えなくなってしまいました(><)。

フォーカスに関係なく、キーイベントを取得することって、
できないのでしょうか?

長文失礼しました。
>>967 SWTのテーブルは速くなったのか?
低速、低機能なJTableにご期待を!
JTableって異常に高機能なんだが。
高速でもあるしな。
JTable >True DB Grid >>>> FlexGrid >>>>>>>>MS Grid>> Table
975デフォルトの名無しさん:03/10/25 23:38
SWTって何て読むの?
>>975
スワット
えす・だぶりゅー・てー
>>976
それはSambaサーバのあれのことだろ
SWATはSpecial Weapon And Tacticsだろぅ
Sword World Advanced Tactics

ソードワールドのルールでパーティを作成し戦術ボードゲームを行う
981デフォルトの名無しさん:03/11/02 02:47
初心者な質問ですみません。
Eclipse の perspective のようなGUIはどのように作られてるんですか?
どのクラスを使えばいいのかよくわらかないんで、それだけでも
教えて下さい。できればカラクリを簡単に教えてほしい・・・
>>982
 一応そのサイトも含めSWT関係のサンプルを提示しているサイトはある程度
調べたのですが、どうも Eclipse のパースペクティブみたいなのをうまく作れないんですよ。

Eclipse に限らず、ドッキングっぽい動きができるパネルって結構頻繁に
使われていますよね。その動きをSWTで実現したいんですけど、なかなか方針が
たたないので質問してます。定石っぽいやつがある気がするのですが、どうなんですか?

Sleipnir(Webブラウザ)のエクスプローラバーみたいなのを作りたいのですが・・・。
>>983
同志ですな。eclipseのUIに関しては日本語の情報があまりないのでこことか探すしかないよ。
ほとんど説明がないClassもあるけど・・・
http://www.eclipse.org/documentation/html/plugins/org.eclipse.platform.doc.isv/doc/reference/api/overview-tree.html

漏れもいろいろ試行錯誤してるところ。
あるCompositeを表示したり消去したりするのはSashFormを使えばなんとかなるけど、
移動とかドッキングさせる方法は見つからない・・・
985デフォルトの名無しさん:03/11/02 22:39
>>981 eclipse のソースコードを見るのはだめなんですか?
めんどくさいけど。
986デフォルトの名無しさん:03/11/03 00:54
CompositeにあるControlの順番を入れ替える方法ないですか?
Label l1 = new Label(composite,SWT.NULL);
Label l2 = new Label(composite,SWT.NULL);
って書くとl1 , l2の順で設置されますが、これをl2 , l1の順にしたいんですが。

>>981じゃないけど、eclipse のソースってどこにあるんですか?
>>984
そこはEclipse Platform R1.0 のページですが2.0や2.1のページもあります。
なおEclipse Helpで同一内容を高速に表示できるので
翻訳サイトを通す必要がなければそちらを見たほうがよいです。

Eclipse Platform 2.0
http://download2.eclipse.org/downloads/documentation/2.0/html/plugins/org.eclipse.platform.doc.isv/reference/api/
http://www.excite.co.jp/world/url/body?wb_lp=ENJA&wb_dis=3&wb_url=http://download2.eclipse.org/downloads/documentation/2.0/html/plugins/org.eclipse.platform.doc.isv/reference/api/
Eclipse Platform 2.1 (Eclipse Helpと同じ)
http://help.eclipse.org/help21/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/overview-summary.html
http://www.excite.co.jp/world/url/body?wb_lp=ENJA&wb_dis=3&wb_url=http://help.eclipse.org/help21/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/overview-summary.html

>>986
The Eclipse Project (Platform、JDT、PDE) のソースは下記ページにあります。
GUIについてはorg.eclipse.swt.*とorg.eclipse.jface.*を読んでください。

CVS repository
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/
ソース読むんなら、CVSのぞくんじゃなくてEclipseのワークベンチから
外部プラグインのインポートをするか、buildpathに加わってるjarにソース
のattachしたほうがJDTの各種ナビゲート機能が使えて楽。
989984
>>987-988
ぬおっ、そんなところにAPIが!
今まで知りませんでした・・・しばらくヘルプを熟読しまつ。ありがd