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

Java 高速GUI SWT 2

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさんNGNG
全スレ

http://pc2.2ch.net/test/read.cgi/tech/1032448424/
0002デフォルトの名無しさんNGNG
SWTなんぞ役に立たんわい
0003デフォルトの名無しさんNGNG
関連スレ

Java低速GUI Swing
http://pc2.2ch.net/test/read.cgi/tech/1062271447/
0004デフォルトの名無しさんNGNG
Swingも糞。
こんなの使う暇があるならVBのほうがまし。
0005デフォルトの名無しさんNGNG
>>1
乙
0006デフォルトの名無しさんNGNG
age
0007デフォルトの名無しさんNGNG
JavaのGUI自体がマイナーなんだから、参考資料くらい出してくれろ

SWTサンプル集
http://www3.vis.ne.jp/~asaki/java/eclipse/swt.html
0008デフォルトの名無しさんNGNG
このすれ、待ってたよー。
0009デフォルトの名無しさんNGNG
SWTに限った話じゃないけど、このスレの人がSWTを使って作ったアプリを固めて
Jarファイルを作ろうとしたときにハマるかもしれないので、自分の失敗をカキコ。

Jarファイルをダブルクリックして、「 javaw -jar xxx.jar [引数] 」が実行されると、
クラスパスは xxx.jar のみが指定された状態になる。swt.jarを見つけられる
ようにするには、MANIFEST.MFにClass-Pathを指定する行を(相対パスで)追加すれば良い。

Main-Class: packagename.MainClassName
Class-Path: swt.jar

これでxxx.jarと同じディレクトリに置いたswt.jarが認識されるようになる。

_| ̄|○ < 認識されない……何故だ……まさかこれが噂の……「日ごろの行い」というやつかッ!?

Jarファイル作成時にインデックスリストの作成(JDK1.3から追加された機能で、
起動を高速化してくれるらしい)を指定するとClass-Path指定が無効になるっぽいです。
0010デフォルトの名無しさんNGNG
Snippets
http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
Java Web Startを使用して、SWTアプリケーションを配置する
http://www-6.ibm.com/jp/developerworks/opensource/030822/j_os-jws.html
Standard Widget Toolkit (SWT) - Standalone Examples Manual Setup
http://www.eclipse.org/documentation/html/plugins/org.eclipse.platform.doc.isv/doc/samples/org.eclipse.swt.examples/doc-html/swt_manual_setup.html
0011デフォルトの名無しさんNGNG
SWTFanclub
http://www.mobster.jp/wiki/index.jsp?pid=SwtFanclub

Java wiz SWT
http://cutie.dip.jp/pc/java/swt/

SWTでカスタムウィジェットを作る(翻訳)
http://hp.vector.co.jp/authors/VA035113/swt_custom_widgets/swt_custom_widgets.html

SWTにおけるレイアウトを理解する(翻訳)
http://mu.dns-tokyo.jp/layout/Understanding%20Layouts%20in%20SWTjp.htm

NCI Java同好会 カテゴリ : JFace
http://www3.vis.ne.jp/~asaki/java/wiki/wiki.cgi?p=JFace

JFaceの情報がホスィ・・・
0012デフォルトの名無しさんNGNG
http://www-106.ibm.com/developerworks/java/library/j-nativegui2/
このページを観て、gcj+swtのプログラムをexeに変換しようとしています。

ウィンドウズでgcjができる環境を構築し、antを入れました。

SWTをびるどするところまでこぎつけ、
ant -Dos=win32 -Dwindow_system=win32
を実行したのですが、どうも、swtsrc.zipを解凍した物が、
コンパイルできないらしく、

j-nativegui2\Library\org\eclipse\swt\widgets\
Control.java:1763: シンボルを解決できません。
[javac] シンボル: 変数 hdwp
[javac] 場所 : org.eclipse.swt.widgets.Composite の クラス
[javac] parent.hdwp = hdwp;
[javac] ^
[javac] エラー 23 個

というエラーが出てしいます。

上記のHPをみて、成功された方、情報をお願いします。。。
001311NGNG
関係ないかもしれないけど、gcj でWin32ネイティブ作りたいならこっちをどうぞ・・・
http://page.freett.com/gikob/gcj/gcjswt.html

漏れはGCJが訳分からんエラー大杉なんでant + GCJは諦めました。
まだJETのほうが楽でつ・・・
001412NGNG
>>13
ありがとうございます!
やっとexeファイル作成できました。

でも、8M。。。。。
swt.o 自体が7Mあるからしょうがないんですね。
0015デフォルトの名無しさんNGNG
ネイティブなクロスプラットフォームGUIアプリケーションを作成する (再考)
http://www-6.ibm.com/jp/developerworks/java/030711/j_j-nativegui2.html
0016デフォルトの名無しさんNGNG
Listで選択した項目によってイベントを起こしたいのですが、そのようなリスナーはあるでしょうか?
0017デフォルトの名無しさんNGNG
UKうざすぎ。
0018デフォルトの名無しさんNGNG
>>16
普通にSelectionListener使えば?
0019デフォルトの名無しさんNGNG
レイアウトをセットしてShell.openでウィンドウを開いたのですが、フラグが立つと同時にレイアウトを作り直して再表示するという処理が思い浮かびません。
教えていただけないでしょうか?
0020デフォルトの名無しさんNGNG
個人的に期待age
0021デフォルトの名無しさんNGNG
Swingやら SWT 2 やらGUIの部分もまともに統一されていないような言語を初心者にいろいろ理屈つけて薦めるやつがいる。
0022デフォルトの名無しさんNGNG
GUIがまとまってる言語しかすすめちゃいけないのか
0023デフォルトの名無しさんNGNG
だめだろうね。初心者だよ?そんな高速やら低速やら2種類も3種類もあって、パワーユーザーさえも成功やら失敗やら情報交換しなきゃまともにプログラム組めない。
俺が初心者ならそんな言語勉強するのはごめんだね。
0024デフォルトの名無しさんNGNG
香ばしい香りに誘われてきたらなるほど痛いレスがありますな
0025デフォルトの名無しさんNGNG
JAVA=初心者不向き
そういうスレじゃないの?
0026デフォルトの名無しさんNGNG
釣りは放置で。
0027デフォルトの名無しさんNGNG
>>26
一匹目。
0028デフォルトの名無しさんNGNG
なんでもいいが、とりあえず金かけずに、プログラム作ってるなぁ
っていう雰囲気を味わいたいだけなんだよ。
0029デフォルトの名無しさんNGNG
無限ループしてるスレッドからGUIに対してボタンを変更するなどの処理をしたいのですがThread.runに対してNULL Pointerエラーが起こってしまいます。
全くわからなくなってしまったので教えて下さい。
お願いします。
0030デフォルトの名無しさんNGNG
ここは初心者質問スレじゃないが、
C#ならそんな悩みも無用。
C#Builderというフリーの環境がBorlandからでています。
0031デフォルトの名無しさんNGNG
SWTって何て読めばいいの?
エスダブルティ?
0032デフォルトの名無しさんNGNG
>>31
多くの人間は「ソート」と読む。
0033デフォルトの名無しさんNGNG
>>32 読まねーよ。
0034デフォルトの名無しさんNGNG
そもそも何の略なんだか。
0035デフォルトの名無しさんNGNG
>>34
Sun Wa Tsukaene-
0036デフォルトの名無しさんNGNG
ぬるぽ。
0037 NGNG
SWTとC#でつくるGUIはどっちが反応速度とか快適なの?
0038デフォルトの名無しさんNGNG
>>31 スワットだろ
0039デフォルトの名無しさんNGNG
>>29
もちついてゆっくりサンプル等まじえつつ順を追って用語の不適切な省略や自分用語を使わずに説明してみそ。
個人的にはNullPointerExceptionならなんらかのコーディングミスっぽいと思うのだが。
ttp://www3.vis.ne.jp/~asaki/java/eclipse/swt.html#thread
とかも見た?
0040デフォルトの名無しさんNGNG
>>37
C#
0041 NGNG
>>40
ありがとう。
でも金ないしJavaの本なら最新のが図書館でたくさん借りられるし
オープンソースのプログラムがたくさんあるからJava勉強するつもりだけど。
Eclipseにも感動したし。
いつかEclipseのソースを読んでみたい。
でもC#も魅力的だな。
004229NGNG
>>39
試行錯誤していろいろ試しているうちにコンパイルが通って
できるようになりました。
原因はさっぱりわかりませんでしたが、できたので
まあ一応よかったと思います。
アドバイスありがとうございました。
0043デフォルトの名無しさんNGNG
>>41
サーバサイド技術に関心があるなら止めないが
もともとの質問はGUIのことだよね?
GUIに関心があるならEclipseは無力だしまともな本はない
0044デフォルトの名無しさんNGNG
>>29=42
コンパイルエラーはエラーのうちに入らない

>試行錯誤してるうちに原因はわからないもののできた
こういうのが一番やっかい
よかったとか言ってる場合じゃないぞ
0045デフォルトの名無しさんNGNG
VisualEditorProjectで
ttp://www.eclipse.org/vep/
VE0.5.0RC2がでていたりするが
some of the foundations for the SWT-based GUI editor reference implementation
とのことなのでまだまだなのかな?
だれか試した香具師おる?
0046 NGNG
>>43
サーバサイド技術に関心はないんだけど
いつか自分で(アウトライン)エディタを作ってみたいなと思ってて
Eclipseに感動したんです。
既存のEDITコンポーネントを貼り付けただけのじゃなくて
バッファの管理からテキスト出力まで自分で作って
補完や自動インデントや構文を認識してのアシスト機能のあるやつが夢です。
だからGUI以上に内部の構造やアルゴリズムにも興味があるんです。

