トップページ⇒tech
982コメント324KB

Java 高速GUI SWT 2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
全スレ

http://pc2.2ch.net/test/read.cgi/tech/1032448424/
0685デフォルトの名無しさん2005/07/03(日) 11:32:54
>>682
その場合どうされていますか?
POIやJComを使われていますか?

>>683
そうなんですか?
その辺りがよく分からなかったもので。
OLEクライアントとしてウィジットに貼り付けるのではなくて
単純に外部のEXCEL/WORDをOLEにて制御することは
出来ないのでしょうか。

>>684
そうですね。
なので、.netをC#ででもやる必要があるかな?と思っています。
0686デフォルトの名無しさん2005/07/03(日) 11:35:34
OS依存の部分を除くとSwingに対するSWTのアドバンテージは
ほとんど無いと思われ。

Eclipseがこれまでになく盛り上がっているので、乗っかっている
ベンダ等の協力で劇的に進化する可能性はあると思うけど。
0687デフォルトの名無しさん2005/07/03(日) 17:49:56
これからGUI始める初心者にしても、
選択肢がありすぎて一つの方向に統一できてないってのが
JAVAの難点かもな。

独占的でない比較対象があるのは
考えようによっては良いいことなのかもだけど。
0688デフォルトの名無しさん2005/07/03(日) 18:24:06
実際Windowsで利用されるソフトでJavaのGUI利用したのって
ほとんど見受けられないから始めにくいんですよね。
SWTは日本語の情報は不足しているし。
ある程度評価されているアプリでソース公開でもされていれば
習得しやすいとは思いますが。
0689デフォルトの名無しさん2005/07/03(日) 18:38:26
Swingだと手元だとImageJとかJudeくらいかな。ソースコードは提供されてないけど。
SWTだと…EclipseのPluginなら結構ソースコードは手にはいるけど、単体のアプリはしらん。
日本語のSWTの書籍は2冊あるけど、どっちも入門編といったところ。
Swingの書籍はいくつかあるけど、ちょっと古いのもの多いのだよな…。
WidgetやLayoutの例ならまんま確認用のプラグイン(Example Plug-ins)がelipse.orgで
配布されているからともかくそれで動作を見てみるのも良いかと。
0690デフォルトの名無しさん2005/07/03(日) 19:22:50
>>689
ImageJはSwingじゃなくてAWTで組まれていて、ソースも手に入る。

0691デフォルトの名無しさん2005/07/03(日) 21:16:07
eJFaceが6/30付けで公開された。
0692デフォルトの名無しさん2005/07/04(月) 22:55:39
>>688
そういえばそうだな。
これだけツールが晒されてるにも関わらず
そこで実際に作られてるはずのGUIアプリのソースコードがあまりないってのは
どういうことなんだろ。
C関係のソースなら中級レベルのいい材料たくさん落ちてるのに。

クライアント側のソースコードで手に入るのは、
おもちゃ程度のことばっかだし。
0693デフォルトの名無しさん2005/07/05(火) 03:08:04
>>692
JavaVMが一般的じゃないから。
0694デフォルトの名無しさん2005/07/06(水) 07:29:43
まぁ、あれだ。
最終目標がクライアントのGUIアプリ作ることで、
JAVAの世界で迷ってるくらいなら、
C#でやれってことだ。