でもC#の方が言語的にもGUI構築にもいいって聞いたので
ちょっと気になって質問してみたんです。
どうもありがとうございました。
0047デフォルトの名無しさんNGNG
>>46
ぜひ、Eclipse のプラグインで作ってくれ。
0048デフォルトの名無しさんNGNG
巨大ソフトの八苦を夢見てプログラムの勉強を始めたって香具師で
その頂上を極めたと言う話は聞いたことがない。
せいぜいある程度使えるようになった段階で自分の無力さを痛感して
厨房なアルゴリズムで『自作』を前面に出してくるのが関の山。
0049デフォルトの名無しさんNGNG
>>48
それだったら最初から妙な野心など捨ててしまって、
一番向いている言語から手を出して、
出来る範囲で試行錯誤すればいいだろ。
昔なんかそれが問答無用でBASICだったんだぞ。
0050デフォルトの名無しさんNGNG
>>49
は?最初からそのつもりですが何か?
0051デフォルトの名無しさんNGNG
>>48
最近は『自作』だと厨房の戯言として無視されると気付いたらしく
みんなで作っているかのような共同体幻想を背景に『和製』と名乗るのが通
『国産』よりも『和製』、それが通
0052デフォルトの名無しさんNGNG
>>51
通じゃなくて厨の間違いだろ(ゲラ
0053デフォルトの名無しさんNGNG
国産牛より和牛、ってか?
0054デフォルトの名無しさんNGNG
>>53

元ネタ
ttp://kyoto.cool.ne.jp/thinksoft/

ウォッチスレ
http://pc.2ch.net/test/read.cgi/os/996051906/

後継者たち
http://pc.2ch.net/test/read.cgi/os/1039237412/
0055 NGNG
みんな使ってないの?
0056デフォルトの名無しさんNGNG
improved tableマダー?
https://bugs.eclipse.org/bugs/show_bug.cgi?id=37998
0057デフォルトの名無しさんNGNG
結局、SWTってのはどうなの?芽が出そう?
0058デフォルトの名無しさんNGNG
>>57
だめぽ。
0059デフォルトの名無しさんNGNG
SWTイイと思うんだがなぁ
0060デフォルトの名無しさんNGNG
1.4.2がもう少し遅ければ。
0061デフォルトの名無しさんNGNG
awt廃止でいいから、1.5にくみこんで。
0062デフォルトの名無しさんNGNG
SWTがあまり人気が出ないのはどんな理由があるんだろうか
Swingと違い、速いというのはEclipseでSWTに興味のない人にも理解されてると思う
1,SWTの日本語ドキュメントがない、もしくは少ない
2,Swingに慣れ親しんでいるので新しいAPIを覚える気がでない
3,Swingと比べてクラス設計がダメダメ
4,JavaなのにネイティブAPI使うから気持ち悪い
5,SWT? Swingで十分だしどうでもいい

書いてみると結構全部該当するんかなぁとか思ったり
適材適所だけどもうちょっとSWTが普及すればJava使う人もそのソフトを使う人もハッピーになれる場合があると思う
0063デフォルトの名無しさんNGNG
6,そもそもJavaのGUI自体の需要が少ない
0064デフォルトの名無しさんNGNG
7,新参者のAPIはまだまだ様子見
0065デフォルトの名無しさんNGNG
8,そもそもEclipseなんか誰も使ってないのでSWTは知られていない
0066デフォルトの名無しさんNGNG
9,JavaはC#に駆逐されて誰も使ってない
0067デフォルトの名無しさんNGNG
9,配布する場合、JREに加えSWTのjarを考慮するのがめんどくさい。
0068デフォルトの名無しさんNGNG
悪いところを逆に考えて、アピールしていく姿勢が必要だと思う。

1,SWTの日本語ドキュメント>ttp://www3.vis.ne.jp/~asaki/java/eclipse/swt.html
2,糞Swingに慣れ親しみたく無い方はSWTを覚えよう!
3,Swingと比べてクラス設計がC++ライクでとっても素敵!
4,JavaなのにネイティブAPI使うから高速!
5,Swingよりシンプルで高機能なSWTを覚えて夢の高収入!
6,SWTでJavaのGUI需要激増!
7,最新のAPIがJava勢力図を塗り替える!
8,業界のデファクトスタンダードIDE、Eclipseの軽快さに
 Javaプログラマは皆SWTに興味深々!

こんなもんか。
0069デフォルトの名無しさんNGNG
1の日本語ドキュメントってそのページじゃ全然足りないだろw
つーかそのほかも強引すぎてアヤシイ広告みたいだな・・
0070デフォルトの名無しさんNGNG
前9, JavaはC#が現れたころからより安定し、ますます健在!
後9, ユーザの要望を満たす高性能GUIを提供するswt.jar!JavaWebStartとも相性最高!

>>69
ネガティブより、ポジティブすぎるくらいのほうが良いでしょ。
0071デフォルトの名無しさんNGNG
流れを無視して技術系の質問もここでいいんかな?

SWTでShellやImage、ColorとかDisplayを引数に要求してるけど別にnullでもいいよね
Displayって具体的にどういう役割のもの?
サンプルみるととりあえずnewしてImageとかの引数に使ってるけど
0072デフォルトの名無しさんNGNG
Displayクラス

このクラスのインスタンスは、SWTと根本的なオペレーティング・システムの
関係を管理します。
Displayクラスの一番重要な機能は、プラットフォーム固有のイベントモデルで
SWTイベントループを実装することです。
また、Displayクラスはオペレーティング・システムに関する情報に
アクセスする様々な方法を提供し、SWTが取得するOS寄りの資源に対する
全面的な管理を行います。
0073デフォルトの名無しさんNGNG
>>71
という大事なクラスらしいので、
将来ぬるぽが出ないように、ちゃんと引数に渡すが吉。
007471NGNG
ふむ、APIドキュメントみてもよくわかんないメソッドが並んでるけどまぁサンプル通りちゃんと渡した方がイイってことかぁ
サンクスー
0075デフォルトの名無しさんNGNG
>>62
SWT ○ 速い × 非標準 新参者 ツールがない
Swing ○ 標準 枯れてきた ツールがある × 遅い

速さは神だったので、SWTが期待されたけど、JDK1.4.2でSwingが速くなって、SWTのデメリットを考えたときの魅力が少なくなった。

0076デフォルトの名無しさんNGNG
JFaceの何かいい本ないかねぇ。
0077デフォルトの名無しさんNGNG
Eclipse関連の本って最近多く出ているね。
SWTを詳しく扱ったものはまだ少ないのかなー?
0078デフォルトの名無しさんNGNG
>>77

本にするほどの書くこと無い
0079デフォルトの名無しさんNGNG
ScrolledCompositeについてお聞きしたいと思います。
ScrolledCompositeの上にComposite1を配置し、その上にさらにComposite2を配置したいのですが
何故か反映されず、Composite1しか表示されません。
どなたか原因をご存知の方ご教授お願いします。

※Composite2上にはさらにLabe等lを配置したいと思っています。
0080デフォルトの名無しさんNGNG
Textでカーソルのある行だけを抜き取る事って出来る?
Text.getText(int start, int end)だと、行単位が難しいよねえ。。
0081デフォルトの名無しさんNGNG
Eclipse3.0M6からの、SWTへのSwing埋め込みを試してみた人レポートよろ
0082デフォルトの名無しさんNGNG
>> 81
ttp://download2.eclipse.org/downloads/drops/S-3.0M6-200312182000/eclipse-news-part1-M6.html

3.0M6落とすの面倒なんで,試してはいないけど...
0083デフォルトの名無しさんNGNG
The Definitive Guide to Swt and Jface

http://www.amazon.co.jp/exec/obidos/ASIN/1590593251/qid%3D1074100588/250-3696692-4601018

発売されるのは今年の4月らしいけど期待。
0084デフォルトの名無しさんNGNG
ウィンドウ上にCanvasとTextがある状態で、

canvas.addKeyListener(new KeyAdapter(){
    public void keyPressed(KeyEvent e){
        if (e.character == 15 && e.stateMask == SWT.CTRL){
            hoge();
        }
    }
text.addKeyListener(new KeyAdapter(){
    public void keyPressed(KeyEvent e){
        if (e.character == 111){
            hogehoge();
        }
    }
とすると、canvasのほうでは、意図したとうりに動くのですが、textのほうでは「o」を押しても
hogehoge()が実行されません。逆にtext.addKeyListenerを最初にもってきて、canvas.addKeyListener
を下にもってくると、textのほうでは意図したとうりに動くけどcanvasでは動かないというまったく逆
の症状になります。
両方でaddKeyListenerが働くようにするにはどうしたらよいのでしょうか?
0085デフォルトの名無しさんNGNG
KeyListener を一つだけ作って両方に addKeyListener してやればいいんでないの
008684NGNG
レスさんくすです。

>KeyListener を一つだけ作って両方に addKeyListener してやればいいんでないの
まったくそのとうりでした。ありがとうございます。
008785NGNG
意図した「とおり」
その「とおり」

と正しい日本語を書いてくれ。
0088デフォルトの名無しさんNGNG
>>87
まったくそのとうりですよね。
008984NGNG
>>87
いちいちうるせぇんだよ!! 老人か?テメェは?
そんな細かいこと気にしてられるかよ!!!!!!!!
0090デフォルトの名無しさんNGNG
84 は良かったね。リアルで恥じかく前に 2ch で教えてもらえて。
0091デフォルトの名無しさんNGNG
>>89
おまえのゆうとうりです。
バカだから、そこまで気がまわらないんだよね。
0092デフォルトの名無しさんNGNG
>>89
少なくともプログラムを書くものとして
細かいことを気にしてられないというのは致命的だ。
0093デフォルトの名無しさんNGNG
>>89
for 文を far と書いているようなものだな。
0094デフォルトの名無しさんNGNG
>>92
×られない
○いられない
0095デフォルトの名無しさんNGNG
>>84 と >>94 はコンパイラ。
細かい文法違反も見逃さない。
ただし、文法以外は何も指摘してくれないから注意な。
0096デフォルトの名無しさんNGNG
>>93

ちなみに俺はよく「abstract」を「abstruct」と書き間違えるぞ
0097デフォルトの名無しさんNGNG
>>94 は警告レベル高過ぎないか。
×じゃなくて△程度にしとけよ。
0098デフォルトの名無しさんNGNG
>>96

ちなみにabstractは全部左手だからちょっと打つのうざい。
0099デフォルトの名無しさんNGNG
a[Ctrl+Space]
0100デフォルトの名無しさんNGNG
>>99
(・∀・)
0101デフォルトの名無しさんNGNG
保守sage あまり使ってる人いないのかねぇ、、、淋しいよ。
0102デフォルトの名無しさんNGNG
SWT Tips and Samples - Java + SWT でスタンドアローンアプリケーション開発
http://cjasmin.fc2web.com/
0103デフォルトの名無しさんNGNG
↑素敵
0104デフォルトの名無しさんNGNG
Eclipse3.0でのSWT/JFaceの変更点がまとまっているサイトって、
どこかにありませんか? 英語でもいいです。
0105デフォルトの名無しさんNGNG
>>104
実際にどういう変更があったかは各milestoneのNew and Noteworthyを見る。
最終的にどういうことが予定されているかはそれぞれの3.0planを見る。
0106デフォルトの名無しさんNGNG
>>105
やはりそうでつか……。がんがって読みます。
0107デフォルトの名無しさんNGNG
>>106
ttp://download2.eclipse.org/downloads/drops/S-3.0M6-200312182000/index.php
ここからSWT Binary and Sourceを落として自分で解析するっていうのはだめかい?
0108デフォルトの名無しさんNGNG
Swing で書かれた、比較的小規模なアプリを
SWTにポーティングしたのだが、かなり大変な作業だな。

もとのアプリで、GUIと処理系のアルゴリズムを
完全に切り放していたので、Swingで構成された GUI 用の
パッケージを丸々SWTでリライトすれば動くと踏んだのだが、
その、リライト自体が大変だった。

で、リライトが終わったら、結局メイン側もリライトが入った。
元のプログラムがピークで20本以上のスレッドが立って、
それらが表示の更新をしていたため、
インスタンス生成時とは別のスレッドで表示の更新を行なうときは、
display.syncExec(...
しないとダメだということで、ローカル変数で処理していたものを
クラスフィールドに昇格。

SWT のものを Swing に持って行くのは楽だろうが、逆はきつい。
SwingWTは、内部で相当リソースの無駄な消費を
しているんじゃないだろうか?
0109デフォルトの名無しさんNGNG
>>108

> インスタンス生成時とは別のスレッドで表示の更新を行なうときは、
> display.syncExec(...
> しないとダメだということで、ローカル変数で処理していたものを
> クラスフィールドに昇格。

ごめん,よく分からないんだけど,ただ単にローカル変数の内容をどこかに
表示するだけなら

void methodA(){
  final int value = 0;

  display.syncExec(new Thread(){
    public void run(){
      <valueを表示する>
    }
  });
}

みたいに書けばいいんでは? 見当違いのこと言ってたらすまんです。
0110デフォルトの名無しさんNGNG
つーか、Swingでも
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/SwingUtilities.html#invokeLater(java.lang.Runnable)
しなきゃいけないパターンじゃないか?
0111デフォルトの名無しさんNGNG
>>109
こんな感じ。
結局ローカル変数を一時的に保存するのではなく、
インスタンスを丸ごと抜いたよ。
該当箇所のクラスがいっぱい出来てしまった。典型的なパッチ当てって感じ。
もっといい方法があるかもしれない。

< Swing 時 >
class Class{
 private JLabel[] xx[沢山];
 Class(){
  // xx[沢山]を初期化
 }
 // 他のスレッドがこいつを使いまくる。
 public void changeText(int num, String str) {
  xx[num].setText( str )
 }
}

< SWT:これはコンパイル失敗 >
 // 他のスレッドがこいつを使いまくる。
 public void changeText(int num, String str) {
  display.syncExec(new Thread(){
   xx[num].setText( str ); // num が未定義でエラー。
   // 108 を書いたときはテンポラリーのクラスフィールドに num を保存して対処。
  });
 }
続く...
0112デフォルトの名無しさんNGNG
続き
< SWT:インスタンスを引っ張り出す >
 // 他のスレッドがこいつを使いまくる。
 public void changeText(int num, String str) {
  display.syncExec(new SetText( xx[num] , str ) );
 }
 private class SetText implements Runnable {
   private JLabel l;
   private String str;
   SetText(JLabel l, String str){
    this.l = l;
    this.str = str;
   }
   public void run() {
    l.setText( str );
   }
 }
0113109NGNG
自分で動作を確認した訳じゃないんだけど,ぱっと見た感じではこんな感じのコードでも
動きそうな気がするんだけど,これだと何か問題があるんでしたっけ?

public void changeText(int num, String str) {
  final Label label = xx[num];
  final String string = str;
  display.syncExec(new Thread(){
    public void run(){
      label.setText( string );
    }
  });
}

一応自分が問題にしてるのはローカルインナークラスのインスタンスからのfinalを付けた
ローカル変数の参照の方です。
0114デフォルトの名無しさんNGNG
>>111 そもそも元のSwingのコードのほうだけど、
JLabel#setTextって非AWTスレッドから呼んでいいわけ?
ttp://www-6.ibm.com/jp/developerworks/java/010427/j_j-thread.html#7
0115108NGNG
>>110
>>114
おっしゃるとおりのような気がしてきた。
自分の放談に指摘をしてくれてありがとう。
0116デフォルトの名無しさんNGNG
>>109
改良ソースありがとう。
invokeの件と混みで自分のソースを改造してみるよ。

初めて2ちゃんのスレで書いたけど、
みんな親切なので驚いたよ。
0117デフォルトの名無しさんNGNG
ちゃんとした話題に飢えてて…
0118デフォルトの名無しさんNGNG
SashFormのボーダのサイズを変えるにはどうすればいいのでしょうか?
SASH_WIDTHというメンバがありますが、これを変えても変化ないみたいです。
0119デフォルトの名無しさんNGNG
結局、一時のブームに過ぎなかったな。
0120デフォルトの名無しさんNGNG
だね。
Swingが速くなったからSWTいらないって言ってるし。
PCが速くなったからSwingのデメリットは消えたって言ってるし。
Swingの方がAPIが美しいから云々って言ってるし。
0121デフォルトの名無しさんNGNG
>120
それ誰が言ってたの?
言ってることは正しいと思うけど
0122デフォルトの名無しさんNGNG
>>121
2ちゃんのスレです。どこのスレかは忘れました。
0123デフォルトの名無しさんNGNG
>>122
なるほど、サンクス。

Eclipse自体はとっても素敵なんだが、どーもSWTが好きになれないんだよな。
「先生、Linux上でだけテキストの端っこがちょちょ切れます」とかイヤだな
Javaの思想に合ってない気がするし。

「EclipseがSWT捨ててSwingに移行する」
↓
「んじゃあNetBeansも一緒にやろうやってんで統合」
↓
「ウマー」

ってなればいいのにな
0124デフォルトの名無しさんNGNG
SWTのSwingに対する利点は私が知るだけでも3点あります。

1ネイティブコードソフトウェアとGUIの仕様が同じである(最重要)
 SwingのGUIと各OS本来のGUIに違いがあるのでGUIソフトウェアのユーザがSwingを嫌います。
 ソフトウェアを作らないユーザは開発側の都合で操作方法が異なることを受け入れません。

2動作が速い
 Swingが遅すぎるのでGUIソフトウェアのユーザがSwingを嫌います。
 これについてはSwingの速度向上で自然消滅するでしょう。

3GCJやMingw GCJでネイティブコードに変換できる
 GCJはJavaソフトウェアをSWTも含めネイティブコンパイルできますが、
 AWTをコンパイルできません。当然Swingもだめです。
 SwingでなくSWTを選べばJRE不要のネイティブコードソフトウェアを作れます。
 Fedora Core 2ではより多くのGCJを利用したJavaソフトを含む予定です。
 (AWTとSwingを使用しないもの限定。Ant, Tomcat, Jakarta, Eclipseなど。)

 Fedora Core 2 Schedule
 http://fedora.redhat.com/participate/schedule/
 >more Java software using gcj (Ant, Tomcat, Jakarta, Eclipse, but not Mozilla plugins, AWT, or Swing),

Swingの速度向上でアマチュアJavaプログラマーのSWTブームが去っても
広く使われるGUIソフトウェアではSWTが使われていくのではないでしょうか。
0125デフォルトの名無しさんNGNG
>>124 ネイティブコンパイルの件はあくまでもGCJに限った話だよね。
JETのAWT対応もライセンスの関係でJREのDLLだけ抜き出して配布
できないからJRE丸ごと必須ってことらしいし、IBM自身もAWTアプリ
をネイティブコンパイルできるJava(J2ME)環境を出しているし。
まあ後者はSWTの上にAWTを乗っけているわけだけど。
0126デフォルトの名無しさんNGNG
>>124
GNU classpath には AWT も Swing もアルファ版品質程度のがあるから
GCJ でネイティブコンパイルされた AWT アプリ作ろうと思えば作れるんだけどね…

SWT でネイティブコンパイルすれば JRE 不要っても
SWT のランタイム自体は必要になるし。
0127デフォルトの名無しさんNGNG
>>126
GNU Classpath の Swing ってまともに動いたっけか?
0128デフォルトの名無しさんNGNG
>>126
> SWT でネイティブコンパイルすれば JRE 不要っても
> SWT のランタイム自体は必要になるし。
何が言いたいんだ?
JREの代わりにSWT のランタイムごときで済むのがありがたいんだろ。
0129デフォルトの名無しさんNGNG
>>128
ネイティブコンパイルされた実行形式が結構でかいからサイズでも大してアドバンテージないし、
配布時にライセンス気にしなきゃいかんとか、そーゆー手間も考えると大して変わらん。
0130デフォルトの名無しさんNGNG
それは手間の質が違うだろうに・・・
0131デフォルトの名無しさんNGNG
今更引き下がれなくなってるだけか。
0132デフォルトの名無しさんNGNG
TextViewerでIMEの表示がずれてしまうのですが、
どうすればいいのでしょうか?Windowsでやっています。

おねがいします。
0133デフォルトの名無しさんNGNG
>>130
違うか?
0134デフォルトの名無しさんNGNG
>>132
バージョンは? 3.0系だとM6あたりまでは
https://bugs.eclipse.org/bugs/show_bug.cgi?id=45149
が存在する。
0135デフォルトの名無しさんNGNG
>>134
どうもありがとうです。
まだよくわかってませんが、いろいろ調べます
0136デフォルトの名無しさんNGNG
実際問題、Eclipse以外、SWT使ったAPを見かけない罠。
0137デフォルトの名無しさんNGNG
もっと使われてもいいと思うけどね。
何かと評判の悪いOracleのインストーラや管理ツールもSWTだったら良いのに。
0138デフォルトの名無しさんNGNG
IBMは(少なくとも表立っては)SWTを普及させようとはおもってない
よね。WSADのインストーラもJavaベースだけどSWT使ってないし、
SWTアプリケーションの開発自体、サポート外。IBMのnewsgroupでSWT
の質問した人は「サポート外だからeclipse.org行け」って返事されてるし。
あとはRCPの完成度がどれくらいになるかだな。
0139デフォルトの名無しさんNGNG
>>126
>GNU classpath には AWT も Swing もアルファ版品質程度のがあるから

swing使えんの?
0140デフォルトの名無しさんNGNG
自分で書くなら、Swingがいい
自分が使うんだったら、SWTの方が嬉しい

皆さん頑張ってSWT普及させて下ちい
0141デフォルトの名無しさんNGNG
>>140
確かにそんな感じかもね。
0142デフォルトの名無しさんNGNG
>>139
試してみりゃわかる
0143デフォルトの名無しさんNGNG
TextViewerの使い方が全然わからないよ(;´Д`)
0144デフォルトの名無しさんNGNG
SWTを使ったエディタでショートカットを実装しようと思ったんですが、
CTRLキーを押しながら「A」を押したときに「A」を判別する方法が分かりません。
似たようなことをしているjfaceのActionクラス関連のソースを見ましたが、
どこで判別してるのか突き止められませんでした。
回答でもヒントでも構わないので、何か知ってる人はいませんか?
0145デフォルトの名無しさんNGNG
>>143-144
同一人物かどうかわからんけど、まとめると
public class TextViewerWindow extends ApplicationWindow {
 public TextViewerWindow() {
  super(null);
 }
 public static void main(String[] args) {
  ApplicationWindow w = new TextViewerWindow();
  w.setBlockOnOpen(true);
  w.open();
  Display.getCurrent().dispose();
 }
 protected Control createContents(Composite parent) {
  TextViewer viewer = new TextViewer(parent, SWT.BORDER);
  Document doc = new Document();
  doc.set("ぬるぽ");
  viewer.setDocument(doc);
  viewer.getTextWidget().addKeyListener(new KeyListener() {
   public void keyPressed(KeyEvent e) {
    if (e.stateMask == SWT.CTRL && e.keyCode == 'a') {
     System.err.println("^a");
    }
   }
   public void keyReleased(KeyEvent e) {
   }
  });
  return viewer.getControl();
 }
}
こんなかんじでいいのかなあ。はじめてさわったからよくわからん。
0146デフォルトの名無しさんNGNG
>144
win32だと、アクセラレータに登録して、TranslateAcceleratorがコマンドに変換するから
AをとるとかじゃなくてAの時に適切なコマンドがくるように設定するから、

SWTだとShellがMenuItemをもっててそれがアクセラレータをもってるみたい。
MenuItem.setAcceleratorで設定するみたい。
0147144NGNG
>145
> 同一人物かどうかわからんけど、まとめると
同一人物ではありませぬ。

>if (e.stateMask == SWT.CTRL && e.keyCode == 'a') {
だめでした。if 文が true になりません。e.keyCode は 0 ですた。

>146
今MenuItemのソースを見てるんですが・・・
やろうとしてることが実は結構難しいことがわかりますた。
方向性を変えて、「CTRL+A」という文字列を返す方法を探します・・・
0148145NGNG
そう? うちだとこんなコードで CTRL+Aを押すとコンソールに ^a が表示
されるけど。
public class TextTest {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
Text text = new Text(shell, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.WRAP);
text.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
if (e.stateMask == SWT.CTRL && e.keyCode == 'a') {
System.err.println("^a");
}
}
public void keyReleased(KeyEvent e) {
}
});
text.setText("ぬるぽ");
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
0149144NGNG
>148
うーん、ソースをコピペしてやりましたが、結果はさっきと同じです。
ちなみにこちらの環境はWinXP & JDK1.4.2 & eclipse2.1.1です。
なんでだろ?
0150148NGNG
ああ、うちは3.0M6 + JRE1.4.2_03 + Win2Kだった。
#開発はR2.1.2上でやってるけど、SWTライブラリは3.0M6。
bugzilla見てみるかな。
0151148NGNG
このあたりが参考になるのかな。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=35210
確かにR2.1.xだと上のコードだと駄目だけど、
public void keyPressed(KeyEvent e) {
if (e.character == 1){
System.err.println("^a");
}
だと^aが表示されるな。}
0152デフォルトの名無しさんNGNG
CTabFolderの状態をアプリ終了時に保存しておきたいと考え、
addDisposeListenerを使うと思ったのですが、これが呼ばれる時点で
すでに、CTabFolderのCTabItemがなくなってしまっているようです。

終了時に保存したい場合、どこで保存するのが適切なんでしょうか?

お願いします。
0153デフォルトの名無しさんNGNG
>>152
ShellListener#shellClosed
0154デフォルトの名無しさんNGNG
>>153
ありがとうございます。

Shellはアプリ本体だとおもうんですが、
できれば、CTabFolderの内部で解決したいんですが、これは無理なのでしょうか?
0155デフォルトの名無しさんNGNG
>>154
folder.addDisposeListenerと書こうとしていた人間が
folder.getShell.addShellListenerを嫌う理由がよくわからん。
CTabItemに一つずつaddDisposeListenerするって手もあるけど。
0156デフォルトの名無しさんNGNG
>155
すいませんボケてました。
>folder.getShell.addShellListener
これができることが全然わかってませんでした。
0157144NGNG
>150-151
ありが�d。
やりたいことはCTRL+b とかCTRL+sとか押したときに押されてる文字キーを
全ての文字で判別したかっただけなので、SWTライブラリを差し替える方向でいきまつ。

ところでR2.1とR3.0で複数キー押下時にKeyEvent.keyCodeにはいる値が違うようでつな。
bugzillaではctrlキー押下時は仕様通り、altは他にイベント取られてるとしか
答えてないように思えるんでつが、変更されてるってことはバグだったのかな・・・?
0158デフォルトの名無しさんNGNG
>>144 3.0系にするの? 3.0M6だと>>134のbugが致命的だし今日出たM7は
どうかしらんけど、こまめにbugzillaとかnewsgroupチェックしないと
あかんよ。
0159148=158NGNG
>>157
たびたびすまん。bugじゃなくて去年の9/23付けで仕様が変更になってた。
SWT Build 3.0 022 - Tuesday September 23, 2003
Breaking Changes
 The Event.keyCode field now contains the unaffected keycode value.
 For example, when the user types Ctrl+Shift+'a', the keyCode field
 contains 'a'. The character field is unaffected and contains the
 same value as before (0x01).
0160144NGNG
>158-159
たびたびありが�d。
今作ってるのは趣味と実益を兼ねた実験ツールなんで多少のbugも無問題でつ。
あと、エディタ部分にはText系のウィジェットは使わず自前で描画しとります。
0161デフォルトの名無しさんNGNG
すいません。SWTとあんまり関係ないかもしれないのですが、

ツールバーやツリービューなどのアイコンの背景を透明にするには
どのようにしたらよいのでしょうか?
0162デフォルトの名無しさんNGNG
>>161
PNG だとダメだったよーな気がする。(ググれば何か見つかると思われ)
GIF に変換してみたら直らないかな?
0163161NGNG
いろいろ試してみましたが、透過色設定PNGでできました。
0164162NGNG
>>163
ありゃ、マジっすか。スマソ
0165デフォルトの名無しさんNGNG
>>161
もしよかったらでいいんだけど、
どのようにしたら出来たのかを書くか、ポインタを示してくれると
助かる。
0166162NGNG
やった方法は
MS-PAINTでビットマップ作成。
shin's PNG Editerというソフトで透過色を設定 <-よくわからないができないこともある。
pngで保存して、あとはnew Image()で読み込んだだけです。
0167デフォルトの名無しさんNGNG
プログラム的な問題より、透過色付きPNGを作る方が面倒かも。
0168デフォルトの名無しさんNGNG
そんな時にLinuxでもWindowsでも使えるGIMPが役に立つ。
0169165NGNG
>>166
ありがとうございます。参考になりました。
0170デフォルトの名無しさんNGNG
shellがないときメッセージボックスって出せないのでしょうか?(;´Д`)
0171デフォルトの名無しさんNGNG
そこでAWTですよ。
0172デフォルトの名無しさんNGNG
>>170 なけりゃできない。でも
MessageBox msgBox = new MessageBox(new Shell(display));
msgBox.setMessage("test");
msgBox.open();
みたいにshellをopenしなくてもMessageBoxは開ける
わけだしなにが問題なんだろう。

0173デフォルトの名無しさんNGNG
>>172
Shellのdisposeを忘れないでね.
0174デフォルトの名無しさんNGNG
>>171
ワラタ
0175デフォルトの名無しさんNGNG
ファイナライザで自動的にdisposeしてくれないの?
0176デフォルトの名無しさんNGNG
してくれるけど、それはあくまでフェイルセーフなので。
0177デフォルトの名無しさんNGNG
ちと質問です。
StyledTextで日本語入力するとおかしなことになりませんか?
なんとか日本語の処理を横取りしようといろんなListenerを使いましたが、駄目でした。
java.awt.imパッケージのInputMethodを使うのかと思いましたが、
これまた解決法がわかりません。SWTで日本語はあきらめれってことですか?
0178デフォルトの名無しさんNGNG
>>177
Win2k,SWT_2.1.2,Java -version 1.4.2,日本語IMEでデフォルトのままで問題なし。
環境は何ですか?
0179177NGNG
>>178
異常なしですか?こちらはWinXP、JDK1.4.2、eclipse2.1.1です。
ちなみに別マシン(Win2kで後は上記と同じ)でも同様の症状でした。

症状は半角文字や確定後の文字と、変換中の文字の大きさが違うことです。
0180178NGNG
そう言われてみれば確かにそんな症状は出てる・・・
回避策かどうかわからないけど、StyledTextと同じShellにふつうのTextを置いて、実行
->Textに文字入力後、StyledTextに文字入力すると普通になりましたよ。
でも原因はわからず。
0181デフォルトの名無しさんNGNG
そこでSwingですよ。
0182デフォルトの名無しさんNGNG
SWTの記事
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_07/eclipse07_1.html
0183デフォルトの名無しさんNGNG
こんな例外が出るんですが、これは何なのでしょうか?
org.eclipse.core.internal.runtime.AssertionFailedException: assertion failed: The application has not been initialized.

スタックとレース見てもよくわからないです。
0184デフォルトの名無しさんNGNG
>>183
そんなんだけ出されても…
0185デフォルトの名無しさんNGNG
>>183
スタックトレースあるなら出せ。
オマエには理解できなくても、エロい人なら理解できるかもしれん。
0186デフォルトの名無しさんNGNG
スタック*と*レースを晒されてもなぁ・・・
エロイしとも困るんでは?
0187デフォルトの名無しさんNGNG
つまんね。
0188デフォルトの名無しさんNGNG
>>186
寒いってよく言われるだろ。
0189デフォルトの名無しさんNGNG
あのひと,暑苦しいよね〜って陰口ならよく叩かれるよ。
0190デフォルトの名無しさんNGNG
余り盛り上がってないね
0191デフォルトの名無しさんNGNG
Windows98で、TabFolderにTreeとかTableとかを登録すると終了時にエラーを吐くのってウチだけ?
0192デフォルトの名無しさんNGNG
SashFormの上にButtonを数個格納して、Buttonが1個になったときに
SashFormを破棄して、さらに上のCompositeの上にButtonを配置したいけど、
実現方法が思いつきません。何かいい方法ありませんかね?
ButtonにDisposeリスナを追加しましたが無理でした。

構造はこんな感じ。
Composite
+SashForm
++Button1
++Button2
++Button3

Composite
+SashForm
++Button1
++Button2 ← これがdisposeされる時

Composite
+Button1 ← こうなるようにしたい
0193デフォルトの名無しさんNGNG
>192
SashForm.setMaximizedControl(button1)
はダメ?
0194192NGNG
>>193
ちょっと違うんだよね・・・
それだとButtonがSashFormを意識しないと駄目なわけで。

とりあえずこんなコードを試した。(思い出しながらなんでエラー無視)

button.addDisposeListener(new DisposeListener() {
..public void widgetDisposed(DisposeEvent e) {
....button.getParent().dispose();
..}
});

3行目でもう一度button.dispose()が呼ばれるらしくSWTException・・・
なんかいい方法ない?
0195デフォルトの名無しさんNGNG
>>194
Buttonが意識してるんじゃなくてListenerが
意識してるだけなんだから何の問題もないのでは?

で,そのコードについて言うと,
ボタンの親(SashForm)から下が丸ごと
dispose連鎖されるのでうまくないね.
試してないけれど,やるとすれば
Composite sash = button.getParent();
button.setParent(sash.getParent());
sash.dispose();
ってな具合では?.
setParentはウィンドウシステムによって
非対応の可能性があるので注意.

で,改めて,reparentするよりsetMaximizedControlの方が
きれいだと思うのだけれど,どうだろうね?

いずれにしても1つのウィンドウの中で
動的にボタンが増えたり減ったりするのは
ユーザビリティ的に一考の余地があるかもしれない.
0196192NGNG
>195
> Composite sash = button.getParent();
> button.setParent(sash.getParent());
> sash.dispose();
これはいい線いってるんだけど、SashFormのlayoutを呼ぶことができない・・・
Buttonがdisposeされ終わらないと後が残る or SWTException・・・

> 動的にボタンが増えたり減ったりするのは
> ユーザビリティ的に一考の余地があるかもしれない.
Buttonは説明用に使ってるだけで、その他のControlも使います。
その生成にはFactoryパターンを適用してまふ。
誤解させてしまってすんまそん。

今思いついたけど、Two-Phase Terminationパターン使えばいけるかな?
0197195NGNG
>>196
>これはいい線いってるんだけど、SashFormのlayoutを呼ぶことができない・・・

なんでSashFormのlayoutを呼ぶのだろう.
消したいんじゃないのだろうか.
0198192NGNG
>>197
ああ、まちがい。SashFormのParentでつ・・・
0199デフォルトの名無しさんNGNG
199
0200195NGNG
>>198
であれば,漏れの書いたreparentの方法が
間違ってるのかも.SWTExceptionが出るなら,
そのあたりから探ってくと何とかなるのではないかと.
0201デフォルトの名無しさんNGNG
しかし、あっという間に廃れたな>SWT
3ヶ月位か?
0202デフォルトの名無しさんNGNG
>>201
うーん。確かに最近あまり動きがないような気も…
しかし皆何を使って GUI 書いてるんだろ? Swing? (or そもそも Java 以外?)

SWT は look & feel が OS native だから個人的には結構好きなんだけど、
リソースを手動で解放しなきゃいけなかったり、
多少凝ったことしよーとすると面倒になったりするのがなぁ。
0203デフォルトの名無しさんNGNG
eclipseは流行ったがSWTは流行ってない
0204デフォルトの名無しさんNGNG
Java から ActiveX 使うのに SWT 使ってるよ。
VB/VC 使えって話もあるけどな。
0205デフォルトの名無しさんNGNG
強引にインターフェイスを乱発して、
SWT と Swing 両対応のアプリを書いた。
えらく大変な作業だった。
で、学んだことが、適当にソースをコピペしながら
SWT用 と Swing用を別々に書いたほうが楽だということだった。
0206デフォルトの名無しさんNGNG
Compositeとかって1つずつdisposeするのと
まとめてShellをdisposeするのってどっちがいんだろ?

まとめてdisposeすると個々の部品がガーベージに入りにくいって聞いたんだけど…
負荷はやっぱ1つをdisposeしたほうが軽いんだろうな〜。
0207デフォルトの名無しさんNGNG
今殆どSWT使ってるけど、皆使ってないの?
SWT.PHONETICで幸せになれたと思ったんですけど。
look & feelはSwingの方が好きなんだけど
漏れって変人でつか?
0208デフォルトの名無しさんNGNG
>SWT.PHONETIC
初めて聞いたなんだそりゃ?
0209デフォルトの名無しさんNGNG
Shell.setImeInputMode(int mode);
SWT: NONE, ROMAN, DBCS, PHONETIC, NATIVE, ALPHA.
0210デフォルトの名無しさんNGNG
SWTで編集可能なTable作ってるんですが、これが標準的な方法ですか?
ttp://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/snippits/snippet124.html
Swingと比べるとローレベルな面で面倒なんですが。
TableModel実装しなくていいのは楽でいいんですけどね。
0211デフォルトの名無しさんNGNG
>>204
スタブ書くのがまんどくさい……

>>206
gcされにくいってのは無いと思う.
それを示してくれるようなサンプルがあったら
有益なのでぜひ見てみたい.

>>207
うちだと
NONE,ROMAN : IMEオフ
DBCS : 全角英数
PHONETIC,NATIVE : 半角カナ
ALPHA 半角英数
って感じで幸せになれない.
MSIME2002で,初期入力モードは"ひらがな"なのだけれど.

>>210
生SWTでやるなら,そう.
SWTはSwingみたいな今風のGUIツールキットを
目指したわけじゃなくて,ネイティブのGUIのラッパだから.

Swing的な今風の仕組みが使いたければJFaceをかぶせる.
もっと高級な仕組みが使いたければRCPもかぶせる.
Swingより楽よ.比較的情報少ないから身につけるまでは骨だけど.
0212210NGNG
>>211
あ、なるほど、そういうことですか。
>ネイティブのGUIのラッパ
SWTの位置づけが分かったような気がします。

JFaceだとTableViewerですか。そちらも試してみます。ありがとう。
0213デフォルトの名無しさんNGNG
JavaPress・・・SWTの文字に期待したのにすごい期待はずれ・・・
いいかげんJFaceの記事かいてくれないかなあ。
ソースをあさるのは疲れますた。

ところでJFaceのWizardを自作ツールで使い出したんだけど、
ダイアログの「戻る」ボタンとかが「back」になってる。
ソースも英語。Eclipse上では日本語なのに。なぜだ。誰か助けて・・・

環境はWinXP + Eclipse2.1.3 + LanguagePack2.1.2
0214デフォルトの名無しさんNGNG
あれたぶんプラグインクラスローダ使ってクラスロードしないと
駄目なんじゃないかなあ。試してないからわからないけど。
0215213NGNG
( ゚д゚)Σ マジデ・・・
仕方ない、こうなれば文字だけ変えたサブクラスを作るか。
マンドクセ
0216206NGNG
>211
なるほど。申し訳ないけどサンプルがあるわけじゃないっす。

http://www.atmarkit.co.jp/fjava/column/andoh/andoh19.html
↑とか本とかにも明示的にdisposeしないとって見かけたので単品ずつ消さないとマズイのかなと思ってました。
もちろん親を必要としないImage,Color,Fontなんかはdisposeしてるけど。
0217デフォルトの名無しさんNGNG
>>216
俺も、親があるコンポジットも全て個別に dispose してるわ。
親の DisposeListener にちまちまと組み込んでる。
どっちがいいんだろ?
0218デフォルトの名無しさんNGNG
M8のSWT.VIRTUALで幸せになれそうだ.
WindowsでいうところのOWNERDATA.
Treeも対応してくれないかな.

>>216
widgetは親をdisposeするとその中で全ての子のdisposeが呼ばれるのよ.
Imageとかはもちろん手動でやらないとだめで,
実際これが一番面倒だったりはするけれど.

>>217
Imageとか独自に生成してるカスタムなwidgetとかなら,
DisposeListenerでImageのdisposeするのが典型的だね.
子widgetのdisposeは書く必要ない.
0219デフォルトの名無しさんNGNG
CursorLinePainterの使い方知ってる方いませんか?

一応これでカーソル行の色は変えられるようになったんですけど、文字を
選択すると落ちちゃうんですよね。

TextViewer tv = new TextViewer(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
CursorLinePainter curLine = new CursorLinePainter(tv);
tv.addPainter(curLine);

Document doc = new Document("");
tv.setDocument(doc);

curLine.setHighlightColor(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
0220デフォルトの名無しさんNGNG
>>219
その程度のことを自分で何とかできないやつにJava使われると非常に迷惑。
少なくともこのスレで聞くようなことじゃない。
0221デフォルトの名無しさんNGNG
Widgetの親子関係を視覚的に表示してくれるライブラリないかしら
(display, shell をルートにツリーをつらつらと表示してくれるようなものだといい)
0222デフォルトの名無しさんNGNG
styledTextで行間を大きくしたり、左側にマージンをつくったりできないのでしょうか?(;´Д`)
0223デフォルトの名無しさんNGNG
>223
SWTGUIBuilderみたいな感じ?
0224213NGNG
その後WizardDialogを継承したクラスでcreateContentsをオーバーライド。

protected Control createContents(Composite parent) {
 Control control = super.createContents(parent);
 super.getButton(IDialogConstants.FINISH_ID).setText("終了(&F)");
 //super.getButton(IDialogConstants.CANCEL_ID).setText("キャンセル");
 
 super.getButton(IDialogConstants.BACK_ID).setText("戻る(&B)");
 super.getButton(IDialogConstants.NEXT_ID).setText("次へ(&N)");

 return control;
}

とすることでほぼ意図した通りになった。
しかしキャンセルボタンだけはぬるぽで落ちる。何故だ・・・誰かタスケレ・・・
0225213NGNG
自己解決。
キャンセルボタンだけDialogクラスのHashMapに登録してないのが
getButtonメソッドで取得できない原因だった。
しょうがないので以下のように力ずくで解決。マンドクセ・・・

Composite c = (Composite)getButtonBar();
for (int i = 0;i < c.getChildren().length;i++) {
 Object data = c.getChildren()[i].getData();
 if (data != null && data.equals(new Integer(IDialogConstants.CANCEL_ID))) {
  ((Button)c.getChildren()[i]).setText("キャンセル");
  break;
 }
}

プラグインクラスローダはどうやって解決したんだろ?
0226デフォルトの名無しさんNGNG
>>213
試してないので自信はないんだけど、plugins/org.eclipse.jface.nl1_2.1.x/nl1.jarを
plugins/org.eclipse.jface_2.1.x/jface.jarより前にクラスパスに登録したら
上手くいかない?
eclipseのディレクトリ構成を見てたら、プラグインクラスローダは
そうやっているんじゃないかなーと思ったもので。
0227デフォルトの名無しさんNGNG
>>226
それをやってしまうとJavaのメリットが・・・
0228デフォルトの名無しさんNGNG
厨な>>226は放置ってことで・・・
0229226NGNG
私は228の定義により厨に分類されるためか、226の方法によって失われる
「Javaのメリット」がさっぱりわかりません。
だれか解説してくれませんか?
0230デフォルトの名無しさんNGNG
>>226
そうやってムキになるところが厨だと言われるのだと・・・
0231226NGNG
いや、だって気になるじゃない。
実は今まで自分がやってきた方法はいい方法ではなかった、
もっといい方法がある、なんて言われると。
0232デフォルトの名無しさんNGNG
つか、RCPだろ。
0233デフォルトの名無しさんNGNG
eclipseのヘルプ (help->help contents)のようなヘルプウインドウって
なんかライブラリがあるのでしょうか?

0234213NGNG
>>226
試した結果、nl1.jarをクラスパスに登録すれば日本語になりますた。
順番は別に関係ないみたい。自作したサブクラスは削除しまつ・・・

>>227
漏れも気になります。
0235デフォルトの名無しさんNGNG
>>234
寝れ。
0236デフォルトの名無しさんNGNG
どこかにViewFormの使い方解説してるサイトないですか?
eclipse風のかっこいいデザインのアプリを作りたいと思ったんだけど,
自力であれこれやってもeclipseのビューそっくりにならないよ・・・。
googleで検索してもヒットしない・・・。(´Д⊂
0237デフォルトの名無しさんNGNG
英語嫁
0238236NGNG
javadocだけじゃ分からないよ・・・。とりあえずViewFormのTopLeftにCLabel,
TopCenterとTopRightにToolBarを配置してみたんだけど,これだけだとeclipse
のビューにあるようなハイライト部分(ビューのタイトル部分の左と上に1ピクセル
の細さで白いラインが入ってる)がうまくできないし,setTopCenterSeparate(true)
でTopCenterに配置したToolBarを2段目に送った時に1段目と2段目の間に
区切り線が入らない・・・。
eclipseのソースコードを読めば分かるのかもしれないけど,参考になる部分が
どこにあるのか分からないし・・・。
0239デフォルトの名無しさんNGNG
全部嫁
0240デフォルトの名無しさんNGNG
ViewFormってよく知らないけど、ボーダー設定で何とかならないのかな?

SWT.BORDERとかSWT.SHADOW何タラとか
0241236NGNG
結局ViewFormのレイアウト処理やボーダーの描画処理やらを書き換えて
改造ViewFormを作るという無茶をしてしまいますた。

SWT3.0M8で動かしているのでタブの色とかがちょっと違いますが,
できあがったビューもどきの見た目はこんな感じ。↓
ttp://www.42ch.net/UploaderSmall/source/1081522488.jpg
0242デフォルトの名無しさんNGNG
>>241

かっちょいいじゃん。
0243デフォルトの名無しさんNGNG
SWTでGraphics2D使えないですか?
単に半透明とか、グラデーションとかの描画をしたいだけなんですが。
0244z11.218-225-132.ppp.wakwak.ne.jpNGNG
3.0のBrowserコンポーネントにpopup menuが動作しない。
これバグ?
0245デフォルトの名無しさんNGNG
>>244
たぶん、環境が悪いと思う。
開発者と同じ環境用意すれば動くよ。
0246デフォルトの名無しさんNGNG
わざとだと思う。M8で確認したけど
org.eclipse.swt.browser.WebSite#ShowContextMenu
でデフォルトのポップアップメニューを殺してるっぽい

他のウィジェットと同じように開発者がメニュー作れってことではないかと
0247244NGNG
>>246
うーん。Browserのオブジェクトに
Menu popup = new Menu( shell, SWT.POP_UP );
browser.setMenu(popup);
MenuItem menuitem = new MenuItem( popup, SWT.NONE );
menuitem.setText( "ポップアップ" );
みたいなことをやっても機能してくれないんだよねぇ。
ほかのコンポーネントは機能してくれるのに。
0248デフォルトの名無しさんNGNG
LinuxでBrowser動かそうとしているんだけど
Mozillaがインスコされてないって怒られる
環境変数LD_LIBRARY_PATHに/usr/lib/mozilla-1.4.1
って設定してるし、/etc/gre.confには
[1.4.]
GRE_PATH=/usr/lib/mozilla-1.4.1
ってある
わからん。
0249デフォルトの名無しさんNGNG
>環境変数LD_LIBRARY_PATHに/usr/lib/mozilla-1.4.1
かつ
>、/etc/gre.confには [1.4.] GRE_PATH=/usr/lib/mozilla-1.4.1
かつ

/usr/lib/mozilla-1.4.1が存在しない
0250デフォルトの名無しさんNGNG
>>249
いや、Fedora core 1 使ってて、もうそれにはMozilla1.4がソコに入ってるみたいなんだけど。
ナントカsoとかたくさんあったぞ。
0251デフォルトの名無しさんNGNG
>>250
じゃあ分からん。
ひょっとしたらnsIComponentRegistrar#AutoRegisterが呼ばれてないのかもしれん。
compreg.datとxpti.datが/usr/lib/mozilla-1.4.1にある?
無かったら一度Mozillaを起動してからやってみたら?

ところで状況が良く分からんのだが。
>Mozillaがインスコされてないって怒られる
って一体誰に怒られてんだ?ld?jvm?Browser?
Browserだったらソース見るとよろしい。
0252デフォルトの名無しさんNGNG
>250
1.6に入れ替えてみたら?
俺はそれで出来た。
0253デフォルトの名無しさんNGNG
>>251
compreg.dat があるのは
/usr/lib/mozilla-1.4.1/compnents
で、そこをLD_LIBRARY_PATHを指定したが、やはりだめだった

>>252
やってみたんだが、RPMのアップデートなんてめちゃめちゃ依存関係激しくてできそうにないし

http://www.scottbolander.com/mozilla-xft.html
にあるコンパイル済みのやつでやってみたんだが、結果は変わらず・・・
0254デフォルトの名無しさんNGNG
>>253
>Mozillaがインスコされてないって怒られる
って一体誰に怒られてんだ?
エラーメッセージ書くのは質問者の最低限の仕事じゃないかい?
0255252NGNG
>253
そうだっけか
俺もFedoraだが mozilla-1.6一式(メール、チャットとか含む)を落として
# rpm -Uvh mozzila-1.6-1.0.0.i386.rpm mozzilla-chat-1.6-1.0.0.i386.rpm mozilla-mail-1.6-1.0.0.rpm .....
でアップデートできたような気がしてたが
0256デフォルトの名無しさんNGNG
>>255

それでやったらできた。サンスコ

それにしても、難しいな RPMパッケージ管理
0257デフォルトの名無しさんNGNG
え?
0258デフォルトの名無しさんNGNG
http://www.senun.com/Left/Programming/Java_old/Examples_swing/JTableExamples1.html
の一番上みたいなことがやりたいんだが…無理?
0259デフォルトの名無しさんNGNG
>>258
1 CompositeのレイアウトにFormLayoutを指定します。
2 Composite上部にLabelを並べてヘッダを作ります。
3 Composite下部にヘッダを不可視にしたTableを表示します。

2の処理次第でどんなヘッダでも作れます。
0260デフォルトの名無しさんNGNG
>>259
決め打ちかよ…。
0261259NGNG
>>260
決め打ちになるように作れば決め打ちになるし、可変になるように作れば可変になります。
LabelとTableを集約して元々用意されているwidgets並みの汎用性があるwidgetsを作ることもできます。

SwingのJtableはJTableHeaderを通してBasicTableHeaderUIを集約しており
JTableHeaderを置き換えられるように作られているからExamples swingはそれを置き換えています。
一方SWTのTableはOSのtable widgetsにJavaの皮を被せた物でHeaderUiだけ置き換えはできず、
OSのtable widgetsの外側にTableHeaderを作る必要があります。
しかしそれは決め打ちになるかどうかには全然関係ありません。
0262デフォルトの名無しさんNGNG
つまり、大変手間がかかり、Swingのような短いサンプルコードではとても実現できないワケですよ。
MFCの方がまだマシ。
0263デフォルトの名無しさんNGNG
>>262
そーゆー話題は以下のスレでどーぞ。
http://pc5.2ch.net/test/read.cgi/tech/1082151386/l50
0264デフォルトの名無しさんNGNG
結論:Swing >>>>>> AWT > SWT
0265デフォルトの名無しさんNGNG
Eclipseスレで話がでてたが、EclipseのGUIエディットソフトの
VisualEditorでSWT対応版が出たようだ。

【Java/C/他】統合開発環境Eclipse M11
http://pc5.2ch.net/test/read.cgi/tech/1076074293/l50
0266デフォルトの名無しさんNGNG
http://dev.eclipse.org/viewcvs/indextools.cgi/%7Echeckout%7E/vep-home/WebContent/docs/newAndNoteworthy/1.0.0-M1/vep-news-M1.html
0267デフォルトの名無しさんNGNG
質問

JFace使ってもMINGW + GCJでネイティブコードに
変換して実行できるんでしょうか?


JFace使うと参照するjarが増えるから
ファイル容量が増加しそう・・・
0268デフォルトの名無しさんNGNG
>>267
3.3.1ではApplicationWindowを使うと落ちた。
SWTとは関係ないところでも落ちたけど。
サイズは忘れた。
0269デフォルトの名無しさんNGNG
Javaしか知らないのでよく知らないのですが・・
SWTつかってリークしてるかどうか調べる方法ってあるんでしょうか?
0270デフォルトの名無しさんNGNG
>>267

ネイティブにする価値あるほど高速化するのかしら
0271デフォルトの名無しさんNGNG
>>270
何にも知らないのね。

ネイティブにするのはクライアントにJREが入ってないから。
#WindowsUpdateにJREがないから
0272デフォルトの名無しさんNGNG
>>271
JRE ごとアプリケーションに含めて配布するって手もあるけど。
0273デフォルトの名無しさんNGNG
>>271
JRE付属で配布すりゃいいじゃん。
javaw.exeをフルパスで書いておけば他のJREとの競合を心配する必要もないし。
OracleやIBMがどうやってJavaアプリを配布しているのか知らんのか?

…って書いた後で思ったけど、ファイルサイズを気にしているようなので
JREを加える分のサイズの増加を避けたいということか。
J2RE-1.4.2_04のWindows用インストーラが14MB以上あることを考えると
1MB程度のファイル増加をも気にする必要がある状況では勘弁ならないなぁ。
そういう状況ならね。
0274デフォルトの名無しさんNGNG
>>272-273
Javaでアプリを作ると14MB以上になるわけね。なるほど。
ちょっとしたアクセサリみたいなソフトも14MBになってしまいますね。
Javaがクライアントサイドで流行らない理由がわかりました。
0275デフォルトの名無しさんNGNG
>274
しかし、Javaアプリを1つ増やした時の増加分は、ネイティブより遥かに
少なくて済むぞ。 ちょっとしたアクセサリなら(画像ファイルとか除けば)
数KBytesで済む。ネイティブではそうはいかん。

MacのOS-XやLinuxみたいに標準でJREが入ってる環境ではそれは
大きいんだけどな。

JREがころころバージョンアップするような状況では、そのメリットが
生きてこないから、現時点ではしょうがないんだけどね。
0276デフォルトの名無しさんNGNG
>>275
>ちょっとしたアクセサリなら(画像ファイルとか除けば) 数KBytesで済む。
最新バージョンで動かないなら結局JRE同梱するしかないやん。数KBytesで済むわけないやん。何言っっちゃってんの、この人は。
0277デフォルトの名無しさんNGNG
って、最後の2行はそういう意味か?だったらすまん。言い過ぎた。
0278デフォルトの名無しさんNGNG
>277
条件反射でレスすると恥書くから気を付けた方がいいよw

この板の住人は、(長文のレスが多いせいか、)最後まで
読まずにそれをする人が多いみたいだな。
0279デフォルトの名無しさんNGNG
恥を欠くのは>>278もだよ
0280デフォルトの名無しさんNGNG
>>278
そういう意味かどうか聞いてるんだ。
変な講釈垂れてないで答えろや
0281デフォルトの名無しさんNGNG
>>280
答えてクン、うざい。
0282デフォルトの名無しさんNGNG
>>281
答えに窮するとすぐに「うざい」だの「スレ違い」だの言うのはカス
0283デフォルトの名無しさんNGNG
>>282
教えてクンの逆切れ、カコワルイ。
0284デフォルトの名無しさんNGNG
CoolBarの中のCoolItemを移動して、行数?が増えると
コンポーネントの表示がおかしくなるのですが、どのようにすれば対処できるのでしょうか?

たとえば、
http://cjasmin.fc2web.com/basic/coolbar.html
の通りにやってもNGで、色々ためしていますが、どうもうまくいきません。。
0285デフォルトの名無しさんNGNG
そういうことか・。・・
0286デフォルトの名無しさんNGNG
TableでTableColumnの縦サイズって指定出来ないんですかね?
横サイズはsetWidthがあるのですが縦サイズ指定メソッドが見当たらないんです。
TableEditorを使って大きめの画像を中に入れた時だけ縦サイズが変わるんですが。。。

どなたかご存知の方がいらしたらご教授下さい。
0287228NGNG
失礼しました、TableItemにImageを入れた場合のみ縦サイズが変化するでした。
よろしくお願いします。
0288デフォルトの名無しさんNGNG
なら透明な画像を使えばサイズが変えられるんじゃないの?
正しいやり方(そもそもできるのかどうか)は知らん。
0289288NGNG
>>290
そうなんです、それは出来たのですがそれ以外の方法でサイズは変えられないかなと。
方法が見つからなそうなのでそれでいこうかと思っています。
0290デフォルトの名無しさんNGNG
VE1.0ってRC1でできる?
0291デフォルトの名無しさんNGNG
>>290
VE1.0M1はM9以降のbuildでは動かない。
先月末のVEチームリーダーの話では、「M9以降に対応させるにはコードを
ちょっといじる必要があって、もちろんそのうちやるけど日時ははっきり
してない。数ヶ月ということはないけど、数週間のうちくらい?」って
ことらしい。
0292デフォルトの名無しさんNGNG
JFaceよくわかんねぇ
0293デフォルトの名無しさんNGNG
>>291
やっぱそうでしたか。
どうも。
0294デフォルトの名無しさんNGNG
Browserウィジェットで右クリックってどうやるんですか?
なんか最近有効になったらしいけど。
0295デフォルトの名無しさんNGNG
動的にTabItemを追加することは出来ないですか?
0296デフォルトの名無しさんNGNG
>>295 ごく普通に出来るけど?
0297デフォルトの名無しさんNGNG
今やり直したら出来ました。
申し訳ないです。
0298297NGNG
>297は295でした。
0299デフォルトの名無しさんNGNG
swtのモジュールって公開されていないんですか?
0300デフォルトの名無しさんNGNG
自己解決しますた。
0301デフォルトの名無しさんNGNG
Eclipseスレから来ました。
ttp://pc5.2ch.net/test/read.cgi/tech/1085881936/l50
Compositeを動的に生成しても,サイズ調整がうまくいきません。
ウインドウリサイズまでFormAttachmentが無視されて
FormDataの値になってしまいます。どうしたらいいんでしょうか?
0302デフォルトの名無しさんNGNG
サンプルソース希望。
0303デフォルトの名無しさんNGNG
厳密に言うとコンポジットの動的な入れ替えになります。
comp.dispose();//この行がないとリサイズまで描画してくれないのはなぜ?
comp = new Composite(shell, SWT.NONE);
shell.setLayout(new FillLayout());
FormLayout fL = new FormLayout();
comp.setLayout(fL);
Table table = new Table(comp, SWT.MULTI | SWT.BORDER);
FormData fd = new FormData(200, 200);
fd.top = new FormAttachment(0, 0);
fd.bottom = new FormAttachment(50, 0);
table.setLayoutData(fd);
comp.pack();
なにか根本的に違うような気がしないでもない...
0304デフォルトの名無しさんNGNG
こんなHP見つけた。ガイシュツだったらスマソ
ttp://www13.plala.or.jp/observe/index.html#swt
SWT,JFace,GEFなど。最近できたらしい。
0305デフォルトの名無しさんNGNG
>>303 それcompositeをなぜ使いたいのかとか、
shellがリサイズしたときの挙動をどうさせたいのかとか、
前提条件がよくわからん。
0306301NGNG
すいませんm(_ _)m
ほんとはcompositの中にいろいろなウイジェットが入ってます。
で,リサイズしたときは期待どうりの動きをするんですが
ボタンクリックやメニューでコンポジットを動的に作成すると
ウインドウをリサイズするまでFormAttachmentが無視されて
FormDataの値になってしまいます。
0307デフォルトの名無しさんNGNG
shellをlayout()すれば?
0308301NGNG
うまくいきました。
compositのlayout()ではだめなんですね。(考えたら当たり前か)
サンクス。
0309デフォルトの名無しさんNGNG
jarの中にあるイメージをSWTでロードするにはどうすれば良いのでしょうか?
JFaceにはImageDescriptorってのがあるようですが・・

0310デフォルトの名無しさんNGNG
>>309
getResourceAsStreamでInputStreamを取得して、
次にImage(Device device, InputStream stream)で
インスタンス生成が楽かな。
0311デフォルトの名無しさんNGNG
geocities鯖落ちage
0312デフォルトの名無しさんNGNG
>>310
できた!ありがと!
0313デフォルトの名無しさんNGNG
ところでせっかくネイティブなGUIなんだから、
JREインストールもなしで動かせないものだろうか。
ファイルコピーだけで動かないかなあ・・・
アプリ配布が激しくマンドクセ・・・
0314デフォルトの名無しさんNGNG
>>313
ファイルサイズがでかくなっていいなら、JREごと圧縮。
0315デフォルトの名無しさんNGNG
>>313
gcjでネイティブアプリ化するとか。
詳しくは別スレで。
http://pc5.2ch.net/test/read.cgi/tech/1046627795/l50
0316313NGNG
>>314-315
レスありが�d。普通のが来るとは思わんかった。

>>314
JREインストールを考えたら多少のサイズはおけ。
圧縮するならJRE以下全部かなあ?
/bin以下だけだと駄目なんだろうか?
配布時にはMobexeの使用を考えてる。
これのReadmeにはjvm.dllのパスを指定できるとあるから
ちょっと試してみる。

>>315
それは以前試したよ。簡単なサンプルアプリでも
JFaceが絡むと一発で死亡したり、exe同じなのにOS違うと死亡したり・・・
なんで諦めた。JETもpro以上を購入できないので断念。
配布したいアプリはJNI使ってUSBと通信してるので、
これ以上不安要素を増やしたくないのもあるしなあ。
0317313NGNG
( ´・ω・`)話題ないのね・・・

とりあえずMobexeを使う場合には/bin以下と/lib以下
両方必要だったけど、ファイルコピーだけでも動いた
0318デフォルトの名無しさんNGNG
>>317 スレ違いだから反応しなかったんだけどさ。
JREの配布をもくろんでいるようだけど、ライセンス上
再配布時のファイル構成に縛りがあるので、勝手に
自分で構成を判断して再配布は出来ない。一度
ライセンス条項を確認すること。
0319デフォルトの名無しさんNGNG
      |ハ,_,ハ
      |´∀`';/^l
      |u'''^u;'  |
      |∀ `  ミ  ダレモイナイ・・・
      |  ⊂  :,    モサモサ スルナラ イマノウチ
      |     ミ
      |    彡 
      |    ,:'
      |''~''''∪


               l^丶            
        もさもさ   |  '゙''"'''゙ y-―,     
               ミ ´ ∀ `  ,:'     
             (丶    (丶 ミ     
          ((    ミ        ;':  ハ,_,ハ
              ;:        ミ  ';´∀`';,  
              `:;       ,:'  c  c.ミ  
               U"゙'''~"^'丶)   u''゙"J


            /^l
     ,―-y'"'~"゙´  |   もさもさ
     ヽ  ´ ∀ `  ゙':
     ミ  .,/)   、/)
     ゙,   "'   ´''ミ   ハ,_,ハ
  ((  ミ       ;:'  ,:' ´∀`';
      ';      彡  :: っ ,っ
      (/~"゙''´~"U    ι''"゙''u
0320デフォルトの名無しさんNGNG
>>319
SWTって具体的に何に使うの?
0321デフォルトの名無しさんNGNG
>>320
訊ねる相手を間違えていないか?
0322デフォルトの名無しさんNGNG
>>320-321
激しくワロタ
0323319NGNG
>>320
http://cjasmin.fc2web.com/index.html
0324デフォルトの名無しさんNGNG
>>323
何ができるかは書いてあるけど、何に使うかは書いてないね。
0325デフォルトの名無しさんNGNG
ライブラリの紹介なんだから当然。
何に使うか、を思いつかない香具師には無縁。
0326デフォルトの名無しさんNGNG
>>325
そういう話じゃないだろ。
「何に使うの」っていう質問に対してリンクをはって、質問に答えてないといわれて開き直っただけに見える。
0327デフォルトの名無しさんNGNG
同一人物と思われてる?
0328デフォルトの名無しさんNGNG
>>327
別に思ってないけど。
それにライブラリの紹介だからそのライブラリを何に使うのか書いてなくて当然というのもおかしい。
同じ機能のライブラリ(Swing)とどう使い分けるのか、というのは有益な情報だし。
0329デフォルトの名無しさんNGNG
>>328
それだと「どう使い分けるのか」であって「何に使うか」の答えになってないね。
0330デフォルトの名無しさんNGNG
>「何に使うの」
アプリ開発、実行につかうの
0331デフォルトの名無しさんNGNG
>>329
なってると思うのだが。
0332デフォルトの名無しさんNGNG
ところでSWT3.0からtableは仮想テーブルがサポートされるそうだけど、
そもそも仮想テーブルが何なのかよくわからんのであまりうれしくない。
これで何がうれしくなるのか、情報きぼん。
0333デフォルトの名無しさんNGNG
メニューを複数用意できたりする
0334デフォルトの名無しさんNGNG
>>332
http://www.atmarkit.co.jp/fjava/column/andoh/andoh19.html
このページの下のほう、
|SWTの場合、Swingに比べて表全体をスクロールし終わるのに
|約2分の1の速度で済みます。その一方で最初の画面が表示
|されるまでの時間は、Swingの方が速いのです。
のようなテーブル生成のベンチマークでSwingにまけることがなくなる。

ところでこの記事、この時期にSWT3.0に触れていないのももアレだし、
Swingのスクロール設定もデフォルトだとSwingが不利だし
SWT vs Swingのベンチマークとしてはどちら側にしても
不公平じゃねーかという感想。まあ論旨は「暗黙
的にどちらかのAPIを盲信してはならない」だから詳細
はどうでもいいんだろうけど。
0335デフォルトの名無しさんNGNG
>>332
いままでは全てメモリ上に読み込んでいたので、多量のデータの読込みは
別スレッドにしても遅かった。
仮想テーブルではある一定量をメモリ上にロードして処理するので速くなる。
API 的には普通のテーブルとほとんど変わらないのでウマー
0336332NGNG
>>333
?

>>334-335
なるほど、ありが�d。
ところで>>334の記事は一年前なんで仕方ないかと・・・
0337334NGNG
Σ(゚д゚lll)
0338デフォルトの名無しさんNGNG
1年前と全然普及度が変わっていない…駄目だこりゃ。
0339デフォルトの名無しさんNGNG
C++ でboost が普及するころになれば、SWTも普及しているはず。
0340デフォルトの名無しさんNGNG
>>338
JDK1.2で登場したswingですら普及しているとは言いがたいので
1年くらいじゃ普及度が変わらないのは仕方がないのでは?
0341デフォルトの名無しさんNGNG
Swingと比較してもなぁ。
結論:Javaのクライアントは普及しない。
0342デフォルトの名無しさんNGNG
MobTaskTrayを使いたいのだが、サイトが落ちてて拾えない…orz
誰か持ってる人どっかにうぷしてくれませんでしょうか?
0343デフォルトの名無しさんNGNG
>>342 それってWindowsでタスクトレイ使えるようにするやつだっけ?
SWT3.0なら必要ない気がする。
0344デフォルトの名無しさんNGNG
>>343
詳しく、話を聞こうぢゃないか!

OS 固有のタスクトレイにどうアクセスするのかを
0345デフォルトの名無しさんNGNG
>>342-344
これか。
ttp://dev.eclipse.org/viewcvs/index.cgi/platform-swt-home/R3_0/new_and_noteworthy.html?rev=1.4#m8
ttp://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/snippits/snippet143.html
どうやってるのかはウィンドウシステム依存だろうな。
当然ながら全ての環境で使える訳じゃないんだろう。
0346デフォルトの名無しさんNGNG
>>345

ありがとう!
ところで、Eclipse 3.0 の正式リリースが25日だったね。
ミラーサイトでもまだ載ってないのがあるな。
Langパックってのが消えている。ってまだまだなのか?

って、今作ってる SWT アプリもそろそろ移行時かもしれん。
0347342NGNG
>>342-345
さんくす。
MobTaskTray使わなくても実現できるのか。。。
まだ>>345のリンク先詳しく見てないけど、ちゃんと見てみる。
0348342NGNG
んー。ウィンドウを最小化したらタスクトレイと
ウィンドウ最小化バー??(正式な言い方わかんない。。。)
両方でるのか。。。
タスクトレイだけにしまう方法ないのかなぁ。。。
0349デフォルトの名無しさんNGNG
ん?Azureusに使われコレとは違うん?
http://systray.sourceforge.net/
0350342NGNG
>>349
おおー。なんかそれっぽいライブラリだ。ありがと。
jfaceのアプリケーションウィンドウを最小化時はタスクトレイアイコン化
したいのだけど、これでできるのかな?
できればいいのだが。
とりあえずドキュメントとか見て調べてみる。
さんくす。
0351349NGNG
やべ、微妙な日本語になってる…
それはともかくすでに使われてたアプリができてたから
タスクトレイアイコン化は多分大丈夫。
0352デフォルトの名無しさんNGNG
最小化したときにタスクバーに出したくないってのと、
タスクトレイを使うってのは別の要素だよね。
タスクトレイを使うのにどのAPI使うかってのは
実はなんでもよくて、最小化したときにタスク
バーから消したいのなら、
shell.addShellListener(new ShellListener() {
 public void shellActivated(ShellEvent e) {}
 public void shellClosed(ShellEvent e) {}
 public void shellDeactivated(ShellEvent e) {}
 public void shellDeiconified(ShellEvent e) {}
 public void shellIconified(ShellEvent e) {
  ((Shell)(e.widget)).setVisible(false);
 }
});
でしておけばいいと思うんだけどな。
0353352NGNG
俺も微妙な日本語になってるな。ようするに、タスクトレイと
最小化の話はそれぞれ分けて考えようってこと。
0354342NGNG
>>342
jfaceのApplicationWindowを継承したアプリなんだけど
最小化されたときにShellとってその処理かましても
なぜかバーから消えてくれないんだよね(TдT)

>>349のAPIも最小化では消えないけど×ボタンで
タスクトレイに常駐してくれるみたいなので
最小化で消えるのはあきらめてそれにしようかなと。
ただどうやってjfaceと絡めるんだこれ。
俺あほだな。よくわからん...orz
0355342NGNG
>>354の1行目は>>352の間違いです。。。orz

何自分にレスしてるんだ俺( ´-`)
0356342NGNG
>>352
ごめん。大嘘だ(´Д⊂
ちゃんとバーが消えてくれました。
リスナー登録し忘れてました。
もー本当にすいません。

で、タスクトレイと最小化は分けて考えようって助言ありがとです。
激しく参考になりました。

>>349さん>>352さん
まじで(TдT) アリガトウ
0357デフォルトの名無しさんNGNG
Shift + F2 で,SWT APIのリファレンスのみが表示されないんですが。
「親JARのプロパティページにJavadocロケーションURLを指定してください」
って言われるんですけど親JARのプロパティページってどこにあるんでつか?
0358デフォルトの名無しさんNGNG
パッケージエクスプローラのswt.jarを右クリックして
プロパティを開いてそこでヘルプを指定。
0359357NGNG
>>558
ありが�d
0360357NGNG
うげっまちがえた...orz
>>358 さんありが�d

0361 NGNG
あの,SWTでベジエ曲線とか自由な曲線は描けないんですか?
GCにはそれっぽいメソッドがないですね。ちょっと気になったんで。
0362デフォルトの名無しさんNGNG
>>361
Draw2Dにはあったような気がする。
0363デフォルトの名無しさんNGNG
JFace初めてつかってみたらこんなエラーが出ました。
java.lang.NoClassDefFoundError: org/eclipse/core/internal/boot/DelegatingURLClassLoader
どのファイルにクラスパスを通せばいいのでしょうか。
0364デフォルトの名無しさんNGNG
モーダルダイアログ(コモンダイアログでない)を作りたいのだけど
参考になるサンプルとかってどこかにない?
0365デフォルトの名無しさんNGNG
Shellのコンストラクタを調べてみろ。
0366デフォルトの名無しさんNGNG
>>363
org.eclipse.core.runtime
0367366NGNG
/eclipse/plugins/org.eclipse.core.runtime_2.1.1/runtime.jar
をクラスパスに追加したのですがだめです。他に原因が考えられますか?
0368デフォルトの名無しさんNGNG
>>367 バージョンくらい先にさらしとけよ...
http://www-6.ibm.com/jp/developerworks/opensource/030328/j_os-ecgui1.html
0369366NGNG
>>364
dlgShell = new Shell(shell, SWT.DIALOG_TRIM)
0370368NGNG
あ、あと>>368のなかのorg.eclipse.runtimeっての前試したときは
org.eclipse.core.bootの間違いだった気がする。
0371デフォルトの名無しさんNGNG
>>370
boot.jarはEclipse 2.1.0では不要で2.1.1から必要になるのでは?
SWTアプリケーションならともかく
JFaceアプリケーションは多数のjarファイルを必要とするので
Eclipse Rich Client Platformの上で作る方が楽かもしれません。

●JFaceに必要なjarファイル
JFace本体 : swt.jar, boot.jar, jface.jar, runtime.jar
Resources : resources.jar, workbench.jar
Text : jfacetext.jar, text.jar

●JFaceに必要なファイルが書いてあったページ
http://www-6.ibm.com/jp/developerworks/opensource/030328/j_os-ecgui1.html
 developerworks : swt.jar, jface.jar, runtime.jar, workbench.jar
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=JFace
 Amateras : swt.jar, boot.jar, jface.jar, runtime.jar,jfacetext.jar, text.jar, editors.jar, texteditor.jar
http://cjasmin.fc2web.com/basic/setup_jface.html
 SWT Tips and Samples : swt.jar, jface.jar, runtime.jar, workbench.jar
http://kumiki.c.u-tokyo.ac.jp/~ichiyama/cgi-bin/hiki/JFace%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0%A4%CE%A4%BF%A4%E1%A4%CE%C0%DF%C4%EA.html
 love unstable : swt.jar, boot.jar, jface.jar, runtime.jar, resources.jar
http://vision.featia.net/diary.jsp?year=2003&month=07 (2003-07-07)
 Featia.Net :SWT+JFace 普通: 1.94MB (swt.jar,swt-win32-2133.dll,boot.jar,jface.jar,runtime.jar)
        SWT+JFace 高機能: 2.34MB (swt.jar,swt-win32-2133.dll,boot.jar,jface.jar,runtime.jar,jfacetext.jar,text.jar)
http://www5b.biglobe.ne.jp/~psoft/research/swt/environment.html
 ソフトウェア研究室 : swt.jar, boot.jar, jface.jar ,runtime.jar, workbench.jar
http://www.nextek.jp:8080/ZWiki/X_e4_bd_9c_e6_a5_ad_e8_a8_98_e9_8c_b2
 ZWiki web 作業記録 : swt.jar, swt-2133.dll, boot.jar, jface.jar, runtime.jar, resources.jar,workbench.jar
http://www.kawaz.jp/pukiwiki/?SWT%A5%A2%A5%D7%A5%EA%A4%F2%BA%EE%A4%EB%B0%D9%A4%CE%A5%E1%A5%E2
 ずんWiki : swt.jar, boot.jar, jface.jar, jfacetext.jar, runtime.jar
0372366は363の間違いNGNG
>>370
org.eclipse.core.boot を追加すればうまくいきました。
>>371
ソフトウェア研究室に書いてあるように,どうもEclipse 2.1.2の環境と,
以前のEclipseの場合必要になるjarが少し違うらしいです。
ちなみにうちは2.1.3です。
サンクスです。
0373デフォルトの名無しさんNGNG
>>365 >>369
どうもありがとう
0374デフォルトの名無しさんNGNG
JFaceのツールバーで透過pngを使う方法ってないですかね?
0375デフォルトの名無しさんNGNG
age
0376デフォルトの名無しさんNGNG
>>374 うちではごく普通に使っている。
0377デフォルトの名無しさんNGNG
>>374
透過のさせ方にもよるけど,SWTから呼び出されるOSネイティブのウィジェット自体の
透過色サポートの度合いの影響を受けるから,必ず透過するとは限らない。
とりあえず半透明色(というかアルファチャンネル)を使ってない,完全な透明色の部分
だけがあるタイプの画像ならどれでも大丈夫だと思う。透過PNG自体をGIFみたいな感じの
指定色を透明にするタイプの形式で保存しておけばいいんじゃないかな。
半透明色を使ったPNG画像でも,CLabelとかCTabFolderとか,Canvasの上に直接描画
するカスタムウィジェットに対して使用するのであれば問題ないけど。
0378デフォルトの名無しさんNGNG
>>376
>>377
レスありがとうございます。
377さんの言うとおり一度背景を塗りなおして透過色を指定して保存したんですがダメです。塗り潰した色が出てしまいます。

他に原因があるんでしょうか?
OSはXPでエクリプスのバージョンは2.1.3です。
0379デフォルトの名無しさんNGNG
>>378
たぶん保存したPNGの形式に問題があるのだと思うけど・・・。
ttp://www.mikeneko.ne.jp/~lab/grp/png/p3.html
PNG画像で背景を透明にするには2種類の方法があるけど,ファイルから直接Imageとして
読み込んでWindowsのツールバー上で背景が透明になるのは透明色を指定する方。
俺はフルカラーのPNGでは試したこと無いけど,256色のPNGで特定の色を透明色に指定して
保存した画像ファイルの場合は,普通にファイルから読み込んで作ったImageのインスタンス
をツールバーにセットすれば背景は透明になった。
まあ,透明色情報を含んでないPNG画像でも後からマスク画像使って不透明部分だけ
切り抜いたImageを作れば大丈夫とは思うけど,それはめんどくさいし・・・。
0380デフォルトの名無しさんNGNG
SWTで入力,編集ができるTableは標準では用意されていないんでしょうか。

ttp://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/snippits/snippet124.html
これをJFaceのTableViewerで使えるように改良することは簡単でしょうか?
0381デフォルトの名無しさんNGNG
>>380 JFaceはSWTを隠蔽しないからどうにでもできると思うけど、
そもそもの目的がJFaceのTableViewerで編集したいことなら
http://www.eclipse.org/articles/Article-Table-viewer/table_viewer.html
をよんどいたほうがいいね。
0382デフォルトの名無しさんNGNG
>>381
がんばって読んでみます。
0383デフォルトの名無しさんNGNG
Eclipse が 3.0 になったんで入れ替えたんだが、
一緒に自分のところのツールを SWT 3.0 にしてコンパイル実行したら、
shell の挙動が変わったよ。

2.1 のときは
Shell s = new Shell(display, SWT.TITLE | SWT.MIN | SWT.CLOSE | SWT.ON_TOP);
でウィンドウ最小化ボタンがきちんと出たんだが、3.0 で出なくなった。
SWT.ON_TOP が挙動変化のトリガーになっていて、
これを取ったときは 2.1 でも 3.0 でも同じ動作をする。

ご存じの方がいらっしゃったらご教授を賜りたい。
0384デフォルトの名無しさんNGNG
tableの高さを設定したいのですが、table.setSize(400,400)しても変化がなさそうにみえます。
どうしたら設定できるのでしょうか。

幅はTableColumnのsetWidthで変えられるからいいんですけど。
0385デフォルトの名無しさん NGNG
TEST
0386デフォルトの名無しさんNGNG
getResourceAsStreamでInputStreamを取得して
Image(Device device, InputStream stream)でインスタンスを
生成したんだけどもjarファイルにしたら「んなファイルはない」と
言われてしまった。ナゼだ…?
0387デフォルトの名無しさんNGNG
>>386 開発環境はeclipse? eclipseのプロジェクトはソースフォルダと
バイナリ(*.class)を出力するフォルダと実行時フォルダが別にできる
ので初心者が間違えやすいし、聞かれても当てはまるパターンが多くて答えにくい。
原則は「リソースはすべてソースフォルダに入れる。classファイルがある
フォルダには入れない」こと。
これで解決できないなら、プロジェクトとパッケージの階層構成、
getResourceAsStreamにどういう引数を与えているか、できれば
.classpathファイルの内容も合わせて質問しなおすことをすすめるよ。
あともしプラグイン作ってるなら別の作法もあるからそう書いたほうがいい。

また非常に初歩的なとこだけど、本当にjarファイルに目的のファイルが
入っているかjarコマンドで確認したほうがいい。↑の原則を理解せずにexport機能
使ってjarファイルを作ってしまい、リソースが抜けるパターンがあるから。
0388デフォルトの名無しさんNGNG
>>384
|table.setSize(400,400)しても変化がなさそうにみえます。
これを読むとテーブル自体の高さを変えたいように読めるが、

|幅はTableColumnのsetWidthで変えられるからいいんですけど。
これをよむとテーブル内の各行の高さを変えたいように読める。
どっち?
0389デフォルトの名無しさんNGNG
>>388
まぎらわしくてすみません。やりたいことは、テーブル自体の大きさの
変更です。

方法がよくわからなので、幅に関しては後者の方法で代用してしまって
います。

よろしくお願いします。

ついでながら、テーブルを横幅・縦幅いっぱいに設定する方法と、再
描画する方法も教えていただけると助かります。色々試してみたけど
うまくできなかったもので。
0390デフォルトの名無しさんNGNG
SWT超初心者です。
swtexamples.jarの入手方法が解かりません・・・
eclipseの入っているフォルダ内を探しても出てこないのですが、
ttp://www.eclipse.org/documentation/html/plugins/org.eclipse.platform.doc.isv/doc/samples/org.eclipse.swt.examples/doc-html/swt_manual_setup.htmlとか
eclipceヘルプとかではswtexamples.jarが既にPCに入っているという前提で書かれてる気が・・・
更新かけても入っていない模様なのでどなたか教えてください。
0391デフォルトの名無しさんNGNG
>>390
ダウンロードページの「eclipse-examples-x.x-win32.zip」(x.xはバージョン)
というファイルの中に入っているよ。
これはプラグインなので、Eclipseにインストールして使える。
0392390NGNG
>>391
ありがとうございます。
まずは自分の持ってるeclipseSDKのダウンロードページを選択して、
そのページにあるexamplesをダウンロード、という流れだったのですね。
eclipse本体はオンラインダウンロードしたのではなく
書籍付属CD-ROMから入れたので、解りませんでした。
0393384NGNG
384です。自己解決しました。

最初にRowLayoutを貼ってしまったので、後でGridLayoutでFILL_BOTHしても
効かなかったようです。最初のレイアウトをGridLayoutにしたらうまくいきました。

tableのリフレッシュはStructuredViewerrを使える状況ならrefresh()すればいい
と思うのですが、今回は使えなかったので、tableをremoveAll()して、中身を
作り直すことでなんとかしました。もっとましな方法があったら教えてください。

0394デフォルトの名無しさんNGNG
>>393
普通にTableItemにsetTextをやり直せば表示も更新されるだろ?
0395デフォルトの名無しさんNGNG
ScrolledComposite や Canvas などの Scrollable に
Text(parent, SWT.MULTI) を貼り付けると Wheel mouse が効かなくなります。

SWT.MULTI を SWT..SINGLE にすると Wheel mouse でスクロールします。
SWT.MULTI にすると Whell mouse のイベントを Text が Grab しているようです。
Text Widget 内で Scroll する必要がない場合もです。

どうすれば、Wheel mouse でスクロールするようになるのでしょうか。

環境は swt-2.1.3/Windows XP です。
0396デフォルトの名無しさんNGNG
そういう場合って Text(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL)とかやるんじゃないの?
0397デフォルトの名無しさんNGNG
parent をスクロールさせたいのです。
どうしたらスクロールさせられるのでしょうか。
0398384NGNG
>>394
ああ、普通はそうやればいいのですね。
今回は行と列が増減するタイプの表でしたので、あんな処理になりました。
0399デフォルトの名無しさんNGNG
>397
ScrolledCompositeに直接Textを乗せるんじゃなくて、
Compositeを乗せてそこにTextを乗せては?
0400デフォルトの名無しさんNGNG
SWTに、HTMLエディタコンポーネントみたいなものってある?
Swingだとあるよね?
0401デフォルトの名無しさんNGNG
>>399
Composite を間に入れてもだめでした。
Text を選択しなければ parent の Wheelスクロールはするのですが。
いったん選択するとだめですね。
0402デフォルトの名無しさんNGNG
仕様にもよると思うけど必要なタイミングでparentにフォーカスを当てるってのは?
Textからフォーカスがロストした時とか。。。力技になっちゃうけど。
0403デフォルトの名無しさん NGNG
SWT.V_SCROLLをつけた複数行Textで、テキストが挿入される度に自動的にスクロールを
一番下へ持っていくにはどうすればよいのでしょうか?
0404デフォルトの名無しさんNGNG
>>403
ModifyListenerで文字列の入力を検出して,その時に何行あるか調べてsetTopIndex
すればとりあえずはいいんじゃない? スタイルビットにSWT.WRAPが入ってるときに
どうなるかは知らないけど。
0405403NGNG
text.setTopIndex(text.getLineCount());

こんな感じで解決できました。
WRAPにも対応できたみたいです。
ありがとうございました。
0406デフォルトの名無しさんNGNG
SWTで作成したプロジェクトをjava web startで配信した事のある先生に質問です。

swt-win32-2136.dllを含めて配布する時に、パスが通らなくて悩んでいます。
.jnlpにはnativelibで指定しています。

クライアントに個人でswt-win32-2136.dllを入れておかないと駄目なのかな?
そんなわけないと思うんですけど・・・。
0407デフォルトの名無しさんNGNG
>>406
http://www-106.ibm.com/developerworks/opensource/library/os-jws/
0408デフォルトの名無しさんNGNG
>>407
どうもです。
実は自分もここ見ながらやりました。
でも・・・できなかったんですよ。


C:\Documents and Settings\namae\Application Data\Sun\Java\Deployment\javaws\cacheの更に下のほうに
swt-win32-2136.dllは配信できてます。
でもswt-win32-2136.dllが見つからないって怒られます。
0409デフォルトの名無しさんNGNG
jfaceのApplicationWindowを使った場合
リサイズを不可にする方法ってあるんですか?
0410デフォルトの名無しさんNGNG
俺はJFaceは使ってないけど,APIリファレンス見た感じではsetShellStyle(int)で指定
するんじゃない? javadocの記述を見るとShellのインスタンスが作成されるのはopen()
が呼ばれたときで,それまでにsetShellStyle()しておけばそのスタイルを使う・・・,
みたいに読めるが。
まあ,俺はJFace使ってないから試したこと無いんだけどね・・・。
0411デフォルトの名無しさんNGNG
>>410
コンストラクタの部分でsuper(null)の後にsetShellStyleを記述したら
できました。APIリファレンス見てたのに見逃してました。
ありがとうございます。
0412デフォルトの名無しさんNGNG
ところで皆さん、これ、面白くないですか?
ttp://rswt.sourceforge.net/
Remote AWTのSWT版、ってことでしょうか。

ああでも、SOAが流行ってる昨今、この手のモデルはもう流行らないのかな?
0413デフォルトの名無しさんNGNG
RemoteAWTってなんだったの?
0414デフォルトの名無しさんNGNG
SWTでちょっとした画像ビューアみたいなのを作ってみたんだけど,画像ファイルを展開する
時に問題が・・・。SWTで普通にファイルから画像を読み込むと,まずImageDataとしてロード
して,その後ImageDataからImageに変換するっていう流れになるけど,サイズの大きなJPEG
画像(縦横3000pixelぐらい)を読み込むと,どうもImageDataの大きさが160MBぐらいある
らしくってOutOfMemoryErrorが出てしまう・・・。一度ImageにしてしまえばJavaヒープはほとんど
消費しないんだけど,その前段階が・・・。Javaヒープの最大サイズを196MBとかにして起動すれば
とりあえず動作はするんだけど,ImageDataを捨てた後はそのうち数MBしか使ってないという・・・。何かいい方法はないかな?
0415414NGNG
あ,BufferedImageとして読み込んでAWTのCanvasに描画すれば画像展開時のメモリ消費は
半分以下ですむなあ・・・。でも,そのためだけにSWT_AWT使うのってなんか情けない・・・。
描画もSWTのCanvasとImageの方が速いし・・・。
0416デフォルトの名無しさんNGNG
そこでSwingですよ。
0417デフォルトの名無しさんNGNG
http://www-6.ibm.com/jp/developerworks/java/040702/j_j-2dswt.html

役に立つかどうかわからんけど。
0418(・∀・)NGNG
参考になる +1
0419デフォルトの名無しさんNGNG
参考にはなるが、結局ImageDataに展開しているから解決策にはならない +1

ところで、単なるviewerならBufferedImageに全部展開してそのあと
いくつかに領域を区切って一個ずつImageData生成->Image生成->ImageData破棄
ってやればメモリを節約しつつ分割したImageを手にできるでしょ。
それを並べたcanvasにそれぞれ貼り付けたら? そのデータをまた
画像処理するとかだと面倒な話になるけどviewerならこれでも可だと思う。
0420デフォルトの名無しさんNGNG
実は>>417はすでに知ってたのでBufferedImageからImageDataへの変換も今試して
みてるんだけど,とりあえずBufferedImage全体をImageDataへ変換させてみたら
ものすごく重い・・・。どの部分がボトルネックになってるのかまだよく分からないんだけど,
とりあえず下記のアルゴリズムだと小さい画像はともかくとして大きい画像はかなり待たされる。


ImageData convert(BufferedImage bufferedImage) {
  int imageHeight = bufferedImage.getHeight();
  int imageWidth = bufferedImage.getWidth();

  PaletteData palette = new PaletteData(0xFF0000, 0xFF00, 0xFF);
  ImageData imageData = new ImageData(imageWidth, imageHeight, 24, palette);
  int[] rgbArray = new int[imageWidth];
  for (int y = 0; y < imageHeight; y++) {
    bufferedImage.getRGB(0, y, imageWidth, 1, rgbArray, 0, imageWidth);
    imageData.setPixels(0, y, imageWidth, rgbArray, 0);
  }
  return imageData;
}
0421414NGNG
名前欄にレス番号入れ忘れた・・・。
0422414NGNG
 無茶苦茶な方法だけど,多少速くBufferedImageをImageDataに変換する方法見つけた・・・。
ImageIOのImageReaderで画像を読み込む際に,読み込んだ画像を指定したBufferedImage
に対して書き込ませることができることを利用して,ImageReaderが読み込んだ画像を直接
ImageDataに書き込ませる。
 具体的には,ImageDataが実際に画素値を格納しているbyte配列をjava.awt.image.DataBufferByte
でラップして,それをさらにラップして作ったjava.awt.image.WritableRasterを使ってBufferedImage
を構築,ImageReaderで画像を読み込む際にそこへ読み込ませる。すると最初のImageData
に画像の画素値が書き込まれているので,それをそのままImageにすればOK。
 ただ,画像の形式ごとにかなり面倒なコーディングが必要になるので他人に勧められない
のが最大の弱点・・・。

 ちなみに,ここまでやってるうちに気付いたんだけど,SWTで普通に画像を読み込んで
作ったImageDataはなぜか異様にメモリを食ってるっぽい。上記の方法で読み込むと,
画像を分割して読み込まなくてもメモリは100MBぐらいしか使わない。無駄な60MBは何?
0423デフォルトの名無しさんNGNG
Workplace Client Technology, Micro Edition 5.7が出た。
まあ中身はWebsphereStudioDeviceDeveloper5.7+ライブラリ
なんだけど、このバージョンから(e)SWTによるクライアントアプリの
開発が正式にサポートされた。これまではSWTはサポート外で
クライアントはあくまでもAWT/Swing or ブラウザで作ってねって
ことだったんだけどね。
0424デフォルトの名無しさんNGNG
SwingにNativeっていうL&FができるらしいけどこれってSWTみたいなものなのかな?
0425デフォルトの名無しさんNGNG
昔からあるシステムLaFのことじゃないの?
0426デフォルトの名無しさんNGNG
Nativeに合わせて自動選択してくれるとか。
0427デフォルトの名無しさんNGNG
独自描画なのは変わらなくて
Win98ならWin98っぽいSwingのL&Fを選んでくれて
WinXPならWinXPっぽいSwingのL&Fを選んでくれるだけってこと?
なんか大々的にアピールしてたからもっとドラスティックな変更なのかと思った。
0428デフォルトの名無しさんNGNG
大々的にアピールしてた?
0429デフォルトの名無しさんNGNG
http://itpro.nikkeibp.co.jp/members/NBY/ITARTICLE/20040730/1/
JavaのGUIコンポーネントであるSwingは,
ルック・アンド・フィールを切り替えるための仕組みを既に備えている。
次版ではその選択肢の一つとして「OSネイティブ」を用意する。
これに対応するのはWindows XPとGTK。
将来はLonghornにも対応する
0430デフォルトの名無しさんNGNG
>>429
すでに備えている仕組みを使って実現するって書いてあるのにどうして
Swingが独自描画じゃなくなるだなんていう勘違いをしたんだ?
0431デフォルトの名無しさんNGNG
OSネイティブっていう名称から。
0432デフォルトの名無しさんNGNG
Javaが選択したOSっぽいL&Fの描画をするんじゃなくて、
OSの命令を使って描画するんでしょ?
だからSWTみたいなのでいいと思うよ。
Swingの切り替える選択肢の中にSWTがあるみたいな感じ。
0433デフォルトの名無しさんNGNG
軽量コンポーネントじゃないな。
0434デフォルトの名無しさんNGNG
嘘、大げさ、紛らわしい。
0435デフォルトの名無しさんNGNG
しかし、いまだに公式サイトに情報がないし、大々的というかなぁ。
0436デフォルトの名無しさんNGNG
それっていわゆるAWT
0437デフォルトの名無しさんNGNG
SwingがSWTみたいなのを内包してくれればSWTをあえて使う必要がなくなって大歓迎なんだけど
0438デフォルトの名無しさんNGNG
AWTで出来ないのはJTableとかだけ?タブとかリッチエディットとかも出来ないよね?その辺りの部品がAWTにもあれば
あとWebページでもそうなんだけどUTF-8の文字コードで作ったページってウインドウズのIEでみるとなんか文字フォントがおかしいんだよなぁ
0439デフォルトの名無しさんNGNG
AWTに入れるには、全てのOSでサポートしてくれないと。
0440デフォルトの名無しさんNGNG
>>433
軽量コンポーネントじゃないけど、
動作は軽量コンポーネントより軽いw
0441デフォルトの名無しさんNGNG
>>440
のならいいね。
0442デフォルトの名無しさんNGNG
まあOSの機能を使うんだから確実に軽くなるだろうな。
でなきゃ今更そんな機能付け加えないって。
0443デフォルトの名無しさんNGNG
しかし、LaF切り替えるだけで速くなるなら、これほど嬉しいことはないね。
0444デフォルトの名無しさんNGNG
もっと早くこの機能を実現していたらよかったのに。
0445デフォルトの名無しさんNGNG
時間がかかるからやりたくなかったんじゃないの?
SWTで尻に火がついた、と。
0446デフォルトの名無しさんNGNG
結果的に回り道になってしまったね。
これでSUNはずいぶんと損をしたに違いない。
0447デフォルトの名無しさんNGNG
いや、時間的には一番効率がよかったと思うぞ。
・とりあえずネイティブの機能を使ってしょぼいけどGUI機能を実装
→これで、GUIのない処理系になることは避けられた

・高機能のGUIをJavaで記述
→機能が低いという不満を解消。Javaで記述したので効率よく開発できた

・コードの効率化で高速化
→遅いけど使えるようになった

・ネイティブの機能を活かして実装
→ほんとに使えるようになる/なればいいなぁ

こうやって、「まず動くこと」が実現されてきたわけだ。
1年後の高機能GUIより、いましょぼいGUI
1年後の速いGUIより、いま遅いGUI
という要求が大きかったから。
0448デフォルトの名無しさんNGNG
>>447
しっかり回り道しているじゃんw
0449デフォルトの名無しさんNGNG
そういやそうだ。
しかし、時間かけてGUI作って空白期間を作ることに比べれば損はしてないはず。

っていうか、SunってJavaで得してるの?
0450デフォルトの名無しさんNGNG
swt-win32-2135.dllへのライブラリパスが何指定しても通んない…
仕方ないからjava.exeと同じとこに置いて使ってます

>>406とかとおんなじ原因な気がするけど、なにが悪いのかわからんよう
0451デフォルトの名無しさんNGNG
>>450
swt.jarとバージョンあってる?
0452swtもjwsも使ったこと無いけどNGNG
>>450
System#loadLibrary使ってるとしたら
Windowsのdllの検索は
EXEと同じところ、
System32、
パスが通ってるところ
(他にもあるかな?)
の順番です(順番ちがってたらごめん)
dllはどこに配置されてますか?
0453デフォルトの名無しさんNGNG
条件に応じてTableItemの表示/非表示を切り替えるには
どうしたらいいでしょうか。

それっぽいメソッドが見つけられないので
removeして再作成するしかないのかと思っているところです。
0454デフォルトの名無しさんNGNG
>>452

java.library.pathの指定は?
0455デフォルトの名無しさんNGNG
swtでラベルとボタンを横に並べたのですが、
ラベルの文字とボタンとが上揃えになります。

これを中央揃えにする方法はありますか。
0456デフォルトの名無しさんNGNG
>>455 それぞれのコンポーネントにLayoutDataを設定する。
0457デフォルトの名無しさんNGNG
>>456
早速ありがとうございます。

LayoutData調べたのですが、指定方法がわからなかったので、
GridLayoutを使って解決しました。
(GridLayoutを使う場合、特に何も指定しなくても中央に揃ってくれました。)

GridLayoutを使うのはスマートではない気がしますので、
よろしければ、LayoutDataでのやり方を教えていただけませんでしょうか。
0458452NGNG
>>454
その値出力してみたけど
d:\j2sdk1.4.1_07\bin;.;C:\WINNT\system32;以下パス通ってる所色々
だったよ
(452では「カレントディレクトリ」が抜けてますね。)
SWTのDLLがある場所をこのプロパティに追加したらOKなのかね?
0459デフォルトの名無しさんNGNG
>>458 OKなのかね?ってまずそれだろ。
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/faq.html

つーか、元々の質問がこれに追加したつもりだけどdllが見つからん
ってことじゃないかと思ってたけどね。
0460458NGNG
c:\temp\xxx.dllをロード

String lib = System.getProperty( "java.library.path" );
lib = "C:\\temp;" + lib;
System.setProperty( "java.library.path", lib );
System.loadLibrary( "xxx" );
↓
UnsatisfiedLinkError

cd c:\temp するとOK。
0461デフォルトの名無しさんNGNG
>>460
なにをやりたいのかよくわからん。
あたりまえだよね、それ。
dllのフルパスわかってるなら普通はわざわざロードするとき
そんなことする必要ないしjava.library.pathの
動作テストしているつもりなのかな。。
0462デフォルトの名無しさんNGNG
そろそろJNIスレか初心者スレネタだな。
0463デフォルトの名無しさんNGNG
Java wiz SWT見れないけどなにこれ?サーバの調子が悪いだけ?
このサイトのトップページ見ようとしたらパスワード要求されたんだけど・・・
0464460NGNG
>>461
いや>>459に対する返答です。
0465デフォルトの名無しさんNGNG
>>464 いや、だからさ、VM起動してからパス指定してどうすんねんってこと。
java.library.pathはjavaの起動オプションで-Djava.library.path=hogehoge
という感じで使う。>>459のリンク先にもそう書いてあるでしょ。
0466デフォルトの名無しさんNGNG
>>447 なるほどわかりやすい説明だ>>447って頭いいなぁ。と3週間前にレス。
0467デフォルトの名無しさんNGNG
質問です。既出だったらごめんなさい。
まず、似たような機能を持つメインクラスとサブクラスがあります。
それを組み合わせたものを作成したいのです。
メインクラスのボタンを押したときのイベントで別のサブクラスを開くという
処理をしたいのですが、SWTExceptionが返ってきてしまいます。
public static void main(String[] args)の中で同じことをすると
メインクラス終了時にきちんと開かれるんですが。
0468デフォルトの名無しさんNGNG
>>467
それだけの情報じゃよくわかりません。
現象を再現する最小限のコードとまではいわないけど
スタックトレースくらいは欲しい。
いりーがるすれっどあくせすかなつー気もするけど。
0469デフォルトの名無しさんNGNG
>>467
イベントの処理全般で、RuntimeExceptionが発生するとそうなる。
まずは、ボタン押下イベント内部の処理を try { } catch (Throwable t) { } で囲んでログでも出して見れ。
0470464NGNG
>>465
失礼しました。
0471デフォルトの名無しさんNGNG
既出だったら申し訳ございません。

テーブルを以下のように正方形に4つ配置して、
【1】【2】
【3】【4】
4のテーブルだけスクロールバーが縦横ともに設置。
横スクロールバーを動かすと2,4テーブルのデータが連動して内部スクロール
縦スクロールバーを動かすと3,4テーブルのデータが連動して内部スクロール
ということって出来るんですかね?
(縦横に複数列ヘッダが必要で1画面で見ていたVBのコンバージョンを要求された)
スライダー使って左上セルの座標を設定すればいいとか思ってテストしてるけど、
TableクラスのAPI見てもなさそうだしなぁ。

ていうか、SWTを採用するシステムに、「VBと見た目が同じだから」とかいう
理由で決定されたことってありません?
0472471NGNG
質問だけだと申し訳ないので超遅レス
>>408
そのdllをjarコマンド使ってjarファイルにしましょう。
んで、JNLPファイルに
<nativelib href="(dllが入っているjarファイルパス)"/>
追加。
これで動くと思いますが。
0473471NGNG
途中で書き込んでしまいました…。

どんなパスの仕方はしているか分かりませんが、全部のjarファイルに同じ署名をしてますよね?
時々正しい状態でも他のプログラムを入れ替えるとダウンロードに失敗したり動作しなかったりします。
一度削除して署名し直して実行したりしてみてはどうでしょうか。
では。
0474デフォルトの名無しさんNGNG
>>471
上部と左と2ヶ所にヘッダを表示したいというのであれば,俺は使ったこと無いけど
それっぽい表示のできるライブラリがあるかも・・・。
ttp://www.kupzog.de/fkmk_uk/Programming/Downloads/downloads.html

自作するのであればTableの外側に自分でヘッダを描画するという手もあるかも・・・。
0475471NGNG
>>474
このライブラリ使ってヘッダ表示が出来ました。ありがとうございます。
ここからダウンロードできるjarファイルを解凍すればそのもののサンプルが入ってました。

次の課題はセルの結合。標準のメソッドには無いみたいだし、さてどうしようか…。
0476デフォルトの名無しさんNGNG
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/swt?page=FrontPage
0477デフォルトの名無しさんNGNG
>>474
よさげなライブラリですね。こいつのライブラリの存在を知らず
サポート対象外覚悟でSPREAD(GrapeCity)のActiveXコントロールを使っています。
しかし、コントロールをマウスクリックすると、サクっと消えたり
タブでフォーカスをセットしたりはずしたりを繰り返すと復活したりと
少し挙動不審で悩んでいます。
OleControlSiteをWM_PAINTしたときに消えているようなのですが。。
0478デフォルトの名無しさんNGNG
SourceViewerの構文強調について質問させてください。
HTMLエディタを作っているのですが
<body>から</body>に囲まれた間だけ
<div>などのタグを強調表示したいのですが
デフォルトの領域以外の特定の領域に
ルールを適応する方法が分かりません。

デフォルトの領域からの強調表示は
http://www13.plala.or.jp/observe/index.html
を参考に作りました。

お願いいたします。
0479デフォルトの名無しさんNGNG
そこでSwingですよ。
0480デフォルトの名無しさんNGNG
非矩形ウィンドウにするのって、

org.eclipse.jface.window.Window.setShellStyle(SWT.DRAW_TRANSPARENT);

で合ってる?
0481デフォルトの名無しさんNGNG
Tableのヘッダを2行設定する方法ってある?
0482デフォルトの名無しさんNGNG
Tableに縦スクロールを設定する方法って???
0483ノノ 三 ┳┳NGNG
Tableを反転させる権限を設定する方法教えてくれ。
0484デフォルトの名無しさんNGNG
>483
「反転」っていうのは
Table.setBackground(Color)
Table.setForeground(Color)
でできると思うけど
「反転させる権限」って
意味がよくわかりまへん。
0485デフォルトの名無しさんNGNG
SWTのStyledTextで、文字を太字にしたり赤くしたりしてるのですが、やたら重いです。
なにか書き方が良くないのでしょうか?

コードですが、例えばButtonのSelectionEventで以下のようなコードを実行し、
StyledTextの末尾に書式付きの文字列を追加します。
ここでtextEditorがStyledTextです。

Color color = getDisplay().getSystemColor(SWT.COLOR_RED);
String text = "ほげ";
StyleRange styleRange = new StyleRange();
int charCount = textEditor.getCharCount();
styleRange.start = charCount;
styleRange.length = text.length();
styleRange.fontStyle = SWT.BOLD;
styleRange.foreground = color;
textEditor.append(text);
textEditor.setStyleRange(styleRange);
textEditor.setSelection(charCount + text.length());

開発環境(WindowsXP、Pentium III 1GHz、メモリ768MB)で動かすと、
テキストの追加やStyleRangeの適用が目で追えるくらいの遅さになります。
文字列を追加するたびに遅くなります。
VMWare上のLinuxで動かした時はさらに遅く、
古いマシン(Windows98、Pentium II 233Mhz、メモリ64MB)で動かした時はテキストの追加に
2,3秒かかりました。
0486485NGNG
自己解決しました。StyleRangeの管理をStyledTextに任せず、
独自にArrayList使って管理することで軽くなりました。
つまりこうです。StyledTextを持つクラスのインスタンス変数にArrayListを持たせて、
新しいStyleRangeを作成した時は、先にArrayListにセットするようにします。
StyledTextへの適用は、setStyleRange(StyleRange)ではなく
setStyleRanges(StyleRange[])を使い、ArrayListをtoArray()したものをStyledTextに
渡すようにしました。

StyleRangeの管理をStyledTextに任せていたプログラムに対してプロファイル取ったら、
StyleLayout$StyleItem[]が、適用したStyleRangeの20倍以上生成されていてびっくり。
どうなってるんでしょう?
ってSWTのソース見れば分かりますねそうですね。
0487デフォルトの名無しさんNGNG
そう…よかったわね…。
0488デフォルトの名無しさんNGNG
.manifestを置いてWinXPのスキンを有効にすると
DROP_DOWN置いたCoolBarが妙に太くなる.

http://monalipse.sourceforge.jp/tmp/coolbar0.png
下がSnippet150そのまま,上がSnippet150のPUSHをDROP_DOWNにしたもの.
左がスキンなし,右があり.

これはXPの仕様? それともSWTの問題?
細くする方法教えてくだちい.SWTの変更も辞さず.
0489デフォルトの名無しさんNGNG
>>488
SWTとは全く無関係のIEを弄っているときに
同様の現象に遭遇したことある。
たぶんXP。
0490デフォルトの名無しさんNGNG
>>489
ありがとー.

その後いろいろいじってみたところ,
・CoolBarじゃなくてToolBarの問題
・最初のToolItemがDROP_DOWNかどうかで決まる
  (最初がPUSHなら他にDROP_DOWNがあっても太くならない)
ことが判明.他にもいろいろ細かい条件があるけど,まぁ大筋.

結論としては,最初にダミーのPUSHなToolItemを入れて,
残りのアイテムを作った後に最初のダミーを破棄すればOK,みたい.
ただしImageなしのアイテムではうまくいかないっぽい.
殆どのケースではImage必須でも問題ないかと.
http://monalipse.sourceforge.jp/tmp/coolbar1.png

こっちは面倒でLunaじゃないんだけど,
上が素のeclipse,下はパッチ当てたもの.
http://monalipse.sourceforge.jp/tmp/eclipse0.png
間延び感が嫌だったのよ.パースペクティブバーの下が余ってるのもね.
ようやく落ち着いて使えるようになった.
0491デフォルトの名無しさんNGNG
monalipse の作者の人?
0492デフォルトの名無しさんNGNG
ちなみにLunaで素の場合はこんな感じらしい.やっぱり間延び気味.
http://download.eclipse.org/downloads/drops/R-3.0-200406251208/images/org.eclipse.ui/newlookandfeel.gif

>>491
うん
0493489NGNG
>>490
>結論としては,最初にダミーのPUSHなToolItemを入れて,
>残りのアイテムを作った後に最初のダミーを破棄すればOK,みたい.
詳細な解説ありがとう。
うまい回避策作ったね。
俺もその方法使わせてもらうよ。
0494デフォルトの名無しさんNGNG
TableViewerのDialogCellEditorの使い方を教えてください。

このサイト↓の通りにテーブルビューアを作成したのですが、
http://www13.plala.or.jp/observe/JFace/jfaceViewer3.html

作成した後、ColorDialogCellEditorを配置したセルをクリックした後、すぐに隣のセルをクリックすると
隣のセルにColorDialogCellEditorのボタンが表示されてしまいます。(隣のセルはTextCellEditor)
こんな感じ↓
http://2ch-up.x0.com/cgi/up/img/img2780.jpg

何か他に必要な処理があるのでしょうか?
eclipse2.1.2、org.eclipse.jface.2.1.2を使ってるのがダメ?
0495デフォルトの名無しさんNGNG
あ、ここはひょっとしてSWTの話オンリーなスレですか。失礼しました。
0496デフォルトの名無しさんNGNG
タスクトレイに常駐するSWTアプリをJWSから使いたいのですがタスクトレイ用アイコンをど
のように設置したらいいのかわかりません。
どなたかタスクトレイに常駐するSWTアプリをJWSで使っている方いらっしゃいませんか?
ちなみにソースコードの中では

image1 = new Image(display, "icon.ico");

こんなふうにリソースを取ってきています。
0497デフォルトの名無しさんNGNG
>>496
JWSでという条件付けの意味が理解できないが,少なくともSWTでのタスクトレイは
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet143.java?rev=HEAD&content-type=text/vnd.viewcvs-markup
0498496NGNG
>>497
タスクトレイに常駐するSWTアプリは既にあるのですが、それを”JWSで”公開したいのです。
しかし、ふつうにicon.icoというファイルをjnlpファイルのnativelibタグに含めるだけでは動かな
かったもので。。。_| ̄|○
0499デフォルトの名無しさんNGNG
>>498
そゆことか…… じゃあスレ違い.SWT全然関係ないじゃない.

.icoはjarに入れて,アプリ側ではjarから(クラスパスから)ロードする.
image1 = new Image(display, getClass().getResourceAsStream("icon.ico"));
0500496NGNG
>>499
スレ違いで申し訳ないm(_ _)m
アリガトウゴザイマス
0501デフォルトの名無しさんNGNG
Shell( d, SWT.ON_TOP) の挙動が、
Ver 2.1.3 から 3.0 に移ったときに変わってしまい
非常に困っていたのだが、
Eclipse 3.1M3 に移行したら 2.1.3 時代の正しい挙動に戻った。助かった。

ソースを書き直そうと諦めていたのだけど
書き直さなくて良かった。
0502デフォルトの名無しさんNGNG
ダブルバッファをしたつもりだけど、まだちらつく。
まだ工夫したりないんだろうか。誰かお助け。

↓背景画像の上に、マウスのある座標に赤い点線で四角を描く

//ダブルバッファイメージ作成
Image bgImage = new Image(display, canvas.getClientArea());
GC bgc = new GC(bgImage);
//背景画像(img)と赤い点線の四角を描画
bgc.drawImage(img, 0, 0);
bgc.setForeground(red); bgc.setLineStyle(SWT.LINE_DOT); bgc.drawRectangle(_x,_y,32,32);
//キャンバスにWバッファイメージを描画
GC gc = new GC((Drawable) e.getSource()); gc.drawImage(bgImage, 0, 0);
//後始末
bgImage.dispose(); bgc.dispose(); gc.dispose(); red.dispose();
0503デフォルトの名無しさんNGNG
>>502
CanvasのスタイルビットにSWT.NO_BACKGROUNDとかは入れてる?
ダブルバッファリングしてるのにちらつくというのでまず思いつくのは
自動的に行われる背景の塗りつぶしを無効化してないというものだけど・・・。

あと,背景を全て特定の画像で塗りつぶしてしまうのであれば,
ダブルバッファリングしなくてもSWT.NO_BACKGROUNDだけでもいけるかも。
同じ領域を2度以上塗りつぶす処理が入るのであればダブルバッファリング
した方がいいとは思うけど。
0504デフォルトの名無しさんNGNG
>>503

ドンピシャ。ありがとー
0505デフォルトの名無しさんNGNG
MobExeがダウンロードできないんだが、本家以外に配布してるところない?
0506デフォルトの名無しさんNGNG
>>505
MobExeってたしか,指定したjarとかをjavaw.exeで実行してくれるだけって
やつだっけ? それだったら別にそれを使わなくても類似品はいろいろある。
例えばJSmooth (ttp://jsmooth.sourceforge.net/)とか。
0507デフォルトの名無しさんNGNG
JSmoothって、VM環境とかもパックしてくれるのかな?
それとも、JSmoothでこさえたexeの稼動は、JVMがインスコされている
環境が前提なんでしょうか?

(JVMがインスコされていない環境へ、JSmoothで作成したexeの導入が可能かどうか)
0508506NGNG
>>507
俺は実は自分でJSmoothを使ったことがあるわけではないんだが,
少なくともJSmooth公式サイトに書かれている説明によれば,
JSmoothが生成してくれるJavaアプリ起動用exeは環境変数やレジストリ
を検索してJavaVMを探し出してJavaアプリを起動する。
JavaVMを発見できなかった場合や,JavaVMのバージョンがそのJavaアプリの
実行に必要なバージョンよりも古かった場合などにはJavaVMをダウンロード
してくるように促すメッセージを表示してダウンロードサイトへ誘導するらしい。
0509デフォルトの名無しさんNGNG
a
0510デフォルトの名無しさんNGNG
SashFormの区切り線を動かしたときのイベント受け取るには
どうしたらいいのでしょうか?

addControlListenerでは飛んできません。
0511デフォルトの名無しさんNGNG
>>510
SashFormが直接提供している機能の中にはそういうのは無いと思うなあ・・・。
getChildren()でSashForm上に配置されているControlを取得し,その中から
Sashだけ選んでListenerをセットするとかしないとだめかも。

もしくはSashFormを使わずにCompositeとSashでSashFormみたいなクラスを
自作する・・・。
0512デフォルトの名無しさんNGNG
>>511
ありがとう。
いろいろやってみます。
0513デフォルトの名無しさんNGNG
区切り線を動かすとPaintEventが発生するだろうから
PaintListenerで何とかできないか?
0514507NGNG
>>508
情報クスコ!お礼が遅くなりますた。
なるほどね、そういう製品なのね。自分でもチェケラッチョしてみます。
0515デフォルトの名無しさんNGNG
SWT イイネー

カスタムウィジェットのCTabFolderがお気に入り。

チェックボックスが無い!と思ったらButtonで指定するとは。。


で、質問。
GridLayoutでちょっと凝ったレイアウトしようとすると
個々のコントロールのGridDataって共有できないの?

ちょっと右に寄せるだけなのにーとか思いつつ
しこしこnew GridData()やってます。

0516デフォルトの名無しさんNGNG
SWT イイネー

カスタムウィジェットのCTabFolderがお気に入り。

チェックボックスが無い!と思ったらButtonで指定するとは。。


で、質問。
GridLayoutでちょっと凝ったレイアウトしようとすると
個々のコントロールのGridDataって共有できないの?

ちょっと右に寄せるだけなのにーとか思いつつ
しこしこnew GridData()やってます。

0517デフォルトの名無しさんNGNG
SWT イイネー

カスタムウィジェットのCTabFolderがお気に入り。

チェックボックスが無い!と思ったらButtonで指定するとは。。


で、質問。
GridLayoutでちょっと凝ったレイアウトしようとすると
個々のコントロールのGridDataって共有できないの?

ちょっと右に寄せるだけなのにーとか思いつつ
しこしこnew GridData()やってます。
0518デフォルトの名無しさんNGNG
SWT イイネー

カスタムウィジェットのCTabFolderがお気に入り。

チェックボックスが無い!と思ったらButtonで指定するとは。。


で、質問。
GridLayoutでちょっと凝ったレイアウトしようとすると
個々のコントロールのGridDataって共有できないの?

ちょっと右に寄せるだけなのにーとか思いつつ
しこしこnew GridData()やってます。
0519デフォルトの名無しさんNGNG
仮にSWTでフォトレタッチソフト作ったらどうなるのかな
動作速度はどんなに工夫しても、実用レベルには到達できないのかな
いや、でも今時のパソコンのリソースを使えば、どうってことなさそうな気もするけど。

誰か画像処理に詳しい人、意見求む。
0520デフォルトの名無しさんNGNG
仕事で使うちょっとしたフィルタソフトなら、SWTつーか、
eclipseのプラグインとして作って使ってる。Xeon2.8GHzの
デュアル構成 + メモリ1GBでJIS-SCIDのデータを処理してる
けど、速度で困ったことはないな。ただSWTになれていないころは、
Imageなどのリソース開放を忘れるときがあってよくメモリ不足になってた。
Sleak使い始めてからメモリリークに悩まされることはなくなったけど。
0521デフォルトの名無しさんNGNG
ほー、Sleak なんてのがあるのか。知らんかった。
0522デフォルトの名無しさんNGNG
>>518
0523デフォルトの名無しさんNGNG
SWTで、複数画面(shell)のアプリケーションを作るには、どのように
したらよいのでしょうか?
[ログイン画面]→[一覧画面]→[詳細画面]→[登録画面]→[検索画面]
というように、別shellを開いたら、新しいshellがオーナーとなり、
呼んだshellは非表示となり、常に一つのオーナーshellしか表示されて
いないようにしたいのですが、SWTでのやり方が分りません。
vs2005のC#とかだと、Ownerというメソッドがあって、それを子Formに
設定してやると、子がOwnerになるという事が出来たので、
SWTでも同じ事をやりたいのですが、メソッド等が分りません。
もしも、分かる方がおりましたら、ご教授の程、宜しくお願い致します。
0524デフォルトの名無しさんNGNG
 
0525デフォルトの名無しさんNGNG
なんだマルチか。答えるんじゃなかったな。
0526デフォルトの名無しさんNGNG
SWTでドットエディタでも作ってみようかと思ったんだけど、
SWTって1ドットいじるたびに、新しいImageオブジェクト生成しなきゃいかんの?

今、下のような関数書いてマウスリスナに放り込んでるけど

private void cursorStatus(MouseEvent e){
 ImageData tempImageData = img.getImageData();
 img.dispose();
 tempImageData.setPixel(_x+e.x/spreadRate,_y+e.y/spreadRate,colorIndex);
 img = new Image(sShell.getDisplay(), tempImageData);
 mainCanvas.redraw();
 spreadCanvas.redraw();
}

ImageDataを使ってsetPixelしたあと、Imageのコンストラクタに投げて描画。
非常に非効率な気がする。もっとスマートな方法ない?
0527デフォルトの名無しさんNGNG
>>526
GC gc = new GC(img);
gc.setForeground(...);
gc.drawPoint(e.x, e.y);
gc.dispose();
必要ならGCは使いまわす.

それより,効率が気になるならredrawの領域はちゃんと必要最小限に汁.
0528デフォルトの名無しさんNGNG
SWTてIME制御できます?
データベースで使いたいのですが。
VBと同等のことが簡単にできますか?
すこし面倒な気がするのですが
0529デフォルトの名無しさんNGNG
>>527

よく考えたらGCでできるんじゃん。変な苦労をしてた。
ありがと
0530デフォルトの名無しさんNGNG
>>528
Shell#SetImeInputMode() で満足?
0531デフォルトの名無しさんNGNG
ぬるぽ
0532デフォルトの名無しさんNGNG
敢えてスルー
0533デフォルトの名無しさんNGNG
  /       l___l   \         ||i
  |      ●  |    |  ●  |         |||i
  |         ヽ  /     |          ||||i
  \          ヽ/     /           ||||i    ガッ
 /               \            |||||i
/                  |            ||||||i
|   /\ /       _    |           |||||||i
ヽ_/   Y       / /  /      ∧   ||||||||i
        ヽ    /__//  ノ       / 丶  ||||||||||i
        ヽ  .(_______ノ ヽ      /  丶||||||||||i
       /   / /    ノ     ノ    丶||||||ii
      /    / /    /    ノ      ヽ
     /    / /    /    <        >        /\         /"""ヾ
   /   / / /    ノ      \      /::::::.::.____/:::::::ヽ、       /;:;;:::''' |
 /   / / / |    |    |||||||||iヽ    /::.   ______.:::::::::::::  __ヽ_      |    .|
⊂__/  / /  |   ./  ||||||||||||||||||i\  ./ ::::::/ __。\_ヽv // 。\     |     |
       / /   ヽ_/  ||||||||||||||||||||||i ヽ // ̄ ̄√  ___丶  ̄ ̄\|   |     .|
      / /      ||||||||||||||||||||||||||||iヽ  ∨ ::::::::: / /   tーーー|ヽ  .::::: ::|  |     .|
 / ̄ ̄ ̄ ̄ ̄ ̄ 三三||||||||||||||||||||||||||||i  ヽ | .::::::.  ..::   |    |ヽ  ..::::::| /     .|
/          三三|||||||||||||||||||||||i    \| :::       | |ヽニ⊃| |  ..:::::|ノ      / ←>>531
ヽ         三三||||||||||||ii \        | :       | | |:::::T:: | !. ..::::/      /
 ヽ_____三三||||||iii      \       \:      ト--^^^^^┤   /      /

0534デフォルトの名無しさん05/01/29 03:17:37
タマネギage
0535デフォルトの名無しさん05/01/30 18:30:32
すみません、教えてください。
Eclipse3.0.1でSWTを使用したApplicationを作る場合、
別途、swt-3.0.1-linux-gtk.zipをインストールしないとダメなんでしょうか?
Runするとエラーが出るのですが。
> Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/internal/gtk/OS
>at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
>at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
>at org.eclipse.swt.widgets.Display.<clinit>(Display.java:118)
>at HelloSwt.main(HelloSwt.java:20)
0536デフォルトの名無しさん05/01/30 19:24:23
>>535 swt-pi.jarがクラスの検索範囲に足りない。つーかSWT FAQ参照。
0537デフォルトの名無しさん05/01/30 20:46:39
>>536
サンクス。勉強になりますた。
0538デフォルトの名無しさん05/02/01 23:55:28
Visual Editorで自作のカスタムWidgetを使えるように
Visual Editorを変更してみました。Paletteにアイコンが追加され、
ソースコードも変更されるようになりましたが、
Widgetを貼り付けると白くなります。
実行すれば正常に表示されます。

どこが悪いのでしょうか?
このあたりのVEの変更方法とかが書いてあるところってありますか?
変更したファイルは下記のファイルです。
eclipse\plugins\org.eclipse.ve.swt_1.0.2\vm\swtbeaninfo.jar
eclipse\plugins\org.eclipse.ve.swt_1.0.2\swtpalette.xmi
eclipse\plugins\org.eclipse.ve.swt_1.0.2\plugin.xml
0539デフォルトの名無しさん05/02/02 10:52:09
>>538 そのへんのファイルは全部いじっちゃ駄目。
基本的にプラグインシステムだから、自分で新たに
プラグイン作って差し込んでいく。eclipse.orgや
developerWorksにVE拡張のドキュメントあるから
一読しておけば?
0540デフォルトの名無しさん05/02/07 15:34:51
教えてください。
class DfLabel extends Label {
public DfLabel(Composite parent, int style) {
super(parent, style);
super.setText("default");
}
}
デフォルトの動作を設定したラベル・テキストボックスを上記の様な
感じでクラスを作りたいのですが、実行、エラーになってしまいます。

コントロール系のクラスは、派生して新たなクラスを作れないのでしょうか、
Javaの経験が浅いので何が間違っているのが分からないのですが
よろしく、お願いします。 m(__)m
0541デフォルトの名無しさん05/02/07 15:39:16
SWTのソフトはネイティブ並みでつか?
フリーソフトがあれば教えて下さいでつ。
0542デフォルトの名無しさん05/02/07 15:50:33
そうだな、ひとつ有名なのをあげるとすれば、Eclipseというソフトがある。
054354105/02/07 15:57:22
あそうか。Eclipse本体はカコイイが、それで作れるJ2EEはダサダサ
0544デフォルトの名無しさん05/02/07 16:51:44
SWTとjfaceでできた2chブラウザもあるよ。jface2chっての。
054554305/02/07 17:01:12
V2Cしか知らなかったけど、jface2chも凄いね。

疑問
・jfaceだとペタペタ貼るだけでアプリが出来上がるんだろうか
・RCP版開発とあるけど、RCP対応は何か良いことあるのかなぁ
0546デフォルトの名無しさん05/02/07 17:10:27
>>543
J2EEには画面出力の仕様は含まれていない。
よって、それで作ったJ2EEがださださなのは、自分の責任。
0547デフォルトの名無しさん05/02/07 17:17:46
bittorrentクライアントもSWTなやつあるよね。
054854305/02/07 17:20:35
>>546
画面じゃなくて、作りが汎用機COBOL/JCLな感じでダサダサ
0549デフォルトの名無しさん05/02/07 17:24:18
>>540
基本的にCompositeとCanvas以外のクラスを継承することは
推奨されていない。そのため安易な継承を防ぐために
Widget#checkSubclassっていう安全弁が作りこまれてる。
APIのjavadocや同梱オンラインマニュアル、
http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/faq.html#subclassing
を参照のこと。
0550デフォルトの名無しさん05/02/07 17:27:34
>>545
1. JFaceはSWTウィジットを隠蔽しないからVisualEditorが使える。
2. ものによるんじゃん? ブラウザだったらRCPでつくってもいいと思う。
0551デフォルトの名無しさん05/02/07 18:30:40
>>548
あの、すみませんけど J2EE、特に EJB は COBOL/JCL の管理性を目指して
策定されたって知ってんの?
055253805/02/07 19:01:34
Visual Editorにて独自のカスタムWidgetを編集可能に
するためのプラグインを追加しました。
しかし、Widgetを張り付けると白くなります。
実行時は間題ありません。何が悪いのでしょうか?
実装した拡張ポイントは2つです
org.eclipse.jem.beaninfo.registrations
org.eclipse.ve.java.core.contributors
055354305/02/07 19:21:56
>COBOL/JCL の管理性
( ゚д゚)、ペッ
0554デフォルトの名無しさん05/02/07 19:23:40
>>549 さん
ありがとうございます。 すっきりしました。

public class DLabel {
   private Label  mLabel = null;
   private Composite mComp = null;

   public DLabel(Composite parent, int style) {
  mComp = parent;
     mLabel= new Label(parent, style);
     this.SetFont("", 12, SWT.NORMAL);
}
    ・
    ・
こんな感じに変更しました。
0555デフォルトの名無しさん05/02/07 22:03:20
>>547
azureus?
日本語verがもろ2ch語風って事意外は満足なんだが
蒼蛙更新機とかマジで止めてくれ
0556デフォルトの名無しさん05/02/08 19:10:09
ちょっと聞きたいのですが、Textフィールドをリーターンキーで
移動したいのですが、次の項目を xxx.setFocus();で設定する意外に
VBのSendKey に当たる物はSWTには、無いのでしょうか?
0557デフォルトの名無しさん05/02/09 15:59:53
import java.awt.AWTException;
import java.awt.Robot;

text.addKeyListener(new KeyAdapter() {
  public void keyPressed(KeyEvent e) {
    if(e.character == '\r'){
      Robot robot;
      try {
         robot = new Robot();
         robot.keyPress(0x09);
        } catch (AWTException e1) {
         e1.printStackTrace();
        }
    });
こんなのあるけど awt と SWTって混在して、いいのかよく分からない。
取りあえず、動く・・・・
0558デフォルトの名無しさん05/02/13 19:59:12
SWTを利用して作成されたjface2chを実行してみました。
ネイティブと遜色ない操作性とパフォーマンスに感動したのですが、
作者さんへの連絡方法とかないんですよね。

ソースコード公開してくれないだろうか。。。
0559勇気麺05/02/13 21:55:59
このスレ人気ないね
swingの方が使われてるんだろうか
0560デフォルトの名無しさん05/02/13 23:03:55
すくなくとも、業務システムで、となるとSWTはあまりつかわれないのでは
いくらなんでもテーブルしょぼすぎ
GUIエディタもVEではなあ…
0561デフォルトの名無しさん05/02/13 23:28:47
>>560
どの辺がしょぼいと感じます?
VEもダメですか。。。
0562デフォルトの名無しさん05/02/14 11:55:17
>>561
どの辺も何も…SwingのJTableとでは比べ物にならん。
0563デフォルトの名無しさん05/02/14 12:09:27
SWTのTableだけでは確かにきつい。
JFaceのTableViewerと併用してようやくビューとそれ以外が分離できる。それでも
テーブルの修飾とかでSwingと比べると見劣りするね。
0564勇気麺05/02/14 12:43:01
じゃあTableだけJTableを使おう!
0565デフォルトの名無しさん05/02/14 21:53:25
> すくなくとも、業務システムで、となるとSWTはあまりつかわれないのでは
業務システム自体で、Javaアプリケーションクライアントを、まだ、見たこと
無いんだけど。 仕事で画面系をJavaアプリでどのくらい作られてるだろう。
サーバー系をJavaで作って、あとはスクリプトが多いと思うけど。

開発した人のレスお願いします。
0566デフォルトの名無しさん05/02/14 22:40:09
サーバー側をTomcat/Strutsで、クライアント側をSwingでやりました。
そんなに大変じゃなかったですよ。
Windows、Mac、Linuxに対応させないといけなかったのでSwingを選びました。
SWTだとWindows以外のプラットフォームだとそんなに見栄えが良くないんです。
もちろんWindows専用のプログラムを作るんだったらSWTでもいいんでしょうけど。
0567デフォルトの名無しさん05/02/14 23:02:06
>SWTだとWindows以外のプラットフォームだとそんなに見栄えが良くないんです。

Motif版の予感。
0568デフォルトの名無しさん05/02/14 23:06:28
SWTは、Windows以外ではむしろ遅いしね。
0569デフォルトの名無しさん05/02/14 23:51:31
>>565
開発者にJavaのスキルしかなくて、っていうのは結構ありそうに思うのですが。
0570デフォルトの名無しさん05/02/15 04:04:48
つーかクライアントはブラウザにするよね。完璧なクロスプラットフォームだし。
SWTはもうすこしJFaceが手軽に使えたらなあ。ドキュメントも少ないよ。
0571デフォルトの名無しさん05/02/15 04:32:33
>完璧なクロスプラットフォームだし。
どこが?同じプラットフォームでもブラウザごとに違ったりするのに。
0572デフォルトの名無しさん05/02/15 12:05:13
それなりの要求に応えだしたら、ブラウザってぜんぜんクロスプラットフォームじゃないんだよね。
0573デフォルトの名無しさん05/02/15 12:37:35
ブラウザはJavaScriptを埋めると即グダグダ。
ブラウザを単なるウィンドウに見立てて、中身をFlashで埋めてしまえ
ば互換性の問題は出難いけど、一部の層からは酷くウザがられる。
JavaAppletにする手もあるけど、実行すらしてくれない人多数の可能
性アリ。
Eclipseでリッチクライアント?それだけで敬遠されることうけあい。
0574デフォルトの名無しさん05/02/15 13:45:42
ECMAScriptで埋めろ
0575デフォルトの名無しさん05/02/15 22:22:17
業務アプリで敬遠もくそもあるか
0576デフォルトの名無しさん05/02/15 22:44:52
>>575
あるだろ?
使われないグループウェアがどれだけあることか。
重いというだけで必須システムでなければ利用されない
可能性は高い。

RCPとか話題になっているけど、起動に糞重いEclipseが
本当にプラットフォームになるんですかね?
自分は開発ツールとしての恩恵を受けているので良いですけど、
256MBぐらいのクライアントで動作させると死ぬ気がする。
0577デフォルトの名無しさん05/02/15 22:59:15
今のマシンは256Mがデフォだしなー
メモリ拡張がとおる会社のほうが少ないかと

動かないわけじゃないんだろ?とか
0578デフォルトの名無しさん05/02/15 23:05:58
>>577
いやー、128MBの98マシンってのも多いよ。いやんなるけど。
0579デフォルトの名無しさん05/02/15 23:08:28
>>576
使われないグループウェアは、根本的な問題。
0580デフォルトの名無しさん05/02/15 23:21:30
>>576
起動に糞重いEclipse と SWT を勘違いしてねぇ?
0581デフォルトの名無しさん05/02/15 23:33:08
>>580
RCPって言っているじゃん。
0582デフォルトの名無しさん05/02/15 23:43:01
>>581
そだな、見落としてた。すまん
0583デフォルトの名無しさん05/02/15 23:44:30
>>576 目の前にEclipse SDKが存在するなら確認してみな。RCPに必要な
Eclipse Runtime自体は本当に小さい。構成するプラグインは20個にも
満たない。数百個のプラグイン(Rationalだと1000を超える)から構成
されるEclipse SDKのイメージとは程遠いよ。
0584デフォルトの名無しさん05/02/15 23:53:16
>>580
もしかしたら自分の理解が間違っているかもしれないが、RCPって
Eclipseのベース部分なんでしょう?
だったらプラグインでアプリを複数追加していけば結局Eclipseみたく
起動に大きな影響が出てくるのでは?と思っただけなのだが。

まあ、SWTを利用したjface2chは自分的にはネイティブのアプリと
全く遜色はないし、SWTの拡張を激しく期待しているのだが。
0585デフォルトの名無しさん05/02/16 01:02:48
ところで、jface2chって Mac 環境で、どの程度動くんだろう、
自分で試せれば良いんだけど Mac は持ってない。

Mac mini が売れれば、ホームユースアプリで両方使えれば、結構、
インパクトあるソフトになりそうだけど、 Becky!もMac対応で
SWTで作ってくれない物だろうか。
0586デフォルトの名無しさん05/02/16 01:21:17
Mac対応なら、Swingで作ってもらったほうがいいんじゃない?
0587デフォルトの名無しさん05/02/16 15:50:38
>>568
これってほんとなの?
試してみたいけどうちには Windows と X の入ってない FreeBSD しかない・・・
0588デフォルトの名無しさん05/02/20 23:39:51
>>587
eclipse 3.0.1
Debian GNU/Linux, kernel 2.6.?, Pen3 1GHz *2, 1GB
よりも、
WinXP, Athlon 850MHz *1, 1GB
の方が、明らかに体感速度で早かった。SWT単体ではよくわからん。

あと俺、emacs 使いなんだけど、Linux の Eclipse で Emacs キーバインド使うより、
WinXP + ノーマルキーバインドの Eclipse + XKeyEmacs の方がカスタマイズが柔軟なので、
開発機はWindows使ってます。
0589デフォルトの名無しさん05/02/21 08:28:23
>>588
Windows は GUI が OS の一部となっているので有利ってことですかね。
0590デフォルトの名無しさん05/02/21 11:08:46
スレッド処理の速ささが、そのままでたんじゃない
0591デフォルトの名無しさん05/02/21 15:26:55
いや、Windows用開発に重点が置かれたってだけかと。
0592デフォルトの名無しさん05/02/21 21:51:56
>>589
その代わり、OSの機能だというのに特許侵害だとかいって訴えられて敗訴するんだけどな。
0593デフォルトの名無しさん05/02/22 00:25:07
>>592
FUDウザイ
0594デフォルトの名無しさん05/02/22 11:41:27
どうも、LinuxのGUIは動きがもっさりしていて気に入らん。
0595デフォルトの名無しさん05/02/22 20:07:51
GNOMEのことか?AfterStepがいいぞ
0596デフォルトの名無しさん05/02/22 21:50:36
bakabakka
0597デフォルトの名無しさん05/02/25 04:24:25
Athenaで十分
0598デフォルトの名無しさん05/03/03 04:25:09
swt2から3に変えたら、作ったアプリがいろいろ変になってるよ(;´Д`)
0599デフォルトの名無しさん05/03/03 12:59:45
>>598
既出。SWT 3.0 → 3.1M* でも挙動が変わる。
挙動変更を追いかけ出すと結構大変だぜ。
変わって戻って変わってと繰り返す挙動も出てくるから。
0600デフォルトの名無しさん05/03/06 11:11:36
初心者質問です。
タイトルバーの左上に乗せるアイコンとかをjarで固めると、
SWTアプリの場合実行時エラーになるのはなぜでしょう?

/hogeParent
  |
  +−/hoge
       |
       +各種クラス
  |
  +−icon.png
  |
  +−manifest

jar cvfm hoge.jar manifest hoge/*.class
で一旦実行可能形式を作成し、画像を追加格納
jar uvf hoge.jar icon.png

これで出来たhoge.jarを別フォルダへ移動し
ダブルクリックすると起動できません。

アイコン指定は以下の文で行っています。
shell.setImage(new Image(null, new ImageData("icon.png")));
eclipse上で実行すると問題なく表示されており、また上記文をコメントアウトして
実行可能形式のjarを作成するとアイコンなしでちゃんと起動できます。
jarの指定が間違っているのだと思いますが、調べても原因わからず。

swtとは関係ないのかもしれないですがそれすらわかりません。
どなたかご存知の方いらしたら、ヒントだけでもよろしくお願いします。

swt3.0,WindowsXP,jdk1.4.2_05,Eclipse3.0
0601デフォルトの名無しさん05/03/06 11:22:09
>>600 うん、swtとは関係ないね。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/resources/index.html
このあたりが参考になる。
0602デフォルトの名無しさん05/03/10 11:16:42
imageのサイズ(高さと幅)を変えたい時ってどのような記述すればいいんでしょうか?
0603デフォルトの名無しさん05/03/10 11:36:41
>>602
Imageのインスタンスを表示するときに表示エリアの大きさを
変えたいとか、Imageが保持しているImageDataの縦と横を
変えたいとか、もうちっと詳しく。
0604デフォルトの名無しさん05/03/10 13:38:18
Imageが保持しているImageDataの縦と横を変えたいです
0605デフォルトの名無しさん05/03/10 17:07:04
>>604
ImageData#scaledTo()で大きさを変えたImageDataのインスタンスを
取得するか、ImageData#getPixel()でデータを取り出して自分で
拡大縮小処理して別途ImageDataのインスタンスを生成するか。
0606デフォルトの名無しさん05/03/13 12:22:34
>>601
本当に全然関係なかったです。ありがとうございました。

以下のようにすることで出来ました。
URL imageURL = getClass().getClassLoader().getResource("icon.png");
if(imageURL != null) {
   shell.setImage(new Image(null, new ImageData(imageURL.toString().substring(5))));
}

で別件ですが、SWTのImageData等にはコンストラクタにURLをとるものがないようですが
上記のようにsubstringなどで誤魔化しましたが、これが普通ですか?

他にうまいやり方があったらどなたか教えてください。
0607デフォルトの名無しさん05/03/13 13:50:49
StringでなくInputStreamを引数にとるImageやImageDataを使えばいいんじゃね
0608デフォルトの名無しさん05/03/14 22:12:58
>>607

ただ表示したいだけなのですが、使わないとだめでしょうかね。

さらに>>606では不具合。
jarにすると
URLが頭に"jar:"とつけるため単純にStringでは
うまくいきませんでした。

0609デフォルトの名無しさん05/03/14 22:51:13
>>608 ストリームを使ったときのデメリットがわからん。
0610デフォルトの名無しさん05/03/20 02:23:55
タブについて質問です。

org.eclipse.swt.widgets.TabFolder に、複数の TabItem が追加されているとき、
ユーザがクリックしてどのタブが選択されたのかは、プログラマが用意した
SelectionListener (を実装したクラス)で知ることが出来ますが、
「選択されていないけれどクリックされたタブ」はどうやったら知ることが出来るでしょうか。

やりたいことは、複数の TabItem のうち、現在選択されているかどうかに関わらず、
マウスの真ん中ボタン(button=2)でクリックしたらその TabItem を閉じる、という処理です。

TabFolder に MouseListener を登録して、TabFolder のどこがクリックされたのか
を知るところまでは出来たのですが、この座標から該当する TabItem を得る方法
が探せませんでした。

開発環境:
Windows98 非SE
Eclipse Platform Version: 3.1.0 (3.1.0M4)
swt-win32-3116.dll
0611デフォルトの名無しさん05/03/20 23:06:35
>>600
shell.setImage(new Image(null, getClass().getResourceAsStream("icon.gif")));
0612デフォルトの名無しさん05/03/21 00:46:21
>>611
611だけじゃないけどImageオブジェクトはGCでは回収しきれないんで
できれば明示的にdispose()する習慣をつけてください。
0613デフォルトの名無しさん05/03/21 00:58:26
>>611
InputStreamをちゃんとclose()しないと.
Application code is still responsible for closing
the input streamだよ.
0614デフォルトの名無しさん2005/03/21(月) 11:33:40
>>610
TabFolder / TabItemはよくわからんなあ
CTabFolder / CTabItemならできたけど、そっちじゃダメか?

CTabItem CTabFolder#getItem(Point pt)
Gets the item at a point in the widget.
06156102005/03/21(月) 18:25:44
>>614 様

ありがとうございます。
まさしくこれが欲しかったやつです。
実際に書いてみて、希望どおりに動くことも確認しました。
0616デフォルトの名無しさん2005/03/25(金) 20:37:25
質問1
org.eclipse.swt.widgets.List に SelectionListener を渡してやると、
リストの項目がクリックされた時と、ダブルクリックされた時に、それぞれ
widgetSelected() と widgetDefaultSelected() が呼ばれますよね。

このうち、widgetDefaultSelected() って、ダブルクリックだけじゃなくて、
項目が選択されている時に Enter キーを押すことによっても呼ばれる
はずだと思うんですど、実際にやってみると、ダブルクリックのときにしか
呼ばれないです。Table や Tree の時にはちゃんと Enter キーにも反応
してくれるのに。こういう現象を確認した方おりますでしょうか。

質問2
SWTのAPIって、日本語に訳されているやつってありますか。
06176162005/03/26(土) 02:17:14
あげ
ます
0618デフォルトの名無しさん2005/03/26(土) 06:24:17
JREも5.0になったけど
SwingはSWTに追いついた?
0619デフォルトの名無しさん2005/03/26(土) 08:16:36
機能的には、抜かれたことはないしねぇ。
速度的には、実用的な速度になってる。
メモリやリソースの使用量はもともとSwingの方が効率が良いし。
Windows以外では、SWTでは1.4.2のSwingより遅いという話だし。
ブラウザもJDICでネイティブのものが使えるようになったし。

SWTに追いついたというより、SWTのメリットがあまり意味をもたなくなってデメリットが際立ってきたという感じだな。
0620デフォルトの名無しさん2005/03/26(土) 11:38:20
Swing には SWT の JFace に相当するものが無い。
0621デフォルトの名無しさん2005/03/26(土) 12:24:35
SWTのTableはSwingのJTableの前では余りにも貧弱。
0622デフォルトの名無しさん2005/03/26(土) 12:32:21
でも書くの面倒すぎ('A`)
TMFでも使えばある程度は楽になるけど
0623デフォルトの名無しさん2005/03/27(日) 12:27:42
Label label = new Label(shell,SWT.NULL);

このような記述でshellにlabelを配置したときに
shell側で配置されたことを検出したいのですが、
そのようなリスナってありますでしょうか?
0624age2005/04/03(日) 22:03:29
SWTやばい廃れてるage
0625デフォルトの名無しさん2005/04/04(月) 00:48:49
役目は終わりました。
0626デフォルトの名無しさん2005/04/04(月) 05:57:11
正直いまごろマンセーしてるのはいがぴょん氏くらいか
J2SE5.0がでなければ、ましんぱわーがもうちっと低ければSWTはそれなりに
意味はあったのかもしれん

SWTの欠点を補おうとJFaceでいじってるようだが、JFaceでいじろうとすると
ただでさえ厄介なSWTの複雑度が大幅に上がりSwingにたいしての
メリットがかなり薄いんだよなぁ

もちろん素のSWTよりは楽に扱える・・・というか継承できないコンポーネントって
割り切りすぎなきもしないでもない

継承したらしたでそれならSwingのほうが便利だったり、Windows以外の安定性とか
速度が改善されればまだましなのだが、ちぐはぐというかそんなかんじ
0627デフォルトの名無しさん2005/04/04(月) 06:10:19
マーケティング戦略コンポーネントだったってことだ。
0628デフォルトの名無しさん2005/04/04(月) 18:00:27
Tableの一部のカラムの背景色だけ色を変えるにはどのようにすればいいですか?
0629デフォルトの名無しさん2005/04/09(土) 17:23:03
>>166の方法で透過PNGを試してみたが、、

作ったアプリをGTKで実行すると透過されるのに、
Win32で実行すると透過されない。
他の方どうですか?
0630デフォルトの名無しさん2005/04/10(日) 00:08:53
>>629
とりあえず>>374に対するレスとかを読んでいろいろやってみたら?
06316292005/04/10(日) 02:07:18
書き込む前にも374とかは読んでやってみたけどやっぱりGTKでのみ
透過されるっす。
256色の画像をshin's PNG Editerで取り込んで透過色を設定、

Image img = new Image(
Display.getCurrent(), getClass().getResourceAsStream("/hoge/img.png"));

で登録させてるんだけど・・・あとどこを見ればいいですか?
0632デフォルトの名無しさん2005/04/12(火) 09:22:39
CPL について質問させてください。
CPL を読む限り CPL のプログラム (またはその一部) を再配布する場合
そのソースコードも配布可能でなければならないと思うんだけど、
(swt-*.dll を配布するならその部分のソースコードが必要)
ほとんどの人がソース配ってないですよね?
ソース配布の必要がないという根拠が
どこかにあれば教えてもらえるとうれしいです。
0633デフォルトの名無しさん2005/04/12(火) 10:58:08
>>632
ソースほしけりゃメールしろとかeclipse.orgの当該URLを
をドキュメントに書いておけばよし。バイナリに添付する
必要は無い。FAQにもそう書いてある。

でもCPL読めばソースを要求する権利があることが明記されてるし
それ以上の説明はmustではないと思うけどね。
06346322005/04/12(火) 13:11:37
>>633 さんお返事ありがとうございます。
CPL FAQ の 14 ですよね?

Q) Do I need to include the source code for such Program
with the object code distribution?
A) No. But you do need to include a statement that the source
code is available from you and information on how to obtain it.

the source code is available from you とあるので
再配布する人から取得可能であることが必要。
だけど言われてからでいいよと理解しました。

eclipse.org から取った方が信頼できるので
ソースくれと言われるなんてありえないと思うけど、
念のため自分のサイトで別途ダウンロードできるようにしようと思います。
0635デフォルトの名無しさん2005/04/16(土) 13:40:37
SWTのtableをremoveAll()しても、ヘッダが消えません。
ヘッダを消すにはどうすれば??
0636デフォルトの名無しさん2005/04/16(土) 19:11:58
>>635
setHeaderVisible(boolean show)
06376362005/04/17(日) 22:42:36
>>636
説明不足でした、表示を消したいのではなく、ヘッダーのコンポーネントそのものを消したいのです。
setHeaderVisible(false)しても、次にtrueにした時、また同じヘッダーが表示されてしまうので。。
0638デフォルトの名無しさん2005/04/28(木) 10:44:12
JFaceのダイアログでタイトルエリアにエラーメッセージを設定したとき
メッセージの背景色がグレーになってしまうのですが解決法はありませんか?
下のページの一番下の画像の状態です。

http://www13.plala.or.jp/observe/JFace/jface_dialog.html
0639デフォルトの名無しさん2005/04/28(木) 23:18:59
基本的にメソッド内で決めうちつーか、Labelのデフォルトそのまま
だから、createMessageArea()をオーバーライドして自分で設定しないと
だめでしょ。
0640デフォルトの名無しさん2005/05/07(土) 19:28:00
RCPってどうですか?実業務で採用した人います?
スレ違いなら誘導願います。
0641デフォルトの名無しさん2005/05/07(土) 19:37:48
RCPはEclipse囲い込み作戦で使ってるところはほとんどない

でも普通SWTとJFace直で問題になるまい
Windows以外での動作の考慮もするとなるとSwingのほうがよかったり

業務アプリだと標準APIでノウハウもたまっているSwingのほうがいいと思われ
0642デフォルトの名無しさん2005/05/07(土) 20:25:19
RCPは使ってないけど、EclipseIDEのプラグインとしては業務アプリを
作ってるな。GUI以外のフレームワークの機能を考えるとトータルでは
工数減ってる。
0643デフォルトの名無しさん2005/05/08(日) 09:23:54
RCP使った事無いけど、Windowsオンリーとかなら選択肢になり得ると思う。
複合的なパッケージを提供させる場合でもユーザインターフェイスも統一させやすい。(代わりにこった事できないけど)。
自動更新機能も魅力的だけど、JavaWebStartにもあるし。
今はSwingが改善されてきたから、速度的なメリットは無くなったと思う。
ということで、将来的にがーんと伸びるとは思えないんで、何を重視したいかじゃない?
06446402005/05/08(日) 15:11:17
>>641
>でも普通SWTとJFace直で問題になるまい
すみません。ちょっと意味がわかりませんでした。
SWTとJFace直とは?問題にならないというのは使い物にならないということ?
>>642
業務でEclipseのプラグインを開発したと言うことですね。VisualEditorは使いましたか?
#適用可能ですか?
>>643
Appletとして配布するのとJavaWebStartを使う場合の違いがよくわかってないです。
JavaWebStartについて解説しているお勧めのページ等あります?
0645デフォルトの名無しさん2005/05/08(日) 16:23:52
JavaWebStartは、ここで詳しく説明してます。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/javaws/index.html
06466432005/05/08(日) 16:26:01
>>644
Appletは配布するとは言わないけど。配布しているわけじゃないし。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/javaws/index.html
http://www.mamezou.com/tec/equip016.htm#compared_technologies
0647デフォルトの名無しさん2005/05/08(日) 16:52:08
なぜRCPを業務で使うという選択肢が出てきたのか
そこから説明してもらわないとな
0648デフォルトの名無しさん2005/05/08(日) 19:05:15
つーかさ、RCPだからSWT/JFaceを使わなきゃならないとか、JavaWebStart
があるからいいとかそういうもんじゃないよね。SWT/JFace自体RCPからみれば
プラグインの一つに過ぎないので別にAWT/SwingでGUI部分を作ってもいいし、
Eclipse3.1以降のPDEはRCPとJavaWebStartを組み合わせた開発をサポート
する。それぞれの機能のおいしいとこをつまみ食いしてればいいんだよ。
0649デフォルトの名無しさん2005/05/08(日) 19:20:37
べつになくてもいいのならRCPいらねーやん
0650デフォルトの名無しさん2005/05/08(日) 19:37:02
WindowsオンリーならC#の方がいい。
0651デフォルトの名無しさん2005/05/09(月) 00:18:27
>>640
今、JavaHouse-Brewers MLでRCPがらみのメールが流れてきた。
とりあえず松下の社内にはRCPで作っているやつがいるらしい。
0652デフォルトの名無しさん2005/05/12(木) 22:20:13
突然ですが、shellのアクティブタイトルバーの部分のフォントを変えるにはどうしたらよいんでしょうか。。。
shell.setFont(font)したけどダメでした。
誰か試したことありましたら教えてください。
0653デフォルトの名無しさん2005/05/13(金) 00:10:52
>>652
タイトルバーのフォントは変えられないと思うが・・・.
0654デフォルトの名無しさん2005/05/13(金) 00:52:47
windowsか?
タイトルバーのフォントってシステムのプロパティだから、一般的なウィンドウでは
変更不可能だったような。 当然SWTでは無理。
まあCでそれ用にウィンドウ定義まで書いて、SWTいじってJNIでそこから
wHndを取得させれば不可能では無いが、かなり手間の無駄だと思われる。
そこまでしてもフォントを変えることが重要なら止めないが。

GTKは殆ど触ってないんでわからんが、やっぱSWTのみじゃダメだろうな。
0655デフォルトの名無しさん2005/05/17(火) 01:04:09
swtを勉強したいと思うのですが、オープンソースでswtを利用した
アプリケーションは無いでしょうか。Eclipseを除いて。

ありましたらご紹介をお願いします。
0656デフォルトの名無しさん2005/05/17(火) 02:07:13
BitTorrentクライアントのAzureusとか
0657デフォルトの名無しさん2005/05/17(火) 07:37:08
RSSリーダのRSSOwlがmy愛用swtアプリケーション。しかしこいつ
javaアプリなのにappletを使用したwebページを開くと固まるんだよね。
多分swtの問題じゃないかとオモてるんだけど。AzureusもRSSOwlも
swtの参考として見るには規模がデカすぎるかもしれないね。
0658デフォルトの名無しさん2005/05/18(水) 21:57:50
>>657
EclipseのExampleプラグインのなかに
ブラウザプラグインあるだろ?
あれも、落ちちゃうんだよな やっぱ バグだろうと思う
06596552005/05/19(木) 11:44:27
ありがとうございます。
紹介頂いたソフトを見てみます。

とりあえず2ちゃんブラウザでも作りながら勉強してみます。
0660デフォルトの名無しさん2005/05/19(木) 11:58:54
モナリプス?
0661デフォルトの名無しさん2005/05/19(木) 15:02:05
プラグインだと重くなるので、とりあえずはSWT/JFaceで
考えてみます。気が向けばRCPで作るかも?

本当はjface2chとか既存のブラウザがオープンソースだったら
良かったんですけど。
0662デフォルトの名無しさん2005/05/19(木) 20:53:25
http://monalipse.sourceforge.jp/
0663 2005/05/19(木) 23:56:54
http://pc8.2ch.net/test/read.cgi/tech/1112968209/669

なんかC#の方でもブラウザコントロール組み込んだらJavaアプレットで落ちるとか言われてるけどなんか関係あるのかな。
0664デフォルトの名無しさん2005/07/01(金) 10:29:30
age
0665デフォルトの名無しさん2005/07/02(土) 18:39:42
JAVAの基礎やった後に
これからGUIの勉強始める時には、SWTとSwingどっちがおすすめですか?

二つのアプリ試してみたら、GUIのインタフェースがWindows標準ので見やすいので
最終的には、SWT使ってGUIアプリ作りたいと思ってるんですが、
EclpseでいきなりSWT始める前に、AWTやSwingを一通りやったほうがいいのでしょうか?

スレ違いだったらすみません。
0666デフォルトの名無しさん2005/07/02(土) 19:41:01
PureJavaなSwingがいいんじゃね?
0667デフォルトの名無しさん2005/07/02(土) 19:46:49
ドキュメントがMSOFFICEで固められているのでSWTを利用して
EXCEL等を制御したいのですが、OLE AUTOMATIONを行う
ことは出来ますでしょうか。
また、サンプル等掲載されているサイトがありましたらよろしく
お願いします。
0668デフォルトの名無しさん2005/07/02(土) 20:26:58
>>665
最終的にSWTを使うなら, SWTから始めたほうが良いと思われ.
0669デフォルトの名無しさん2005/07/02(土) 20:31:49
ゲーム作るならSwingの方がいいんかね?
0670デフォルトの名無しさん2005/07/02(土) 20:37:17
むしろ仕事で使うにはSwingかと
0671デフォルトの名無しさん2005/07/02(土) 20:49:11
SWTを使うきっかけがWindowsみたいで見やすいというだけなら、SwingでSystemLAFかと。
今後SWTが今以上に広まることもなさそうだし。
0672デフォルトの名無しさん2005/07/02(土) 20:49:55
つうか、SWTはRADツールがないから勉強に向かんな。
0673デフォルトの名無しさん2005/07/02(土) 21:12:01
>>672
VEってSWT未対応だっけ?

どっちにしろ勉強ならまずはクラスを自前で生成してプロパティセットしたりして
行ったほうがいいかと思われ
まずはレイアウトマネージャを理解するのが大事だし

でもJava6.0ではPureJavaでタスクトレイにアイコンおいたりできるし
SWTならではというのはもう大分減ったかな
JFace使えば高機能とはいうものの、それならばSwingのほうがカスタマイズ性含めて便利だし
0674デフォルトの名無しさん2005/07/02(土) 21:24:24
>>673
対応済み。1.1M2ならEclipseのビュー(ViewPart)もVEで作れる。
ttp://www.eclipse.org/vep/WebContent/docs/newAndNoteworthy/1.1-M2/

SWT/JFaceの位置づけは・・・まあアレですよ、Eclipseプラグイン作成用。
0675デフォルトの名無しさん2005/07/02(土) 22:11:46
Swingも速度的に速くなるみたいだしねぇ
0676デフォルトの名無しさん2005/07/02(土) 22:43:11
>>673
レイアウトマネージャ理解するなら、なおさらRADで動き確認してからコード書いたほうがよくね?
0677デフォルトの名無しさん2005/07/02(土) 23:38:41
ここで質問しないと始めれないやつが
RADで配置した後コードみるとはおもえん・・・
06786652005/07/02(土) 23:46:21
多数のご助言ありがとうございます。
SystemLAF初めて知りました。
SwingでもWindows風のGUIインタフェースにできるんですね。

レス読んでると、今はSWTが速いし機能も充実してるけど
将来的にSwingのほうが色んな可能性もってるって感じなのでしょうか。
AWTやSwingの経験なしにいきなりSWTから始めて
とくに困ったこともなくやってけてるって人いますか?

最初から両方に手つけて、どっちも中途半端なレベルになるより
まずはどっちかである程度のアプリを作れるようになりたいと思ってるんですが…
JAVAでGUII始めるならとりあえずこの道、っていうのはあまり決まってないんでしょうか。
0679デフォルトの名無しさん2005/07/03(日) 00:06:21
機能はSWTさわってみるとわかるけど充実はしていない
基本的に継承して作るわけじゃないので・・・というかどっちもさわってみなされ

Swingのほうが本が多く出てると思うしネットではひっかかりやすいかな
あとSWTはWindowsではいいけど、Linuxでは速度が恐ろしく遅かったりバグが大量だったり(昔ね)
ユーザーの数がやっぱり枯れ具合にもろに影響しているのも注意ね

SwingはJavaが入っていれば使えるけど、SWTはSWTを入れないと使えないから
サイズが大きくなりやすいとか用途によってはいろいろと制限が出ることも
Win9x系はSWTはやばかったような記憶もある

Swingは標準APIだけに「Javaをさわれる」といった場合に試される場合も多い


SWTスレらしくない内容ですんまそ
0680デフォルトの名無しさん2005/07/03(日) 00:07:13
>>677
じゃあ、ずっとRADでいいんじゃねぇ?
0681デフォルトの名無しさん2005/07/03(日) 01:11:11
でもさ、、、現実的にまだクライアントはWindowsな訳だし、連携を
考えるとSWTにがんばってもらう必要があるのでは?
今の職場ではOFFICEと連携出来ませんではクライアントアプリ
としてはかなり利便性が下がりますね。
0682デフォルトの名無しさん2005/07/03(日) 01:42:00
ものによるんじゃね?
ExcelやWordの読み書きならSWT/Swing関係ないし
0683デフォルトの名無しさん2005/07/03(日) 02:23:33
Excelコンポーネントを自作GUIアプリケーションのウィジットに貼り付けるのならSWT。
#というよりSWTのOLEサポートはその目的でしか使えない(ことになってる)。
0684デフォルトの名無しさん2005/07/03(日) 02:25:08
OLEサポートほしけりゃ、VBで作った方が楽だな。
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ランタイムの文字フォントの変更とか設定について
載ってるページが見当たらないんですが、何かいい参考サイトありませんか?
0785デフォルトの名無しさん2005/12/07(水) 21:22:25
これは?
ttp://d.hatena.ne.jp/takezoe/20041117
0786デフォルトの名無しさん2005/12/07(水) 22:43:26
>>782
日本語ロケールでjavaws とか appletviewer とか標準のツールを起動した場合にも
豆腐になるとしたらランタイムのフォント設定が悪いからがんばれ.
jre/lib/fontconfig.*.properties を適切に設定するか jre/lib/fonts に適当な
フォントを置くかする必要がある.
0787デフォルトの名無しさん2005/12/07(水) 23:34:41
次スレは Java ネイティブGUI SWT3 にしなくちゃな。
0788デフォルトの名無しさん2005/12/07(水) 23:42:13
>>787
次スレ立てるころには忘れてる予感・・・
0789デフォルトの名無しさん2005/12/08(木) 16:33:18
TableViewerで何か一覧を表示し、そのアイテムごとに違うメニューをマウスの右クリックでPOPUP表示させたいと思っています。

やり方はマウスdown時にそのアイテムのメニューをTableに設定すればいけそうなのでやってみたのですがうまくいきません。
原因はマウスボタン押下時にマウスdownイベントが発生せず、マウスボタンを放したときにマウスdownとマウスupが連続して発生してます。

Tableのアイテム以外の空白の部分でマウスボタンを押すと押した時点でマウスdownイベントが発生しました。

TreeViewerだとマウスボタン押下時にちゃんとdownのイベントが発生し、この方法でそれぞれのアイテムごとに違うメニューを表示できたのですがTableViewerだとうまくいきません。何か良い方法ありましたらお願いします。
0790デフォルトの名無しさん2005/12/10(土) 21:12:44
Visual Editorでレイアウトしてると、画面の左上に!マークが出て、
IllegalArgumentException GridLayoutは複雑すぎます
というエラーでレイアウトができなくなります。

eclipseのbugzillaにはそれっぽい報告が出てて、ステータスがclosedに
なってんだけど・・・・直ってないし。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=87181

どなたか解決法ご存知じゃないでしょうか?
環境はj2sdk1.5.0_06, eclipse3.1.1, VE1.1.0です。
0791デフォルトの名無しさん2005/12/16(金) 00:29:48
JWSについてなんだけど、JWSで表示したもの(例えばSWTで作った表)をユーザーに表示させている間、
javascriptでユーザーの動きを制御したりはできるの?
例えばユーザー側で3分間どこもクリックしたりしなかったら何かメッセージウインドウを出す、とか
あくまでjavascript限定で
0792デフォルトの名無しさん2005/12/16(金) 00:49:39
>>791
まるち乙。
しかし、ここもスレ違い。
まあ、答えといてやるよ。
Rhino使えば、JavaScriptでできる。
0793デフォルトの名無しさん2005/12/16(金) 01:04:01
>>792
ああ、ここでもスレ違いでしたか
ともかくありがとうございます
0794デフォルトの名無しさん2005/12/16(金) 10:41:53
環境はEclipse3.0.1でペイントツールを作りたいんですが、
MouseListenerを使って線は自由に描けるようになりました

けどLabel上に描いているため描いた線が保存できないっす・・・
自分で描いた線を「画像」として保存したいんですができるのでしょうか・・・

lab = new Label(sh, SWT.NONE);
lab.addMouseListener(myMouseListener);
lab.addMouseMoveListener(myMouseMoveListener);

こんな感じで書いてます
0795デフォルトの名無しさん2005/12/16(金) 15:54:04
画像保存用のImageを生成。
imageを引数にGCを生成。
GCを引数にPaintEventを生成。
PaintEventを引数にPaintListenerを呼び出す。
ImageLoaderでimageを保存。
0796デフォルトの名無しさん2005/12/18(日) 02:01:09
Java本体の印刷がバグバグなので
SWTで印刷することにしました

そうしたらラインの描画がおかしいのですが、これは改善する方法があるのでしょうか
どうもライン+終点の描画になっているようで
GCはピクセル単位でしかまともに処理されてないような感じがするのです

DPIにあわせて描画エリアは広がっちゃうし、かといってスケールを使うとフォントが問題出るし
もしかしてSWTもプリンタ周りはぜんぜんこなれてないのでしょうか
0797デフォルトの名無しさん2005/12/18(日) 02:37:38
796は一体全体どういうコードを書いているのだろう。
0798デフォルトの名無しさん2005/12/18(日) 12:59:13
Printer p = new Printer(data);
p.startJob("SWTでいんさつ");
p.startPage();

GC gc = new GC(p);

gc.setFont(new Font(p ,"monospaced",10 ,SWT.NORMAL) );
gc.drawString("あいうえお",100,100);
gc.setLineWidth(1);
gc.setLineCap(SWT.CAP_SQUARE);
gc.setLineStyle(SWT.LINE_SOLID);
gc.drawLine(100,100,100,120);

gc.dispose();

p.endJob();
p.endJob();
p.dispose();
0799デフォルトの名無しさん2005/12/18(日) 12:59:53
これで縦に線が引かれるはずなのですが、ゴミのような点が終点につきます
0800デフォルトの名無しさん2005/12/22(木) 01:39:31
質問です。

Swingで書いているのですが、DirectoryDialogだけ使うとか、そういう事はできますか?
コンストラクタでShellを指定しなければならないようなのですが・・・。
0801デフォルトの名無しさん2005/12/24(土) 20:33:31
突然すみません。
javaアプレットにSWTを組み込むことは可能でしょうか?
0802デフォルトの名無しさん2005/12/24(土) 21:09:49
>>800-801
無理。仕様書に書いてある。
0803デフォルトの名無しさん2005/12/25(日) 03:07:00
お返事ども。
逆ならいけるみたいなことはどっかに書いてあったんですけどねぇ・・・。
0804デフォルトの名無しさん2005/12/25(日) 11:45:29
>>800
生成したShellを表示させなければ問題ない。

>>801
SWT_AWT#new_Shell使えばできる。ただしdllの配布の手間を考えたらJWS使った方が現実的。
0805デフォルトの名無しさん2006/01/07(土) 09:15:33
質問させてください。
SWTのGCでsetXORModeが非推奨命令になっているのですが、
代わりに何を使えばXOR演算を使った描画ができるのでしょうか?

調べてみたのですが、それらしき記述を見つけることができませんでした。
ご存じの方、おられましたらお教えいただけませんでしょうか。
0806デフォルトの名無しさん2006/01/23(月) 23:34:00
質問です。
SWTでウェブブラウザを作成していて、
ボタンを押した時に、キーボードのCtrl+Fを押した時と同じ動作を
させたいんですがどうしたら良いでしょうか?
0807デフォルトの名無しさん2006/01/24(火) 20:32:37
SWT.CTRL|'F'
08088062006/01/25(水) 00:11:02
>>807
ありがとうございます。


ウィンドウへ仮想キーを送るにはどうしたら良いでしょうか?
08098082006/01/25(水) 18:24:42
すいません、解決しました。
0810デフォルトの名無しさん2006/01/30(月) 17:05:43
ボタン内のテキストを縦座標で中心に持ってくるにはどうすればいいの?
0811デフォルトの名無しさん2006/02/01(水) 00:45:16
デフォルトで真ん中になりますよ。
Button button = new Button(shell, SWT.PUSH);
SWTのソースを見れば、どんな定数が使えるかわかります。
0812デフォルトの名無しさん2006/02/01(水) 11:19:29
>>766みたいな厨が作るプログラムなんて、どうせ小学生の工作レベルなんだろうな。
「中身見られるらしいじゃん」って、見られて困るような特許もないくせに
何を怖がってるんだ。プログラムの糞っぷりが発覚したら恥ずかしいってことか?w

どうも最近の日曜プログラマもどきって、何の技術的価値もないくせに
下らん事にはやたらこだわるんだよな。.EXE1つだけのソフトに
ご大層なインストーラつけたり。

決してソースを公開しないのも、最近の日曜プログラマの共通点だな。
まぁ、見られたら恥ずかしいんだろうけど、人にソースを見てもらわん限り
プログラムの腕は決して上達しないよ。
0813デフォルトの名無しさん2006/02/01(水) 16:43:05
>何を怖がってるんだ。プログラムの糞っぷりが発覚したら恥ずかしいってことか?w

俺まさにそんな感じ
0814デフォルトの名無しさん2006/02/04(土) 02:35:23
複数のShellを表示させてるときに片方を閉じようとすると
display.dispose()でもう一方まで落ちちゃう・・

派生的に呼び出される方をshell.dispose()に変えたらうまくいったけど
リソース開放しなくて大丈夫なのかな?
0815デフォルトの名無しさん2006/02/04(土) 12:29:49
>>814
スレッドとDisplayは一対一に対応し、全てのShellはどれかのDisplayにぶら下がっている。
だから、Displayをdisposeしたら、Shellが終了してしまうのは当たり前。
Displayは基本的にスレッドの終了時に解放する。
0816デフォルトの名無しさん2006/02/04(土) 17:08:36
shellが複数出てきちゃうのを何とかしたいんだけど・・
0817デフォルトの名無しさん2006/02/04(土) 20:52:44
shell.dispose()のなにが不満なんだろう。
0818デフォルトの名無しさん2006/02/05(日) 00:25:29
別に不満はねーよ・・でも・・
0819デフォルトの名無しさん2006/02/05(日) 00:29:09
じゃいいじゃん。
0820デフォルトの名無しさん2006/02/05(日) 00:39:36
そうだな
0821デフォルトの名無しさん2006/02/06(月) 00:42:06
1つ聞きたいのだが、SWTに未来はあるのか?
ここ半年くらいSWTばかりと戯れている自分が、ふと不安になった
0822デフォルトの名無しさん2006/02/06(月) 01:50:32
Swingが速くなってきた昨今、速度云々で優位性を語れなくなったからねぇ。
コンストラクタで親を要求するんで、書き方によっては多少面倒な場合もあるな。 主観つーかクセだけど。
配布の手間を考えると、積極的にSWTを選ぶ事は無くなったかも。DLL不要になればいいんだけど。
JFaceの**Providerとかは、Swingの**Modelより書きやすくて好きなんだけどね。
0823デフォルトの名無しさん2006/02/06(月) 07:20:41
>>821
あまり期待しない方がいいと思う
もはやEclipseの中でしか生き残らない気もするしね
0824デフォルトの名無しさん2006/02/06(月) 10:08:34
GUIを使ったObserverパターンのサンプル、
元々SwingだったのをSWTに置き換えてみようと
思ったら結構はまった。

メインウィンドウって考え方なしに
各画面が対等のオブジェクトとして連携できる感じで
書けるSwingの方が、楽かなー。
一般的なJava作法である程度行けるので。
0825デフォルトの名無しさん2006/02/06(月) 20:33:08
なら糞みたいなSwingのグラを使えというのか
俺はSWTが大好きだ!!!
08268212006/02/06(月) 23:28:13
>>822-825
やはり明るくはないですか。
SWTはコード書いてて楽しいんだけどなぁ……
0827デフォルトの名無しさん2006/02/06(月) 23:36:03
現在では
・速度的、メモリ的メリットなし
・機能不足

むしろ情報不足とか機能不足で実装する場合実装方法や
問題となった箇所の回避方法がSWTは絶望的という点が厳しいようなきがする
用意されてる上で動く分にはいいけど、自由度が足りないというか

だから仕事で使う場合を考えると、どういう機能がほしくて、それはどうやって実装できるかが
はっきりしないと選べないという状況に

また、実装直後はよくても機能追加しようとしたときに躓くとかもよくあること
0828デフォルトの名無しさん2006/02/07(火) 00:10:57
SWTはどっちかというと見てくれ重視(他のアプリケーションとの共通性)が主体ではないかなあ。
0829デフォルトの名無しさん2006/02/07(火) 00:16:48
Swingも5.0からSystemLAFパワーアップしたからなぁ
久しぶりに1.4系のSystemLAFみたらヒドス
0830デフォルトの名無しさん2006/02/07(火) 00:36:45
結論:
 Swingが良くなった現在、SWTの存在価値はEclipseの実行に必要だから、のみ。
0831デフォルトの名無しさん2006/02/07(火) 00:46:57
Eclipseが使ってるライブラリのみ価値がある

これってかなり前から言われてたのとかわってねーな
SwingもJava2Dの高速化の恩恵もろに受けたしね
1.4.1からSSEとかDirectXとかガンガンつかわれてるし
0832デフォルトの名無しさん2006/02/07(火) 00:50:38
いまさらSwingに移るのもなんだし、VC++へ戻るか・・・・
0833デフォルトの名無しさん2006/02/07(火) 00:58:17
そっちのほうがいまさらなんでは?
0834デフォルトの名無しさん2006/02/07(火) 01:18:37
せめてC#といっとけ
0835デフォルトの名無しさん2006/02/07(火) 02:08:08
ここは一つ、間をとってJ#はどうか。
0836デフォルトの名無しさん2006/02/07(火) 09:57:22
その間はマリアナ海溝より深い
0837デフォルトの名無しさん2006/02/07(火) 12:09:59
VS2005を標準インストールしてたら友人に「うわ、スゲ!VJ#入ってるwwwwww
ありえね〜。オイ!こっち来て見てみろよ。」と散々からかわれた(´・ω・`)ショボーン
0838デフォルトの名無しさん2006/02/07(火) 13:30:43
J#は即座に抜くべきものです
0839デフォルトの名無しさん2006/02/07(火) 15:32:18
>>813
俺たちと全裸のエクストリームプログラミングしようぜ
0840デフォルトの名無しさん2006/02/07(火) 20:08:34
ラベルの上にマウスが乗ったら
詳しい説明が出るみたいなのを作りたいんだけfっどどあ
0841デフォルトの名無しさん2006/02/07(火) 21:57:51
ツールチプードゾー っ□
0842デフォルトの名無しさん2006/02/07(火) 22:50:18
Swingは見た目にまだ難があるんで、SWTを使ってる。
頑張っているとは思うけど、Swingはまだ違和感があるよやっぱり。

で、SWTだけど、WIN32APIを呼ぶこともできるんで、
とりあえずWindowsで動けば……くらいの時はそれで回避してしまう事もある。
後で解決法がわかったりすることもあるし。
SWT使いやすいし、完全ネイティブな見た目は魅力的だ。

なんだかんだ言いながら使ってるし便利。
0843デフォルトの名無しさん2006/02/07(火) 22:56:10
ネイティブといってももはやOSはこれだから見た目はこれということはなくて
Windowsの場合アプリによって見た目はばらばらだからなー

Swingで違和感があるのはメニューに影がつかないくらいか
0844デフォルトの名無しさん2006/02/07(火) 23:04:39
見た目ばらばらは、VSの進歩によってもたらされた気もしますけどね。
メニュ周りが随分と変わっているものが多いような気はします。

さて、これは興味からなんですがまずSwingとはわからんだろ、っていうアプリあります?
0845デフォルトの名無しさん2006/02/07(火) 23:44:33
適当なLaF拾ってきて適用させれば、簡単にそういうアプリになるわけで
0846デフォルトの名無しさん2006/02/07(火) 23:46:59
>>843
WindowsLAFだとメニューに影つかないのが気になるよね。
LAFによっては影ついてるから、技術的には可能なんだろうが・・・
0847デフォルトの名無しさん2006/02/08(水) 00:55:29
Swingのアプリがこれでもかというくらい世にはびこれば、違和感も無くなるのだろうが。
一般人から見れば、綺麗なソフトとボクトツとしたソフトでは、綺麗なソフトが選ばれそう。
0848デフォルトの名無しさん2006/02/08(水) 01:20:52
Swingがどうこうとか見た目がどうこうじゃなくて動作が標準と
違ってるのが大きいと思うな>Windows環境下のJavaGUI

例えばファイル選択ダイアログで右クリックしてもメニューが
出てこなくてコピーやペーストができないとか、スクロールバ
ーがホイールに対応してないとか、何時も当たり前にできる
事ができないと印象は凄く悪い。
0849デフォルトの名無しさん2006/02/08(水) 01:32:12
ホイールが動かないっていつのVMですか

まぁ確かにダイアログはがんばって似せてるけどまだ違和感あるね
ネイティブダイアログだしたかったらAWTよんでもいいけど

でもLAFによって動作ちゃんと変わるのはすごいよ
ALTおすとメニューにカーソルが行くとかはWindowsLAFだけだし
ボタンの上でリターンキーで実行されるのもWindowsLAFだとか

ようは何種類もOS作ってるようなもんだからなぁ

スクロールに関してはOSネイティブの実装よりSwingの実装のほうがすぐれてるけよね
0850デフォルトの名無しさん2006/02/08(水) 05:55:45
>>847
つうことは、Swingが選ばれるってこと?
0851デフォルトの名無しさん2006/02/08(水) 11:52:47
TabFolderやCTabFolderなんかでドラッグしてタブの入れ替えをやりたい
エクリプスの動作だとタブ入れ替えだけじゃなくてウィンドウの分割や結合までやっててスゲェ
どうやってんだろ?
0852デフォルトの名無しさん2006/02/08(水) 14:56:43
>>850
どうやったらそういう読み取り方が出来るんだ
0853デフォルトの名無しさん2006/02/08(水) 15:28:20
>>852
Swingはボクトツとしてないだろ。
きれいなUI作るのは結構楽だ。
これなんかはボクトツとしてて逆にイイ
http://napkinlaf.sourceforge.net/NapkinButtons.jpg
0854デフォルトの名無しさん2006/02/08(水) 17:44:27
>>853
「朴訥と」ってより、かなり凝りまくりな感じ。
昔のSystem8 (macな) であったDrawingだっけか、アレを思い出した。
まー嫌いじゃない、ってかこういうの好きなんだけど。
0855デフォルトの名無しさん2006/02/08(水) 20:36:56
>>844

俺のお気に入りLAF
https://substance.dev.java.net/

これ使えばSwingとはわからないかも。
NetBeans使ってる人には、サブプロジェクトのsubstance-netbeansもオススメ。
08568442006/02/08(水) 22:09:51
>>855
ありがとうございます。

……格好いいですね。まさにクール。
Swingをかなり見直しました。
まずはじめにSwingファイルダイアログなどがかなり違った動作をするので敬遠していたところもあるのですが、
こうした見た目が自由に設定できるのはやはり良いですね。
SWTが一段落したらSwingにもはまってみたいと思います。
0857デフォルトの名無しさん2006/02/08(水) 22:25:21
SwingってUIが完全に独立してるから
デフォルトの動作もかえれる

あとSynthってのもある
http://www-06.ibm.com/jp/developerworks/java/041029/j_j-tiger10194.html
この辺が参考になるかな
デフォのプロパティをxmlで外部に書き出せるためにアプリケーションとして統一UIが作りやすい
cssだとおもえばいいかな

SWTもSWTでいいところはあるしSwingもSwingでいいところはあるから
本当に自分が作りたいものにあわせて選択すればいいだけ
Swingはイラネと思考停止するのは愚か
いいものが出てきたらいいものを使う
それだけ
0858デフォルトの名無しさん2006/02/08(水) 23:22:40
なんかこのスレ見てたらSWTを捨てた方が良い気がしてきた
よ〜し、パパ、Swingに回帰しちゃうぞ〜
0859デフォルトの名無しさん2006/02/09(木) 03:11:18
昨日電車に乗って座ってたら隣のおっさんが突然立ち上がって
「アスランザラ、ジャスティス発進する!!」とか
大声で叫びながらドアに突進していった。

その3日後におっさんは死んだ。
俺は・・また何もできなかったんだ。
0860デフォルトの名無しさん2006/02/11(土) 22:41:38
9日の昨日の三日後ていうと今日のことかしらん。
おっさんに合掌


それはそうと、なんか最近XULに目覚めた。
またSWTとは縁遠くなるなぁ。
0861デフォルトの名無しさん2006/02/12(日) 16:29:40
そういえば、半年前にEclipseのプラグイン作って以来、SWTとは縁遠いな
0862デフォルトの名無しさん2006/02/12(日) 16:57:55
半年ならまだましなほう
2.0用につくるぜぇーとがんばっていた人元気かな

3.0でずたぼろになったからな
0863デフォルトの名無しさん2006/02/12(日) 18:35:06
Eclipseのプラグインは、一度作ってもバージョンが変わるたびに手直しが

アレでは開発者のモチベーションは上がらないよな
0864デフォルトの名無しさん2006/02/12(日) 20:10:19
今まではEclipseだけで完結してたんだけれども
RCPとかフレームワークだぜーって感じで幅利かせてるんで
今後互換性のない拡張したらさすがにみんな引くと思う

特に業務系なんて何年もメンテしないといけないのに
0865デフォルトの名無しさん2006/02/22(水) 03:23:42
おっきなGIF画像を読み込んで、32×32の小さなGIF画像の配列に
したいんだけど、いい方法ない?

32×32のImage作って、GC取ってきてdrawImage()したら
パレットデータと透過色がなくなった _/ ̄|○
0866デフォルトの名無しさん2006/02/22(水) 04:09:27
普通にImageIOとBufferedImage使ったほうがよさげ。
0867デフォルトの名無しさん2006/02/22(水) 21:26:50
>>866

BufferedImageって java.awt.image.BufferedImage?
SWTの org.eclipse.swt.graphics.Image と互換性なくない?

IBMはBufferedImageからSWTのImageData作る方法教えてくれてるけど
http://www-06.ibm.com/jp/developerworks/java/040702/j_j-2dswt.html

゚Д゚) < バイト配列直接いじれよ

ぐらいのなめきった答えしかくださらねえですよ
そんなことできるんならおっきなGIFのImageDataからちっさなImageDataを
作ってるっつーのとっくの昔にぃ

ImageDataの仕様がよくわからない...情報源はみんな英語だしぃ
0868デフォルトの名無しさん2006/02/22(水) 21:36:46
仕様も何もそのままじゃん。
0869デフォルトの名無しさん2006/02/22(水) 22:01:15
いやだったら日本語資料の多いJava2Dつかえばいいだけ
0870デフォルトの名無しさん2006/02/22(水) 22:29:11
867に欠けてるのはSWT仕様の知識というより一般的な画像データの取り扱いの仕方
なんじゃないかなあ。マスクとかパディングとかrawデータの配置とか。
ImageData#dataのフォーマットってそのあたりの知識があれば
リファレンス流し読みで理解できるよね。まあ、そのへんわかんなくても
getPixel/setPixelで画素単位で泥臭く処理してもいいしね。

でも、とりあえずサイズ変換するなら、こんな感じ?
ImageLoader loader = new ImageLoader();
ImageData[] datas = loader.load(name);
ImageData srcData = datas[0];
ImageData dstData = srcData.scaledTo(32,32);
loader.data = new ImageData[]{dstData};
loader.save(name+".gif", SWT.IMAGE_GIF);
縮小品位に不満があったら、自分でデータ取り出してbicubicなり
Lanczos3なり処理すること。画像処理スレねただが。
0871デフォルトの名無しさん2006/02/23(木) 23:39:38
画像の知識は足りないかも。scaledToとかじゃなかったんだけど、俺の質問の仕方が悪かった。
とりあえず、憶測とTry&Errorで左上の32*32だけ切り取ることはできたよ

ImageData srcData = image.getImageData();
int srcPerLine = srcData.bytesPerLine;
ImageData dstData = (ImageData) image.getImageData().clone();
dstData.bytesPerLine = dstData.depth * 32 / 8;
int dstPerLine = dstData.bytesPerLine;
dstData.width = 32;
dstData.height = 32;
dstData.data = new byte[dstPerLine * 32];
for(int y = 0; y < 32; y++){
  for(int x = 0; x < dstPerLine; x++){
    dstData.data[(y * dstPerLine) + x] = srcData.data[(y * srcPerLine) + x];
  }
}
0872デフォルトの名無しさん2006/03/08(水) 22:15:40
SWTで、スタイルシートでいう style.display=noneのように、
領域を残さずボタンを消したいのですが、うまくできません。
申し訳ありませんが、どなたか教えてくださいm(__)m
0873http://www.vector.co.jp/soft/win95/util/se072729.html2006/03/18(土) 21:51:47
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?



0874デフォルトの名無しさん2006/03/22(水) 13:00:21
mzujHGfPXnmL
0875デフォルトの名無しさん2006/04/07(金) 20:16:43
あげ
0876デフォルトの名無しさん2006/04/07(金) 21:55:56
何故上げるのだ・・
0877デフォルトの名無しさん2006/04/08(土) 00:36:25
正直旬は過ぎたな
0878デフォルトの名無しさん2006/04/08(土) 13:28:03
旬なんてあったっけ?
0879デフォルトの名無しさん2006/04/08(土) 13:55:52
Eclipse2.0がでたときだな

GUIはSWTになるってどこの雑誌も持ち上げてたころ

現状はSwingの速度が問題にならなくなってかわりにJNIの速度がネックに

機能的にSWTはSwingにはるかにおよばず(こちらは昔から)
JFaceが必須になって素のSWTとどっちもおってるとわりとめちゃくちゃに

そもそもSWTの設計ヒドス
Javaの開発者いなかったんじゃないかなとおもた

Windows以外のGUIを考慮するとSWTはバグやら速度的にメリットがなかったしねぇ
0880デフォルトの名無しさん2006/04/08(土) 15:03:38
でもWindowsでGUIならSWTなんでしょ?
0881デフォルトの名無しさん2006/04/08(土) 15:53:01
JavaならもはやWindowsでもSwingだろ?
0882デフォルトの名無しさん2006/04/08(土) 20:16:57
なんでこのスレみんな悲観的なの?
0883デフォルトの名無しさん2006/04/08(土) 20:59:47
悲観的になってるわけじゃないけど、
SWTよりもSwingの方が勢いがあるのを感じるよね
0884デフォルトの名無しさん2006/04/08(土) 21:20:35
NetBeans5おとしてきてJFrameの作成やってみればありがたみがよくわかる。
JavaSE6でグループレイアウト標準になるの確定したしね。
0885デフォルトの名無しさん2006/04/08(土) 21:39:32
>>879
>機能的にSWTはSwingにはるかにおよばず

そうなの?
SwingでWindowsのツールバーにアイコン表示とかできる?
Swingは見た目が糞すぎるからどうにも使う気にならないんだけど
0886デフォルトの名無しさん2006/04/08(土) 21:44:06
Swingじゃ「Windowsもどき」のレベルでしかないからな。
でもそこにこだわるんならJAVAである必要も無くなるような。
0887デフォルトの名無しさん2006/04/08(土) 22:19:00
ツールバーにアイコンはもう8年位前から晴れたと思うけど?
0888デフォルトの名無しさん2006/04/08(土) 22:23:13
>>886
http://blogs.sun.com/roller/resources/cbeckham/uml.png

たしかにWindowsと違いますね!
0889デフォルトの名無しさん2006/04/08(土) 23:40:37
JFaceの **Provider は、Swingの **Model より遥かに使いやすいんだけど。
俺以外の誰か、あのへんのフレームワークをSwingに移植しないかな。
0890デフォルトの名無しさん2006/04/09(日) 01:22:56
何かこのスレに久々にレスがあって嬉しい
0891デフォルトの名無しさん2006/04/09(日) 11:02:01
JTable >>>>>>>>>>>>>>>>>>> Table
の差が大き過ぎ
0892デフォルトの名無しさん2006/04/12(水) 23:09:40
TextAreaの任意の一行のみをString型に格納したい場合どうすればいいですか?
0893デフォルトの名無しさん2006/04/12(水) 23:11:36
>>892の質問取り下げます
0894デフォルトの名無しさん2006/04/15(土) 10:18:08
ふむ
0895デフォルトの名無しさん2006/05/08(月) 00:30:32
>>872
亀レスなんだが
Control#setVisible(false) じゃ駄目?
0896デフォルトの名無しさん2006/05/08(月) 02:12:29
http://www.rssowl.org/overview
jfaceカコイイ!
0897デフォルトの名無しさん2006/05/08(月) 02:16:13
>>891
KTable超お勧め
0898デフォルトの名無しさん2006/05/16(火) 00:45:05
eclipse3.2 の RC 触ってたら、3.1よりさらに軽くなっていてもうびっくり。
swtにも未来はあると思った。
0899デフォルトの名無しさん2006/05/16(火) 00:59:35
実はプラグインあまりいれてないというオチだったりして
Eclipseはプラグイン入れないと3.1でも軽いからね

3.0はなかったことに・・・
0900デフォルトの名無しさん2006/05/16(火) 16:22:28
プラグインには、良いプラグイン、悪いプラグイン、そしてどうでもいいプラグインが存在します。
とても良いプラグインでも、関係ないことしかしてないときは、どうでもいいプラグインです。
だから、構成の管理でoffにしておきましょう。大丈夫。使いたいときはonにするだけでいいんですから。

と、これをやらずにプラグイン入れたら重い、というのはどうかなあ。
0901デフォルトの名無しさん2006/05/17(水) 03:38:53
何か、新しいマシンに変えたら軽くなっていてもうびっくり。
SWTにも未来はあると思った。

netbeansも速くなったけどな。CoreDuoマンセー
0902デフォルトの名無しさん2006/05/17(水) 03:56:32
>>900
そこまで面倒なことをするなら、NetBeansでいいじゃないか。
0903デフォルトの名無しさん2006/05/17(水) 09:48:35
>>901
マシンパワーあるならなおのことNetBeans楽でねーか?
ほぼpureなJavaアプリだからチューニングはいつものとおりだし
0904デフォルトの名無しさん2006/05/17(水) 17:07:39
>>903
うちのnetbeansはこれくらい頑張ってるぜ
つ ttp://www.dotup.org/uploda/www.dotup.org0569.png_KpSmBz8oAwZGwCUGepny/www.dotup.org0569.png
まぁ、どっちも必要なんでeclipceもnetbeansも両方立ち上げて使ってるだけというオチ
CoreDuoマンセー
0905デフォルトの名無しさん2006/05/17(水) 18:00:07
いいなぁそのメモリ

暇なときにぽちっとFullGCできるのもなんとなく気分がいいよな
CoreDuoだとパラレルGC設定することによってがくっとはいるFullGCとかふせげるからいい

NetBeansはPenM2.2GHzよりCoreDuo1.66GHzのほうがはるかに快適
0906デフォルトの名無しさん2006/05/17(水) 23:30:49
>>904
つうか、そのLAFがメモリくうんじゃねぇ?
0907デフォルトの名無しさん2006/05/18(木) 00:59:55
残念ながらEclipseより食わない
0908デフォルトの名無しさん2006/05/18(木) 04:03:41
eclipseとnetbeansで調べてみた。
どちらもプロジェクト一つだけにして。起動直後のコミットチャージを計った。
eclipseは、pleiadesで日本語化し、VEをあげている。その他、Subversive等プラグインが入っている。
netbeansは、5.0の日本語化ファイルを適用している。Subversionモジュールを入れている。
メモリチューニングパラメータは、どちらも
-Xms32m
-Xmx256m
-XX:PermSize=32m
-XX:MaxPermSize=160m
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
が付けてある。
試行したのは、次の4パターン。
(1) eclipse VE有効(エディタオープン)
(2) eclipse VE無効
(3) netbeans Substance有効(エディタオープン)
(4) netbeans Substance無効
起動して、HDDアクセスがなく落ち着いたときのコミットチャージをタスクマネージャから見る。
      (1)     (2)     (3)     (4)
1回目 183MB  160MB  167MB  145MB
2回目 183MB  140MB  152MB  144MB
3回目 181MB  145MB  151MB  143MB

GUI構築環境用に合わせたのが、(1)と(3)かな。これが今使っている構成。
eclipseはVEのエディタを開かなければ158MB程度。
VEは他にJVMインスタンス作るしメモリ食いなんだなぁ。
これからすると、Substanceのモジュールで10〜20MB程度食う模様。

ちょっと気合い入れて調べ過ぎた・・・orz
0909デフォルトの名無しさん2006/05/19(金) 00:03:46
激しく乙
0910デフォルトの名無しさん2006/05/19(金) 06:14:36
>>908
乙彼。使い勝手も考慮すると、VEをなんとかしろって感じだね。
0911デフォルトの名無しさん2006/05/19(金) 12:58:04
現状VE以外のGUIエディタで何かいいのある?
0912デフォルトの名無しさん2006/05/19(金) 13:03:55
>>911
NetBeans。
じゃなくて、Eclipseプラグインの範囲でってこと?
0913デフォルトの名無しさん2006/05/19(金) 13:08:32
GUIやるのにEclipse使うのが悪いってところはあるからな。
0914デフォルトの名無しさん2006/05/19(金) 13:20:30
>>911
Jigloo
http://www.cloudgarden.com/jigloo/index.html
0915デフォルトの名無しさん2006/05/19(金) 18:14:48
>>912
言葉足らずだった
そう。
0916デフォルトの名無しさん2006/05/31(水) 21:56:16
look and feelもいいが、
あの馬鹿でかいJREをなんとかしてくれ>>917
0917デフォルトの名無しさん2006/05/31(水) 21:57:43
ごめんこうむる。
0918デフォルトの名無しさん2006/05/31(水) 23:40:23
何を今更。
あんなもの誤差だよ誤差。
・・・でも昔のJREは数MBだったことを考えると・・・・・デブになった??
0919デフォルトの名無しさん2006/06/04(日) 06:59:20
browserクラス使って表示したWebページからモーダルダイアログ開くと
CPU使用率が100%になるんですけど、なんでなんでしょう?
0920デフォルトの名無しさん2006/06/09(金) 18:23:25
Wa boel is da hiere?
0921デフォルトの名無しさん2006/06/10(土) 20:53:06
日本語でおk
0922デフォルトの名無しさん2006/07/04(火) 21:09:35
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)

i−want−to−study−java@hotmail.co.jp
(アドレスは全角で書いてあるので半角に直してください)
よろしくおねがいします
0923デフォルトの名無しさん2006/07/05(水) 03:25:25
コンビニのバイトより安いですが、よろしくお願いします。
0924デフォルトの名無しさん2006/07/05(水) 19:37:50
え?このマルチ本気だったの?
0925デフォルトの名無しさん2006/07/08(土) 03:27:52
SWTで非矩形ウィンドウは作れるみたいだけど、更に半透明にしたウィンドウを出すのは無理だよね?

Yahoo Widget Engineみたいに透過PNGをそのままデスクトップに出したいんだけど・・・クロスプラットフォームを考えたとき、一番いい解決法って何だろう。
0926デフォルトの名無しさん2006/07/08(土) 09:56:15
>>925
YahooにMacやLinux用のWidget実行環境・開発ツールを作成してもらう。
0927デフォルトの名無しさん2006/07/08(土) 10:09:51
そんな非現実的な。コードの変更もままならないし
0928デフォルトの名無しさん2006/07/08(土) 10:21:05
それぞれの環境用にJINIで書いてクラスライブラリでラップ。
0929デフォルトの名無しさん2006/07/08(土) 10:31:52
>>928

うーん、それしかないんかねぇ。一番やりたくなかったんだが・・・
0930デフォルトの名無しさん2006/07/08(土) 14:45:59
>>922
時給2000円くらいだったらマジで教えてもいいんだけどな
0931デフォルトの名無しさん2006/07/08(土) 17:11:08
>>929
スパム業者で監禁されてもか?
09329312006/07/08(土) 17:11:57
>>930
だった…orz
0933デフォルトの名無しさん2006/07/09(日) 13:01:54
2chで人募集するような業者にまともなのはいないな。
会ったりなんかしたら二度と帰れない可能性が高い。
0934デフォルトの名無しさん2006/07/10(月) 19:27:13
高速なのかい?
0935デフォルトの名無しさん2006/07/10(月) 23:25:34
>>933
1人時給10円でいいからっていって
100人ぐらいで教えにいくってどうだろう?
0936デフォルトの名無しさん2006/07/14(金) 02:24:33
ComboとかCComboって、アイコン貼れないのか……('A`)
0937デフォルトの名無しさん2006/07/14(金) 23:35:04
つSwing
0938デフォルトの名無しさん2006/07/15(土) 01:05:06
結局それか・・
0939デフォルトの名無しさん2006/07/16(日) 00:44:27
SWTのコンポーネントモデルってMFCを参考にしたもの?
VCLを参考にして欲しかった。
0940デフォルトの名無しさん2006/07/16(日) 02:20:13
>>939
VCLを参考にしたのはSwing
0941デフォルトの名無しさん2006/07/16(日) 13:41:11
SWTはIBM VisualAge Smalltalkの次世代GUIコンポーネントが元じゃなかったかな、
組み込みにも使えて、プラットフォーム固有の機能を使えることを目指した奴。
0942デフォルトの名無しさん2006/07/17(月) 20:52:22
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)
よろしくおねがいします
i−want−to−study−java@hotmail.co.jp
教える対象は超初心者です。

専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です
0943デフォルトの名無しさん2006/07/18(火) 02:32:53
スパマーさんいらっしゃい。
mailto:[email protected]

つってもhotmailだけど。
0944デフォルトの名無しさん2006/07/18(火) 02:33:05
gc.handle経由でデバイスコンテキスト渡すことができるんで、
ハッチブラシだのイメージブラシだの何でもできることがわかった。
Win32API、楽しいぃいい

http://www.hcn.zaq.ne.jp/no-ji/javamemo/org_eclipse_swt_internal_win32_OS.html

ただベジェ曲線のAPIがつぶされてるのと、
Win以外の環境には二度と移植できないSWTプログラムができる・・・
これってJava使ってる意味ねぇよな・・・
0945デフォルトの名無しさん2006/07/18(火) 19:43:37
i-dont-want-to-teach-java
0946デフォルトの名無しさん2006/08/04(金) 08:37:44
基本的な質問でスマソ。

SWTのマウスイベント等は
AWTのconsumeみたいな感じで無効化したりできるの?

ちょっと調べたけど、
やりかたわからんかった・・・orz
0947デフォルトの名無しさん2006/08/04(金) 09:17:27
e.doit = false
だったかな。確かこんな感じで無効化できたはず。
09489462006/08/04(金) 09:39:29
>947

レスありがとうございます!

セレクションイベント等は
その方法で行けそうなんですが
マウスイベントはdoitフィールドが
見当たらないんですよね…

見方が悪いのでしょうか(*´д`*)
0949デフォルトの名無しさん2006/08/04(金) 10:01:04
クリックを無効にしたいとかはロジックで何とかなるんじゃない?
09509462006/08/04(金) 12:30:20
>949

例えば、Tree部品で
ある条件のときだけ
マウスクリックによるノードの展開を抑止したい…
みたいなことをやろうとしたら
ロジックでどうにかなったりしちゃいます?

最終結果だけを合わせるような
処理なら書けそうな気はしますが
ちらついたりしていまいちだし
なんかAWTみたいに楽な方法はないかと思った訳です…
0951デフォルトの名無しさん2006/08/04(金) 13:12:49
>>950
ああ、そういうのをしようと思うと難しいね。
その条件の時だけ子を消すとかするとツリーの再描画があってちらつきそうだしなぁ。

俺の場合は、さらにWindowsとLinuxだとマウスイベントの発生するタイミングが違ったりで苦労したな・・・。
Treeを展開するときにWindowsはマウスイベント発生してから展開されるけど、Linuxは展開された後にイベント発生したりするし。
そのときはさすがにSWTダメじゃん!と思ったよ。
0952デフォルトの名無しさん2006/08/04(金) 13:26:14
SWTで書いたのはかなり前なんで、細かいことは忘れたが・・・

MouseEventやSelectionEventの時点でイベントの流れを止めると、選択できなくなるけどいいのか?
展開を抑止したいんならTree側の処理だろうし、そもそも展開できないものを
Treeとして表示するのもヘンテコなUIだと思う。
コンポーネントはTreeのままで、表示方法は変更するにしろ、
そういった処理はTreeとかTreeItemでやるのが筋では。

でもSWTって継承できないから、ちょっと手間かかるけどねー
09539522006/08/04(金) 13:28:12
・・・って、SelectionEventは選択後に発生するよな。 失礼。

LinuxのSWTって触ったことなかったけど、触んなくて良かった
0954デフォルトの名無しさん2006/08/05(土) 00:49:48
特定の TreeItem だけ disable にできたらそれで代用できそう。
09559462006/08/08(火) 09:35:21
遅レスすまそ…

確かにUI的には変だと思います。。

これはこちらの作りが悪いのかもしれませんが
以下の問題が発生してるための
回避として調査してました

1.ツリーの一部のセルをマウスダウントリガでcomboにする
2.comboにフォーカスがある状態でツリーの展開しようとする
3.TreeEditorでヌルポ発生

同様な実装をTextでやっても問題は発生しません…
もしかしたらdisposeのタイミングが悪いのかも知れませんけどねー

ちょっとjface等調べて試してみようと思います


ちなみに、Treeって一部のノードだけを
使用不可にしたりチェックスタイルやめたり
できませんよね?
なんか痒いとこに手が届かない
歯がゆいコンポーネントですよね…
0956デフォルトの名無しさん2006/08/08(火) 21:59:31
>955
Combo が focusLost したときに、TreeEditor を閉じれば解決できるかも。
0957デフォルトの名無しさん2006/08/20(日) 19:47:44
SWTonMacって出ない?
0958デフォルトの名無しさん2006/08/21(月) 09:23:05
Shellを作った時に自動で付いてくる[×]ボタンを別の処理に置き換えることはできないでしょうか?(例えばsetVisible(false)とか)

もう1つ質問
JFaceで作成したメニューバーやツールバーの表示・非表示を切り替えることはできないでしょうか?
setVisible()だけだと領域が残るので…
0959デフォルトの名無しさん2006/08/24(木) 17:04:55
ちょっと質問です。

Treeに対してTreeColumnを使用した場合、
スタイルにSWT.FULL_SELECTIONを指定しないと、
マウスイベント発生時に
 Tree#getItem(Point)
でTreeItemがとれません。。。

これは仕様なんでしょうか?


やりたいことは以下のことです。

・SWT.FULL_SELECTIONでないTreeで複数桁表示する。
・1以上のカラムをマウス押下された場合、
 0カラム目のノードを選択状態にする。

なにかうまい方法があればよいのですが・・・
情報ありましたらアドバイスお願いします。
0960デフォルトの名無しさん2006/08/27(日) 01:39:34
質問です。

JavaGUIプログラミングSWT編というテキストに載っていた
MemoPadというソフトをちょっと変更して作ってみて、
Eclipse上で動かすと、ウインドウを閉じるとプロセスも終了
するのですが、JavaWebStartで配布したものだとプロセスが
終了してくれません。これはなぜなのでしょうか?

ちなみに、JavaWebStartで配布したものも、メニューの
「ファイル」→「閉じる」からだとプロセスが終了します。
0961デフォルトの名無しさん2006/08/30(水) 01:09:17
>958
×ボタン云々については、こんな感じでshellClosedのイベントを
実装すればできるかと。

sShell.addShellListener(new ShellAdapter() {
    public void shellClosed(ShellEvent e) {
    e.doit = false;
    sShell.setVisible(false);
  }
}
0962デフォルトの名無しさん2006/09/08(金) 21:21:42
移動しているウインドウをクリックで止めるという
プログラムをSWTで練習の意味で作ってるんだけど

移動中にマウスクリックイベントが拾えない。
shellのsetLocationとupdateで1ドットずつずらしながら
移動してるんだけど、なんか間違ってる?
09639622006/09/09(土) 00:18:04
事故解決した。

めんどくせぇ・・・
0964デフォルトの名無しさん2006/09/09(土) 08:07:22
えと、Tabを使ったソフト作ろうとしているんですが、
どんどんTabを追加して開いていくというのはどうすればできるのでしょうか?
0965デフォルトの名無しさん2006/09/09(土) 18:17:05
964です。自己解決しますた。
0966デフォルトの名無しさん2006/09/13(水) 22:27:06
SWTでテキストボックスとかの「デフォルトフォント」を取得する方法はありますか?
テキストボックスをnewしないで。


0967デフォルトの名無しさん2006/09/13(水) 22:51:31
デフォルトフォントはDisplayクラスから引っ張ってるみたいだから、
display.getSystemFont ().handle;
とかで引けるんじゃないかな。
0968デフォルトの名無しさん2006/09/13(水) 22:52:28
OKありがと!ちょい調べてみます!
0969デフォルトの名無しさん2006/09/16(土) 00:07:28
Java2Dとの組み合わせで詳しいサイトきぼんぬ。
あそこは読みづらいんだよねぇ
0970デフォルトの名無しさん2006/09/16(土) 02:58:05
あそことは何か。
不明瞭な発言は止めよ。
0971デフォルトの名無しさん2006/09/16(土) 21:32:48
グレートブルーの識別信号がゲルドルバの線上で確認されたのですが、どうも……
0972デフォルトの名無しさん2006/09/17(日) 23:33:32
age();
0973デフォルトの名無しさん2006/09/18(月) 00:49:29
たぶんあそことはdWのことだろう

http://www-06.ibm.com/jp/developerworks/java/040702/j_j-2dswt.html

Java2Dとの組み合わせは、正直ここしかみたことない
0974デフォルトの名無しさん2006/09/24(日) 14:02:37
TextからfocusOutさせない方法知らない?
TraverseListenerだとTabイベントだと制御できるけど、マウスでの移動に
対応できない。???
0975デフォルトの名無しさん2006/09/24(日) 17:30:50
>969
基本的にSWTとJava2D(=AWT)は別物だから使えないよ。
dWみたいに画像転送するぐらいしか。
0976デフォルトの名無しさん2006/09/24(日) 22:48:21
>>974
display#setFilter()つかってFocusInイベントを捕まえて
目的のwidget以外だったら目的のwidgetにsetFocusしなおす。

でもそもそも目的以外のwidget全てをsetEnable(false)なり
setEditable(false)なりして、フォーカスをあてたり編集
したりする操作ができないことをユーザに対して示しておく
べきだと思う。見た目上出来るはずなのに実際は出来ないってのはおかしいよね。
0977デフォルトの名無しさん2006/09/27(水) 17:04:15
Eclipseでプロジェクト作って
つっこんでさー実行させたら

java.lang.UnsatisfiedLinkError: no swt-win32-3232 in java.library.path
ってでるんだけど。。

ググっても微妙だったんで、他にもなった事ある人います??
The SWT FAQみてもちょっとわからんかったんで。

Eclipse SDK3.1.1
Win2k
Java1.4
0978デフォルトの名無しさん2006/09/27(水) 17:10:54
それはさー、かんたんじゃん。入門の最初にかいてるじゃん。

でもさ、環境移動したら忘れるよね。
だからおれはPJの設定で指定してるさ
09799772006/09/27(水) 17:22:36
>>978
Dllのpathを環境設定すりゃいいのかー
09809772006/09/27(水) 17:28:21
なるべっっっっっっっっく辛気臭いコマンドラインじゃなくて
Eclipseで開発してぇええええええんで。
がんばろう
09819772006/09/27(水) 18:06:02
お父さん聞いてよ
ワークスペースにswt-win32-3232.dll入れたら動いたYo!

おさわがせしますた。
0982デフォルトの名無しさん2006/10/02(月) 22:54:36
ttp://www.java2s.com/Code/Java/SWT-JFace-Eclipse/CatalogSWT-JFace-Eclipse.htm

ここいいよ!
レス数が950を超えています。1000を超えると書き込みができなくなります。