0695デフォルトの名無しさん2005/07/06(水) 22:07:05
C#のソースコードなんてさらに見ないわけだが
0696デフォルトの名無しさん2005/07/06(水) 22:32:32
Swingの場合業務系でよくみるけどソースはさすがに公開できんだろ
0697デフォルトの名無しさん2005/07/07(木) 10:30:32
NetBeansとかは、ソースがあるけど。
0698デフォルトの名無しさん2005/07/07(木) 12:08:39
それいったらEclipseも・・・
0699デフォルトの名無しさん2005/07/07(木) 14:39:53
JAVAに関して、クライアント側のGUIアプリソースは期待できないってことか
業務系は公開できないだろうし…。
0700デフォルトの名無しさん2005/07/07(木) 15:07:11
つーかSwingなら何を迷う?
0701デフォルトの名無しさん2005/07/07(木) 21:29:59
っていうか、Swing使うっていっても8割がたは自動生成されたコードだし。
0702デフォルトの名無しさん2005/07/07(木) 22:06:24
>>698
EclipseってSwing使ってるの?
0703デフォルトの名無しさん2005/07/09(土) 11:40:38
んなわきゃーない
0704デフォルトの名無しさん2005/07/21(木) 10:53:24
Windowsでの特殊フォルダのパスって、SWTで取得できないかな?
0705デフォルトの名無しさん2005/07/21(木) 13:42:44
環境設定よめば多少はつかえるな
0706デフォルトの名無しさん2005/07/24(日) 13:27:44
Button button = new Button(SWT.CHECK);
button.addSelectionListener(new SelectionListener() {

public void widgetDefaultSelected(SelectionEvent e) {
System.out.println(e);
}

public void widgetSelected(SelectionEvent e) {
System.out.println(e);
}

});
button.setSelection(true);
button.setSelection(false);

Button#setSelection が
ちっとも、リスナーに反応してくれないんですが

一体何をすればsetSelectionを通知してくれるんですかね
0707デフォルトの名無しさん2005/07/24(日) 14:42:03
そこでリスナー呼ばれるものなのか?
0708デフォルトの名無しさん2005/07/24(日) 15:19:06
コンストラクタで親をしていしてないからダメ。
0709デフォルトの名無しさん2005/07/24(日) 15:27:48
>>706
たしかsetSelectionによる選択状態の変化はSWTでは
リスナーに通知されなかったような気がする・・・.
0710デフォルトの名無しさん2005/07/24(日) 22:26:28
Widget#notifyListenersでいいんじゃないの?
0711デフォルトの名無しさん2005/07/25(月) 11:50:42
>>710
できますた どうもありがたとう
0712デフォルトの名無しさん2005/07/27(水) 10:23:44
最近 3.1M4 から 3.1 にしたんだけど、速度落ちたね。
org.eclipse.swt.graphics.GC で、drawLine 等を
結構な量こなすプログラムを作っていて
前までキーやマウスの動きに追従できていたのだけど
出来なくなっちゃった。
0713デフォルトの名無しさん2005/07/29(金) 10:31:40
総合で質問したんだが、答えでなかったんで
GUIスレのここで失礼します


http://www.gui4j.org/

gui4jってXMLからGUIを生成するツールなんだが、
使い方がわかりません。
とりあえずツールDLして
http://www.gui4j.org/quickstart.html
にある、サンプルソースもDLして
指定されたフォルダにも配置。

その後、ページに記述してある
java -cp gui4j.jar;examples.jar org.gui4j.doc.examples.quickstart.Main
ってコマンドうったんだが、
Exception in thread "main" java.lang.NoClassDefFoundError: /org/gui4j/doc/exampl
es/quickstart/Main
ってでて、サンプルソースを認識してくれない

指定方法が間違ってるんだろうか?

だれかおせーてください
0714デフォルトの名無しさん2005/07/29(金) 10:56:15
Swing用ツールの質問がなぜこのスレに?
0715デフォルトの名無しさん2005/08/02(火) 13:49:45
質問です。
SWT3.0@Windowsでシステムトレイを使ったアプリを作っています。
トレイのクリックイベントを拾うために
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
な処理が必要ですが、これと平行して別なクラスで処理をさせたいため
システムトレイ系の処理をまとめたこのクラスをスレッド化したところ
display.readAndDispatch() で org.eclipse.swt.SWTException: Invalid thread access
と怒られてしまいます。

うまくスレッド化するにはどうすればいいでしょうか・・・。
0716デフォルトの名無しさん2005/08/02(火) 14:03:36
メル友になってください!
[email protected]
0717デフォルトの名無しさん2005/08/02(火) 14:18:50
Javaよく知らないですが、
別途キューを用意して、イベントはそこに放り込み、
個々のスレッドはそのキューからイベント取り込んでやればいいんじゃね?
0718デフォルトの名無しさん2005/08/02(火) 23:32:27
>>715
http://help.eclipse.org/help31/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/Display.html#asyncExec(java.lang.Runnable)
07197152005/08/03(水) 00:27:25
助言ありがとうございます。
実装してみます。
0720デフォルトの名無しさん2005/08/03(水) 00:35:22
>>715
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/faq.html#uithread
0721デフォルトの名無しさん2005/08/03(水) 00:37:25
>>715
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_07/eclipse07_3.html
07227152005/08/03(水) 00:58:57
うお・・・マジで感謝です
0723デフォルトの名無しさん2005/08/03(水) 13:25:29
半年前にSWT+Draw2Dで図形編集ソフトを作成しました。
情報が少なくってかなり苦労しました。
これがSWTを使った最初で最後の仕事になりそう。
Eclipseプラグインを作成する仕事まわってこないかな。
0724デフォルトの名無しさん2005/08/03(水) 13:27:04
それが最後の仕事になりそう。
0725デフォルトの名無しさん2005/08/09(火) 12:49:51
先生!
SWTで、マウスホイールがどれだけスクロールされたか知る方法ってありませんか?
0726デフォルトの名無しさん2005/08/10(水) 01:58:50
Spinnerって消えた?
0727デフォルトの名無しさん2005/08/21(日) 17:50:14
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/swt?page=Spinner
0728デフォルトの名無しさん2005/08/21(日) 18:20:06
GUIを作ろうってのに、ネイティブコードを吐かないから
普及しないんだよ。

馬鹿でかいランタイムが必要なソフトなんぞ誰が使うか。
せいぜいツールどまり。

jarダブルクリックすると解凍処理始めるしな。。。
0729デフォルトの名無しさん2005/08/21(日) 18:48:39
>>728
jarダブルクリックで解凍しちゃうのはおまえさんが変なソフト入れてるからだろうが。
0730デフォルトの名無しさん2005/08/21(日) 18:49:10
デフォはjavawあたりじゃないかね
0731デフォルトの名無しさん2005/08/22(月) 21:24:49
ちょっと質問

SWTの日本語のAPIリファレンスってありますか?
探したけど見つからなかったorzオレダメポ
0732デフォルトの名無しさん2005/08/25(木) 22:54:30
>>731
俺もホスィ
ってかリファレンスつってもswingとあんま変わんないんじゃね?
SWTとか今日から気にするようになった俺がいってみる
0733デフォルトの名無しさん2005/08/26(金) 09:26:47
Swingとはちょっと違うな。 似せてあるけどね。
コンポーネントがプリミティブなのでTableModelとかの概念が無いし。
JFaceとセットで使うのがベターな感じだが、こっちはSwingとはぜんぜん違う。
0734名無しさん@そうだ選挙に行こう2005/09/11(日) 14:30:25
素朴な疑問なんですが、GCCにSWTでSwingAPIを実装したものが
同梱されているようですが、こんなものが出てくるのであれば、
SWTのテーブルとか機能的に不足しているコンポーネントの
機能強化は比較的スムーズに出来るのでは?と思うのですが、
そんなに単純ではないのでしょうか。。。
0735デフォルトの名無しさん2005/09/12(月) 12:16:13
質問です。
SWTってどうやって手に入れて、
どうやって使うんですか?
素人でごめんなさい
0736デフォルトの名無しさん2005/09/12(月) 12:56:28
>>735
Eclipseの配布ページからSWT〜.zipというファイルを落としてきて
ワークスペース内にインポート。自分が作るアプリのプロジェクト
からそれを参照する。
EclipseIDEに同梱されているSWTを使う人が多いがそれは本来は
推奨されていない。
0737デフォルトの名無しさん2005/09/13(火) 08:46:54
>>736
EclipseについてくるSWTチュートリアルでは、
EclipseIDEに同梱されているSWTを使うようになってたような気がるる。
0738デフォルトの名無しさん2005/09/13(火) 10:55:39
>>737
それはEclipseの配布物の一部だから、ビルド時に想定しているライブラリと
IDEのランタイムライブラリのバージョン不整合みたいな問題が
起こる可能性はないから問題ないと思うよ。

Run as... -> SWT applicationの機能が一時的に3.1のマイルストーン
ビルドから外れたことがあって、その際の議論でも開発陣から
ターゲットのプロジェクトに依存するものと、IDEのランタイムに依存するものは
切り離すべきだという主張がされてる。結局、要望に負けて
元に戻ったけど。
0739デフォルトの名無しさん2005/09/15(木) 01:01:15
swt-3.1-win32-win32-x86 を入れたのですが、

gc.setTextAntialias( SWT.ON );
gc.setFont( new Font( display, "Century", 128, SWT.NORMAL ));
gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
gc.drawText("ABC",0,0,true);

とかやっても、アンチアリアスがかからないようです。
gc.setAntialias( SWT.ON ); で、drawLine() 等を使うと効いているのですが・・・。
うまくいった方、いらっしゃいますか?
0740デフォルトの名無しさん2005/09/26(月) 23:15:26
質問です。
タイトルバーの縦のサイズって
どこかに定義されていないのですか?
0741デフォルトの名無しさん2005/09/30(金) 10:31:07
最小コンポーネント
0742デフォルトの名無しさん2005/10/22(土) 07:58:40
JFaceで1行にイメージやボタンを持つListを作りたいのですが
どうすれば良いのでしょうか?
0743sage2005/10/24(月) 21:40:04
javaでguiアプリ作るときって、生産性を考慮すると、当然のごとく、
画面ごとにclass分けする事になるけど、画面切り替えを高速にすると、
swtの場合はokだけど、swingの場合は2重起動しちゃう・・
やっぱり、sunってguiアプリの事とか、あまり考えてないんだよね・・
sunの尻拭いをibmがやってるという感じが・・orz
0744デフォルトの名無しさん2005/10/24(月) 21:44:56
jwsでswingとswtを起動してみたら、swingは前面に起動したけと、
何故かswtは背面に起動した。変なの・・。
0745 2005/10/25(火) 00:58:17
SWTのStyledTextで自動折り返しするにはwardwrapしかないの?日本語入力だと目に見えて処理が遅くなる。どうせ英語なんか使わないから単純な自動折り返しがしたいんだけど。
0746デフォルトの名無しさん2005/10/25(火) 21:50:20
>>743
どっちかというと、743がよくわかってないだけの気がする。
画面ごとにclass分けるとか分けないとか、関係ないと思うが。
0747デフォルトの名無しさん2005/10/25(火) 22:59:06
つーか意味ワカンネ>>743
0748デフォルトの名無しさん2005/10/28(金) 05:20:11
Tableの行高を変える方法は無いのでしょうか?
0749デフォルトの名無しさん2005/10/28(金) 07:16:20
setRowHeightとかその辺の話?
0750デフォルトの名無しさん2005/10/28(金) 07:23:37
すまん、swingスレと間違えた
0751デフォルトの名無しさん2005/11/14(月) 20:17:00
質問スレから移動してきました。

SWTのImageDataでwidthとheightの値を小さくすると画像の右と下を削れますが、
左と上を削るにはどうすればよいでしょうか。
0752デフォルトの名無しさん2005/11/14(月) 22:22:47
素直に再生成。
0753デフォルトの名無しさん2005/11/14(月) 23:16:04
できました。感謝します。
0754デフォルトの名無しさん2005/11/14(月) 23:18:01
最近は効率の面でSwingに追い抜かれた感があるけど
SWTってバージョンアップとかしてるの?
0755デフォルトの名無しさん2005/11/15(火) 01:10:46
特にVerUPの話とかは聞かないなぁ。
ていうか、Swingがここまで頑張るとは、SWT出始めの頃には思えなかったよ。

速さではもう勝負が分かりづらくなるところまで来ちゃったから、
今度は別の観点で勝負してほしいなあ。

何かあるかな
0756デフォルトの名無しさん2005/11/15(火) 01:15:09
当時だと1.3の時代で、Swingにハードウェアアクセラレーションがなかったのと
すべてpureJavaでかかれているためにVM自体の動作速度の差があった

それが1.4での速度向上やアクセラレーションの有無で一気に現実的になった

JNIは結構オーバーヘッドがあるのでSWTは更なる速度向上というよりは
機能をパワーアップさせようとJFaceに力を入れるというところだろうね

でも、JFaceやればやるほどこれならSwingのほうが高機能で楽となるので
びみょーになってきた感はある

SWTが流行ったというよりは中心プロジェクトのEclipseがヒットしただけという感じ
0757デフォルトの名無しさん2005/11/15(火) 01:50:51
このままEclipse内部に使われる変体ツールキットの立場で終わるには勿体ないぞ。SWT。
俺はSwingのような無駄に高機能なAPIよりすっきりしてて好きだが。
なんだあのツリーモデルとかテーブルモデルとか。Collection Frameworkに対応してないし。

SWTにはOLE連携とかDraw2Dとか、変わり種の特技を生かして生き残ってほしい・・・
0758デフォルトの名無しさん2005/11/15(火) 01:58:24
>>757
内外で使われるようになっても、それでは変体ツールキットのままじゃないですかw
0759デフォルトの名無しさん2005/11/15(火) 01:58:44
SWT生だけでの比較であれば別にSwingも面倒なことはないと思うぞ

それに所詮生API
ラッピングして使いやすくすればいいだけ
Win32API直だって面倒じゃないか

コレクションフレームワーク未対応なのはSwingは1.1のオプショナルパッケージを引きずっているからだよね
そろそろ対応してきてもいいはずだけど、同期処理が入っていたからたまたま動いていたアプリとか多そうだな

JavaSE6ではネイティブ描画対応だったっけ>Swing
どうなるか見もの
現状でも5.0以降ならSystemLAF綺麗なんで満足
0760デフォルトの名無しさん2005/11/15(火) 02:42:39
>>759
SWTをラップする立場にある物がJFaceだから、あれが進化したらSwingに対抗できるくらい流行るはず。
いや、単にドキュメントがSwing並に増えるだけでも結構勝負できるんでは?
Eclipseのタブやらツリーやら、結構綺麗でしょ。そういう魅力もある。

でも確かにSwingのネイティブ描画対応は魅力的

>>758
いや、だから内部だけで使える変体ツールキットを超えて、
いろんなソフトで使われる超変体ツールキットとしてな。

いや、なんか言いたいことと違う。もういいです。寝ようかな・・・・
0761デフォルトの名無しさん2005/11/15(火) 04:15:55
>>759
> JavaSE6ではネイティブ描画対応だったっけ>Swing
ネイティブAPIを使用して、以前よりもフォントとかアイコンとか
配色とかテーマとかの情報をちゃんと取ってるよって程度だと思われ。
0762デフォルトの名無しさん2005/11/16(水) 19:37:30
SWTのLinuxとWindowsの表示上の違いについて質問なんですが、
WindowsでチェックボックスのsetEnableのパラメータでfalseを指定すると、
チェックボックスの中は灰色になりますが、Linuxでは白いままです。
一応、両方ともチェックできない状態になるので、
機能としては働いてるようですが・・・
これは仕様なんでしょうか?
0763デフォルトの名無しさん2005/11/16(水) 20:27:24
すごく初心者な質問いい?
SWTやらSwing使ってJavaのGUIアプリ作るのはいいんだけど
拡張子が.exeのアプリって作れる?
jarは嫌だから
0764デフォルトの名無しさん2005/11/16(水) 21:08:55
やればできる
0765デフォルトの名無しさん2005/11/16(水) 22:05:19
>>763
ttp://jsmooth.sourceforge.net/
俺が知ってるのはこんなやつ。てかなんでjarはやなん?
0766デフォルトの名無しさん2005/11/16(水) 22:46:01
jarださい
exeかっくいー
それにjarのアプリなんて見たことないし
中身見られるしいややん
0767デフォルトの名無しさん2005/11/16(水) 22:52:49
Launch4J
http://oss.moongift.jp/intro/i-808.html

プロセス名もexe名になるのはいいね。
0768デフォルトの名無しさん2005/11/18(金) 04:12:35
CTabFolderで新しくタブが開かれたときに
そのタブを直ちにフォーカスするにはどうすればよいでしょうか。
0769デフォルトの名無しさん2005/11/18(金) 04:19:27
すみません。自己解決しました。
CTabFolder#setSelection(CTabItem arg0)
0770デフォルトの名無しさん2005/11/18(金) 05:45:45
>>11にあるSWTFanclubってなくなったの?
今まで見れたことないんだけど・・・
0771デフォルトの名無しさん2005/11/18(金) 12:07:21
>>770
mobster.jp自体が去年の10月くらいから切れてる。
0772デフォルトの名無しさん2005/11/18(金) 12:51:51
>>763
exewrap
0773デフォルトの名無しさん2005/11/22(火) 14:21:36
GEFを用いて、あるActionが発生すると付随して別のActionが自動的に起こるように
したいのですが、可能でしょうか?

具体的には、Modelを1つつくると、既にあるModelに勝手にConnectionを貼るという
動作をさせたいです。
0774デフォルトの名無しさん2005/11/22(火) 15:18:42
>>774
普通に最初のモデル作るときに同時にコネクション張ればイイだけじゃないの?
07757732005/11/22(火) 16:54:45
>>774さん
どう見ても自己レスです。
本当にありがとうございました。

確かに、Modelの生成時にあればいいですね。
Modelを設計し直すことにします。
0776デフォルトの名無しさん2005/12/03(土) 18:24:03
だいぶ上の方の書き込みで
「独自生成して親を持たないWidgetは、明示的にdispose()する必要がある。」
ってあるけど、たとえば下の例

Display display = Display.getDefault();

Shell shell = new Shell(display);
shell.open();

Tray tray = display.getSystemTray();
TrayItem trayItem = new TrayItem(tray, SWT.NONE);

while (!shell.isDisposed()) {
  if (!display.readAndDispatch()) {
    display.sleep();
  }
}
display.dispose();

だと、trayは明示的にdispose()してないからメモリに残っちゃうわけ?
それとも、最後のdisplay.dispose()で全部いっしょにdispose()されるの?
0777デフォルトの名無しさん2005/12/03(土) 20:18:48
リソース管理で疑問に思ったらsleakで確認すること。
0778デフォルトの名無しさん2005/12/04(日) 14:10:09
swingのJInternalFrameにswtのBrowserを表示することは可能ですか?
もし可能であれば、その方法を教えてください。
0779デフォルトの名無しさん2005/12/04(日) 16:01:52
Frameの中にBrowserを貼り付けるのはやったことある。SWT_AWTつかって。
これ使うとappletにいろいろSWTウィジット貼り付けられて面白いが
実用性はないんだよな。
0780デフォルトの名無しさん2005/12/04(日) 19:59:22
swtのBrowser貼り付けるなら、JDICでネイティブブラウザー埋め込んだほうがいいかも。
07817782005/12/04(日) 21:57:14
さっそくJDIC試してみました!
これ!これを待ってましたって感じです。
Windowsネットワークを使用してのフォルダやファイルに簡単にアクセスする方法が
ネイティブブラウザを使うことしか思い浮かばなかったもので。

教えてくださり感謝です。

0782デフォルトの名無しさん2005/12/06(火) 16:35:38
Linuxでテキストボックスを使ったプログラムを作成し
テキストボックスに日本語を入力すると□□□になってしまうんですが
どうしたらいいでしょうか?
ソースの文字コードとか関係あるんでしょうか?
0783デフォルトの名無しさん2005/12/06(火) 18:34:20
>>782
Linuxにインストールしたjavaランタイムの文字フォント設定の問題かもしれないよ。
0784デフォルトの名無しさん2005/12/07(水) 20:57:39
>783
ググってみたんですがjavaランタイムの文字フォントの変更とか設定について
載ってるページが見当たらないんですが、何かいい参考サイトありませんか?
■ このスレッドは過去ログ倉庫に格納されています