1 :
デフォルトの名無しさん :
03/11/09 12:51
2 :
デフォルトの名無しさん :03/11/09 12:52
SWTなんぞ役に立たんわい
3 :
デフォルトの名無しさん :03/11/09 12:52
4 :
デフォルトの名無しさん :03/11/09 12:55
Swingも糞。 こんなの使う暇があるならVBのほうがまし。
6 :
デフォルトの名無しさん :03/11/15 09:40
age
7 :
デフォルトの名無しさん :03/11/15 10:15
このすれ、待ってたよー。
9 :
デフォルトの名無しさん :03/11/15 11:53
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指定が無効になるっぽいです。
11 :
デフォルトの名無しさん :03/11/15 13:22
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をみて、成功された方、情報をお願いします。。。
>>13 ありがとうございます!
やっとexeファイル作成できました。
でも、8M。。。。。
swt.o 自体が7Mあるからしょうがないんですね。
15 :
デフォルトの名無しさん :03/11/22 19:22
16 :
デフォルトの名無しさん :03/11/25 22:59
Listで選択した項目によってイベントを起こしたいのですが、そのようなリスナーはあるでしょうか?
17 :
デフォルトの名無しさん :03/11/26 02:18
UKうざすぎ。
>>16 普通にSelectionListener使えば?
19 :
デフォルトの名無しさん :03/11/26 18:08
レイアウトをセットしてShell.openでウィンドウを開いたのですが、フラグが立つと同時にレイアウトを作り直して再表示するという処理が思い浮かびません。 教えていただけないでしょうか?
20 :
デフォルトの名無しさん :03/11/28 01:24
個人的に期待age
21 :
デフォルトの名無しさん :03/11/29 16:02
Swingやら SWT 2 やらGUIの部分もまともに統一されていないような言語を初心者にいろいろ理屈つけて薦めるやつがいる。
GUIがまとまってる言語しかすすめちゃいけないのか
23 :
デフォルトの名無しさん :03/11/29 20:58
だめだろうね。初心者だよ?そんな高速やら低速やら2種類も3種類もあって、パワーユーザーさえも成功やら失敗やら情報交換しなきゃまともにプログラム組めない。 俺が初心者ならそんな言語勉強するのはごめんだね。
香ばしい香りに誘われてきたらなるほど痛いレスがありますな
25 :
デフォルトの名無しさん :03/11/29 21:07
JAVA=初心者不向き そういうスレじゃないの?
釣りは放置で。
27 :
デフォルトの名無しさん :03/11/29 21:27
なんでもいいが、とりあえず金かけずに、プログラム作ってるなぁ っていう雰囲気を味わいたいだけなんだよ。
29 :
デフォルトの名無しさん :03/12/02 19:36
無限ループしてるスレッドからGUIに対してボタンを変更するなどの処理をしたいのですがThread.runに対してNULL Pointerエラーが起こってしまいます。 全くわからなくなってしまったので教えて下さい。 お願いします。
30 :
デフォルトの名無しさん :03/12/02 21:04
ここは初心者質問スレじゃないが、 C#ならそんな悩みも無用。 C#Builderというフリーの環境がBorlandからでています。
31 :
デフォルトの名無しさん :03/12/02 21:45
SWTって何て読めばいいの? エスダブルティ?
32 :
デフォルトの名無しさん :03/12/02 21:46
そもそも何の略なんだか。
ぬるぽ。
SWTとC#でつくるGUIはどっちが反応速度とか快適なの?
39 :
デフォルトの名無しさん :03/12/04 19:24
>>40 ありがとう。
でも金ないしJavaの本なら最新のが図書館でたくさん借りられるし
オープンソースのプログラムがたくさんあるからJava勉強するつもりだけど。
Eclipseにも感動したし。
いつかEclipseのソースを読んでみたい。
でもC#も魅力的だな。
>>39 試行錯誤していろいろ試しているうちにコンパイルが通って
できるようになりました。
原因はさっぱりわかりませんでしたが、できたので
まあ一応よかったと思います。
アドバイスありがとうございました。
>>41 サーバサイド技術に関心があるなら止めないが
もともとの質問はGUIのことだよね?
GUIに関心があるならEclipseは無力だしまともな本はない
>>29 =42
コンパイルエラーはエラーのうちに入らない
>試行錯誤してるうちに原因はわからないもののできた
こういうのが一番やっかい
よかったとか言ってる場合じゃないぞ
VisualEditorProjectで
ttp://www.eclipse.org/vep/ VE0.5.0RC2がでていたりするが
some of the foundations for the SWT-based GUI editor reference implementation
とのことなのでまだまだなのかな?
だれか試した香具師おる?
>>43 サーバサイド技術に関心はないんだけど
いつか自分で(アウトライン)エディタを作ってみたいなと思ってて
Eclipseに感動したんです。
既存のEDITコンポーネントを貼り付けただけのじゃなくて
バッファの管理からテキスト出力まで自分で作って
補完や自動インデントや構文を認識してのアシスト機能のあるやつが夢です。
だからGUI以上に内部の構造やアルゴリズムにも興味があるんです。
でもC#の方が言語的にもGUI構築にもいいって聞いたので
ちょっと気になって質問してみたんです。
どうもありがとうございました。
47 :
デフォルトの名無しさん :03/12/06 00:28
>>46 ぜひ、Eclipse のプラグインで作ってくれ。
巨大ソフトの八苦を夢見てプログラムの勉強を始めたって香具師で その頂上を極めたと言う話は聞いたことがない。 せいぜいある程度使えるようになった段階で自分の無力さを痛感して 厨房なアルゴリズムで『自作』を前面に出してくるのが関の山。
>>48 それだったら最初から妙な野心など捨ててしまって、
一番向いている言語から手を出して、
出来る範囲で試行錯誤すればいいだろ。
昔なんかそれが問答無用でBASICだったんだぞ。
>>48 最近は『自作』だと厨房の戯言として無視されると気付いたらしく
みんなで作っているかのような共同体幻想を背景に『和製』と名乗るのが通
『国産』よりも『和製』、それが通
国産牛より和牛、ってか?
みんな使ってないの?
56 :
デフォルトの名無しさん :03/12/21 00:06
結局、SWTってのはどうなの?芽が出そう?
59 :
デフォルトの名無しさん :03/12/22 20:03
SWTイイと思うんだがなぁ
1.4.2がもう少し遅ければ。
61 :
デフォルトの名無しさん :03/12/22 20:43
awt廃止でいいから、1.5にくみこんで。
SWTがあまり人気が出ないのはどんな理由があるんだろうか Swingと違い、速いというのはEclipseでSWTに興味のない人にも理解されてると思う 1,SWTの日本語ドキュメントがない、もしくは少ない 2,Swingに慣れ親しんでいるので新しいAPIを覚える気がでない 3,Swingと比べてクラス設計がダメダメ 4,JavaなのにネイティブAPI使うから気持ち悪い 5,SWT? Swingで十分だしどうでもいい 書いてみると結構全部該当するんかなぁとか思ったり 適材適所だけどもうちょっとSWTが普及すればJava使う人もそのソフトを使う人もハッピーになれる場合があると思う
6,そもそもJavaのGUI自体の需要が少ない
64 :
デフォルトの名無しさん :03/12/23 12:32
7,新参者のAPIはまだまだ様子見
8,そもそもEclipseなんか誰も使ってないのでSWTは知られていない
9,JavaはC#に駆逐されて誰も使ってない
9,配布する場合、JREに加えSWTのjarを考慮するのがめんどくさい。
68 :
デフォルトの名無しさん :03/12/23 12:56
悪いところを逆に考えて、アピールしていく姿勢が必要だと思う。
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に興味深々!
こんなもんか。
1の日本語ドキュメントってそのページじゃ全然足りないだろw つーかそのほかも強引すぎてアヤシイ広告みたいだな・・
70 :
デフォルトの名無しさん :03/12/23 13:02
前9, JavaはC#が現れたころからより安定し、ますます健在!
後9, ユーザの要望を満たす高性能GUIを提供するswt.jar!JavaWebStartとも相性最高!
>>69 ネガティブより、ポジティブすぎるくらいのほうが良いでしょ。
流れを無視して技術系の質問もここでいいんかな? SWTでShellやImage、ColorとかDisplayを引数に要求してるけど別にnullでもいいよね Displayって具体的にどういう役割のもの? サンプルみるととりあえずnewしてImageとかの引数に使ってるけど
72 :
デフォルトの名無しさん :03/12/23 13:16
Displayクラス このクラスのインスタンスは、SWTと根本的なオペレーティング・システムの 関係を管理します。 Displayクラスの一番重要な機能は、プラットフォーム固有のイベントモデルで SWTイベントループを実装することです。 また、Displayクラスはオペレーティング・システムに関する情報に アクセスする様々な方法を提供し、SWTが取得するOS寄りの資源に対する 全面的な管理を行います。
>>71 という大事なクラスらしいので、
将来ぬるぽが出ないように、ちゃんと引数に渡すが吉。
ふむ、APIドキュメントみてもよくわかんないメソッドが並んでるけどまぁサンプル通りちゃんと渡した方がイイってことかぁ サンクスー
>>62 SWT ○ 速い × 非標準 新参者 ツールがない
Swing ○ 標準 枯れてきた ツールがある × 遅い
速さは神だったので、SWTが期待されたけど、JDK1.4.2でSwingが速くなって、SWTのデメリットを考えたときの魅力が少なくなった。
76 :
デフォルトの名無しさん :03/12/23 21:45
JFaceの何かいい本ないかねぇ。
77 :
デフォルトの名無しさん :03/12/27 14:36
Eclipse関連の本って最近多く出ているね。 SWTを詳しく扱ったものはまだ少ないのかなー?
78 :
デフォルトの名無しさん :03/12/27 18:27
ScrolledCompositeについてお聞きしたいと思います。 ScrolledCompositeの上にComposite1を配置し、その上にさらにComposite2を配置したいのですが 何故か反映されず、Composite1しか表示されません。 どなたか原因をご存知の方ご教授お願いします。 ※Composite2上にはさらにLabe等lを配置したいと思っています。
Textでカーソルのある行だけを抜き取る事って出来る? Text.getText(int start, int end)だと、行単位が難しいよねえ。。
Eclipse3.0M6からの、SWTへのSwing埋め込みを試してみた人レポートよろ
82 :
デフォルトの名無しさん :04/01/11 15:13
84 :
デフォルトの名無しさん :04/01/23 12:32
ウィンドウ上に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が働くようにするにはどうしたらよいのでしょうか?
KeyListener を一つだけ作って両方に addKeyListener してやればいいんでないの
レスさんくすです。 >KeyListener を一つだけ作って両方に addKeyListener してやればいいんでないの まったくそのとうりでした。ありがとうございます。
意図した「とおり」 その「とおり」 と正しい日本語を書いてくれ。
>>87 いちいちうるせぇんだよ!! 老人か?テメェは?
そんな細かいこと気にしてられるかよ!!!!!!!!
90 :
デフォルトの名無しさん :04/01/26 11:45
84 は良かったね。リアルで恥じかく前に 2ch で教えてもらえて。
>>89 おまえのゆうとうりです。
バカだから、そこまで気がまわらないんだよね。
>>89 少なくともプログラムを書くものとして
細かいことを気にしてられないというのは致命的だ。
>>89 for 文を far と書いているようなものだな。
>>84 と
>>94 はコンパイラ。
細かい文法違反も見逃さない。
ただし、文法以外は何も指摘してくれないから注意な。
>>93 ちなみに俺はよく「abstract」を「abstruct」と書き間違えるぞ
>>94 は警告レベル高過ぎないか。
×じゃなくて△程度にしとけよ。
>>96 ちなみにabstractは全部左手だからちょっと打つのうざい。
a[Ctrl+Space]
保守sage あまり使ってる人いないのかねぇ、、、淋しいよ。
↑素敵
Eclipse3.0でのSWT/JFaceの変更点がまとまっているサイトって、 どこかにありませんか? 英語でもいいです。
>>104 実際にどういう変更があったかは各milestoneのNew and Noteworthyを見る。
最終的にどういうことが予定されているかはそれぞれの3.0planを見る。
>>105 やはりそうでつか……。がんがって読みます。
108 :
デフォルトの名無しさん :04/02/05 11:57
Swing で書かれた、比較的小規模なアプリを SWTにポーティングしたのだが、かなり大変な作業だな。 もとのアプリで、GUIと処理系のアルゴリズムを 完全に切り放していたので、Swingで構成された GUI 用の パッケージを丸々SWTでリライトすれば動くと踏んだのだが、 その、リライト自体が大変だった。 で、リライトが終わったら、結局メイン側もリライトが入った。 元のプログラムがピークで20本以上のスレッドが立って、 それらが表示の更新をしていたため、 インスタンス生成時とは別のスレッドで表示の更新を行なうときは、 display.syncExec(... しないとダメだということで、ローカル変数で処理していたものを クラスフィールドに昇格。 SWT のものを Swing に持って行くのは楽だろうが、逆はきつい。 SwingWTは、内部で相当リソースの無駄な消費を しているんじゃないだろうか?
>>108 > インスタンス生成時とは別のスレッドで表示の更新を行なうときは、
> display.syncExec(...
> しないとダメだということで、ローカル変数で処理していたものを
> クラスフィールドに昇格。
ごめん,よく分からないんだけど,ただ単にローカル変数の内容をどこかに
表示するだけなら
void methodA(){
final int value = 0;
display.syncExec(new Thread(){
public void run(){
<valueを表示する>
}
});
}
みたいに書けばいいんでは? 見当違いのこと言ってたらすまんです。
>>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 を保存して対処。
});
}
続く...
112 :
デフォルトの名無しさん :04/02/05 19:43
続き < 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 ); } }
自分で動作を確認した訳じゃないんだけど,ぱっと見た感じではこんな感じのコードでも 動きそうな気がするんだけど,これだと何か問題があるんでしたっけ? 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を付けた ローカル変数の参照の方です。
>>110 >>114 おっしゃるとおりのような気がしてきた。
自分の放談に指摘をしてくれてありがとう。
>>109 改良ソースありがとう。
invokeの件と混みで自分のソースを改造してみるよ。
初めて2ちゃんのスレで書いたけど、
みんな親切なので驚いたよ。
ちゃんとした話題に飢えてて…
118 :
デフォルトの名無しさん :04/02/08 13:19
SashFormのボーダのサイズを変えるにはどうすればいいのでしょうか? SASH_WIDTHというメンバがありますが、これを変えても変化ないみたいです。
結局、一時のブームに過ぎなかったな。
だね。 Swingが速くなったからSWTいらないって言ってるし。 PCが速くなったからSwingのデメリットは消えたって言ってるし。 Swingの方がAPIが美しいから云々って言ってるし。
>120 それ誰が言ってたの? 言ってることは正しいと思うけど
>>121 2ちゃんのスレです。どこのスレかは忘れました。
>>122 なるほど、サンクス。
Eclipse自体はとっても素敵なんだが、どーもSWTが好きになれないんだよな。
「先生、Linux上でだけテキストの端っこがちょちょ切れます」とかイヤだな
Javaの思想に合ってない気がするし。
「EclipseがSWT捨ててSwingに移行する」
↓
「んじゃあNetBeansも一緒にやろうやってんで統合」
↓
「ウマー」
ってなればいいのにな
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が使われていくのではないでしょうか。
>>124 ネイティブコンパイルの件はあくまでもGCJに限った話だよね。
JETのAWT対応もライセンスの関係でJREのDLLだけ抜き出して配布
できないからJRE丸ごと必須ってことらしいし、IBM自身もAWTアプリ
をネイティブコンパイルできるJava(J2ME)環境を出しているし。
まあ後者はSWTの上にAWTを乗っけているわけだけど。
>>124 GNU classpath には AWT も Swing もアルファ版品質程度のがあるから
GCJ でネイティブコンパイルされた AWT アプリ作ろうと思えば作れるんだけどね…
SWT でネイティブコンパイルすれば JRE 不要っても
SWT のランタイム自体は必要になるし。
>>126 GNU Classpath の Swing ってまともに動いたっけか?
>>126 > SWT でネイティブコンパイルすれば JRE 不要っても
> SWT のランタイム自体は必要になるし。
何が言いたいんだ?
JREの代わりにSWT のランタイムごときで済むのがありがたいんだろ。
>>128 ネイティブコンパイルされた実行形式が結構でかいからサイズでも大してアドバンテージないし、
配布時にライセンス気にしなきゃいかんとか、そーゆー手間も考えると大して変わらん。
それは手間の質が違うだろうに・・・
今更引き下がれなくなってるだけか。
132 :
デフォルトの名無しさん :04/02/09 14:45
TextViewerでIMEの表示がずれてしまうのですが、 どうすればいいのでしょうか?Windowsでやっています。 おねがいします。
>>134 どうもありがとうです。
まだよくわかってませんが、いろいろ調べます
実際問題、Eclipse以外、SWT使ったAPを見かけない罠。
137 :
デフォルトの名無しさん :04/02/11 17:37
もっと使われてもいいと思うけどね。 何かと評判の悪いOracleのインストーラや管理ツールもSWTだったら良いのに。
IBMは(少なくとも表立っては)SWTを普及させようとはおもってない よね。WSADのインストーラもJavaベースだけどSWT使ってないし、 SWTアプリケーションの開発自体、サポート外。IBMのnewsgroupでSWT の質問した人は「サポート外だからeclipse.org行け」って返事されてるし。 あとはRCPの完成度がどれくらいになるかだな。
>>126 >GNU classpath には AWT も Swing もアルファ版品質程度のがあるから
swing使えんの?
自分で書くなら、Swingがいい 自分が使うんだったら、SWTの方が嬉しい 皆さん頑張ってSWT普及させて下ちい
TextViewerの使い方が全然わからないよ(;´Д`)
SWTを使ったエディタでショートカットを実装しようと思ったんですが、 CTRLキーを押しながら「A」を押したときに「A」を判別する方法が分かりません。 似たようなことをしているjfaceのActionクラス関連のソースを見ましたが、 どこで判別してるのか突き止められませんでした。 回答でもヒントでも構わないので、何か知ってる人はいませんか?
>>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();
}
}
こんなかんじでいいのかなあ。はじめてさわったからよくわからん。
>144 win32だと、アクセラレータに登録して、TranslateAcceleratorがコマンドに変換するから AをとるとかじゃなくてAの時に適切なコマンドがくるように設定するから、 SWTだとShellがMenuItemをもっててそれがアクセラレータをもってるみたい。 MenuItem.setAcceleratorで設定するみたい。
>145 > 同一人物かどうかわからんけど、まとめると 同一人物ではありませぬ。 >if (e.stateMask == SWT.CTRL && e.keyCode == 'a') { だめでした。if 文が true になりません。e.keyCode は 0 ですた。 >146 今MenuItemのソースを見てるんですが・・・ やろうとしてることが実は結構難しいことがわかりますた。 方向性を変えて、「CTRL+A」という文字列を返す方法を探します・・・
そう? うちだとこんなコードで 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(); } }
>148 うーん、ソースをコピペしてやりましたが、結果はさっきと同じです。 ちなみにこちらの環境はWinXP & JDK1.4.2 & eclipse2.1.1です。 なんでだろ?
ああ、うちは3.0M6 + JRE1.4.2_03 + Win2Kだった。 #開発はR2.1.2上でやってるけど、SWTライブラリは3.0M6。 bugzilla見てみるかな。
152 :
デフォルトの名無しさん :04/02/13 20:05
CTabFolderの状態をアプリ終了時に保存しておきたいと考え、 addDisposeListenerを使うと思ったのですが、これが呼ばれる時点で すでに、CTabFolderのCTabItemがなくなってしまっているようです。 終了時に保存したい場合、どこで保存するのが適切なんでしょうか? お願いします。
>>152 ShellListener#shellClosed
>>153 ありがとうございます。
Shellはアプリ本体だとおもうんですが、
できれば、CTabFolderの内部で解決したいんですが、これは無理なのでしょうか?
>>154 folder.addDisposeListenerと書こうとしていた人間が
folder.getShell.addShellListenerを嫌う理由がよくわからん。
CTabItemに一つずつaddDisposeListenerするって手もあるけど。
>155 すいませんボケてました。 >folder.getShell.addShellListener これができることが全然わかってませんでした。
>150-151 ありがd。 やりたいことはCTRL+b とかCTRL+sとか押したときに押されてる文字キーを 全ての文字で判別したかっただけなので、SWTライブラリを差し替える方向でいきまつ。 ところでR2.1とR3.0で複数キー押下時にKeyEvent.keyCodeにはいる値が違うようでつな。 bugzillaではctrlキー押下時は仕様通り、altは他にイベント取られてるとしか 答えてないように思えるんでつが、変更されてるってことはバグだったのかな・・・?
>>144 3.0系にするの? 3.0M6だと
>>134 のbugが致命的だし今日出たM7は
どうかしらんけど、こまめにbugzillaとかnewsgroupチェックしないと
あかんよ。
>>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).
>158-159 たびたびありがd。 今作ってるのは趣味と実益を兼ねた実験ツールなんで多少のbugも無問題でつ。 あと、エディタ部分にはText系のウィジェットは使わず自前で描画しとります。
161 :
デフォルトの名無しさん :04/02/14 21:51
すいません。SWTとあんまり関係ないかもしれないのですが、 ツールバーやツリービューなどのアイコンの背景を透明にするには どのようにしたらよいのでしょうか?
>>161 PNG だとダメだったよーな気がする。(ググれば何か見つかると思われ)
GIF に変換してみたら直らないかな?
いろいろ試してみましたが、透過色設定PNGでできました。
>>161 もしよかったらでいいんだけど、
どのようにしたら出来たのかを書くか、ポインタを示してくれると
助かる。
やった方法は MS-PAINTでビットマップ作成。 shin's PNG Editerというソフトで透過色を設定 <-よくわからないができないこともある。 pngで保存して、あとはnew Image()で読み込んだだけです。
プログラム的な問題より、透過色付きPNGを作る方が面倒かも。
そんな時にLinuxでもWindowsでも使えるGIMPが役に立つ。
>>166 ありがとうございます。参考になりました。
shellがないときメッセージボックスって出せないのでしょうか?(;´Д`)
171 :
デフォルトの名無しさん :04/02/18 20:54
そこでAWTですよ。
>>170 なけりゃできない。でも
MessageBox msgBox = new MessageBox(new Shell(display));
msgBox.setMessage("test");
msgBox.open();
みたいにshellをopenしなくてもMessageBoxは開ける
わけだしなにが問題なんだろう。
>>172 Shellのdisposeを忘れないでね.
ファイナライザで自動的にdisposeしてくれないの?
してくれるけど、それはあくまでフェイルセーフなので。
ちと質問です。 StyledTextで日本語入力するとおかしなことになりませんか? なんとか日本語の処理を横取りしようといろんなListenerを使いましたが、駄目でした。 java.awt.imパッケージのInputMethodを使うのかと思いましたが、 これまた解決法がわかりません。SWTで日本語はあきらめれってことですか?
>>177 Win2k,SWT_2.1.2,Java -version 1.4.2,日本語IMEでデフォルトのままで問題なし。
環境は何ですか?
>>178 異常なしですか?こちらはWinXP、JDK1.4.2、eclipse2.1.1です。
ちなみに別マシン(Win2kで後は上記と同じ)でも同様の症状でした。
症状は半角文字や確定後の文字と、変換中の文字の大きさが違うことです。
そう言われてみれば確かにそんな症状は出てる・・・ 回避策かどうかわからないけど、StyledTextと同じShellにふつうのTextを置いて、実行 ->Textに文字入力後、StyledTextに文字入力すると普通になりましたよ。 でも原因はわからず。
そこでSwingですよ。
183 :
デフォルトの名無しさん :04/02/23 19:19
こんな例外が出るんですが、これは何なのでしょうか? org.eclipse.core.internal.runtime.AssertionFailedException: assertion failed: The application has not been initialized. スタックとレース見てもよくわからないです。
>>183 スタックトレースあるなら出せ。
オマエには理解できなくても、エロい人なら理解できるかもしれん。
スタック*と*レースを晒されてもなぁ・・・ エロイしとも困るんでは?
つまんね。
あのひと,暑苦しいよね〜って陰口ならよく叩かれるよ。
余り盛り上がってないね
191 :
デフォルトの名無しさん :04/02/28 09:35
Windows98で、TabFolderにTreeとかTableとかを登録すると終了時にエラーを吐くのってウチだけ?
SashFormの上にButtonを数個格納して、Buttonが1個になったときに SashFormを破棄して、さらに上のCompositeの上にButtonを配置したいけど、 実現方法が思いつきません。何かいい方法ありませんかね? ButtonにDisposeリスナを追加しましたが無理でした。 構造はこんな感じ。 Composite +SashForm ++Button1 ++Button2 ++Button3 Composite +SashForm ++Button1 ++Button2 ← これがdisposeされる時 Composite +Button1 ← こうなるようにしたい
>192 SashForm.setMaximizedControl(button1) はダメ?
>>193 ちょっと違うんだよね・・・
それだとButtonがSashFormを意識しないと駄目なわけで。
とりあえずこんなコードを試した。(思い出しながらなんでエラー無視)
button.addDisposeListener(new DisposeListener() {
..public void widgetDisposed(DisposeEvent e) {
....button.getParent().dispose();
..}
});
3行目でもう一度button.dispose()が呼ばれるらしくSWTException・・・
なんかいい方法ない?
>>194 Buttonが意識してるんじゃなくてListenerが
意識してるだけなんだから何の問題もないのでは?
で,そのコードについて言うと,
ボタンの親(SashForm)から下が丸ごと
dispose連鎖されるのでうまくないね.
試してないけれど,やるとすれば
Composite sash = button.getParent();
button.setParent(sash.getParent());
sash.dispose();
ってな具合では?.
setParentはウィンドウシステムによって
非対応の可能性があるので注意.
で,改めて,reparentするよりsetMaximizedControlの方が
きれいだと思うのだけれど,どうだろうね?
いずれにしても1つのウィンドウの中で
動的にボタンが増えたり減ったりするのは
ユーザビリティ的に一考の余地があるかもしれない.
>195 > Composite sash = button.getParent(); > button.setParent(sash.getParent()); > sash.dispose(); これはいい線いってるんだけど、SashFormのlayoutを呼ぶことができない・・・ Buttonがdisposeされ終わらないと後が残る or SWTException・・・ > 動的にボタンが増えたり減ったりするのは > ユーザビリティ的に一考の余地があるかもしれない. Buttonは説明用に使ってるだけで、その他のControlも使います。 その生成にはFactoryパターンを適用してまふ。 誤解させてしまってすんまそん。 今思いついたけど、Two-Phase Terminationパターン使えばいけるかな?
>>196 >これはいい線いってるんだけど、SashFormのlayoutを呼ぶことができない・・・
なんでSashFormのlayoutを呼ぶのだろう.
消したいんじゃないのだろうか.
>>197 ああ、まちがい。SashFormのParentでつ・・・
199
>>198 であれば,漏れの書いたreparentの方法が
間違ってるのかも.SWTExceptionが出るなら,
そのあたりから探ってくと何とかなるのではないかと.
しかし、あっという間に廃れたな>SWT 3ヶ月位か?
>>201 うーん。確かに最近あまり動きがないような気も…
しかし皆何を使って GUI 書いてるんだろ? Swing? (or そもそも Java 以外?)
SWT は look & feel が OS native だから個人的には結構好きなんだけど、
リソースを手動で解放しなきゃいけなかったり、
多少凝ったことしよーとすると面倒になったりするのがなぁ。
eclipseは流行ったがSWTは流行ってない
Java から ActiveX 使うのに SWT 使ってるよ。 VB/VC 使えって話もあるけどな。
205 :
デフォルトの名無しさん :04/03/22 10:37
強引にインターフェイスを乱発して、 SWT と Swing 両対応のアプリを書いた。 えらく大変な作業だった。 で、学んだことが、適当にソースをコピペしながら SWT用 と Swing用を別々に書いたほうが楽だということだった。
Compositeとかって1つずつdisposeするのと まとめてShellをdisposeするのってどっちがいんだろ? まとめてdisposeすると個々の部品がガーベージに入りにくいって聞いたんだけど… 負荷はやっぱ1つをdisposeしたほうが軽いんだろうな〜。
今殆どSWT使ってるけど、皆使ってないの? SWT.PHONETICで幸せになれたと思ったんですけど。 look & feelはSwingの方が好きなんだけど 漏れって変人でつか?
>SWT.PHONETIC 初めて聞いたなんだそりゃ?
Shell.setImeInputMode(int mode); SWT: NONE, ROMAN, DBCS, PHONETIC, NATIVE, ALPHA.
>>204 スタブ書くのがまんどくさい……
>>206 gcされにくいってのは無いと思う.
それを示してくれるようなサンプルがあったら
有益なのでぜひ見てみたい.
>>207 うちだと
NONE,ROMAN : IMEオフ
DBCS : 全角英数
PHONETIC,NATIVE : 半角カナ
ALPHA 半角英数
って感じで幸せになれない.
MSIME2002で,初期入力モードは"ひらがな"なのだけれど.
>>210 生SWTでやるなら,そう.
SWTはSwingみたいな今風のGUIツールキットを
目指したわけじゃなくて,ネイティブのGUIのラッパだから.
Swing的な今風の仕組みが使いたければJFaceをかぶせる.
もっと高級な仕組みが使いたければRCPもかぶせる.
Swingより楽よ.比較的情報少ないから身につけるまでは骨だけど.
>>211 あ、なるほど、そういうことですか。
>ネイティブのGUIのラッパ
SWTの位置づけが分かったような気がします。
JFaceだとTableViewerですか。そちらも試してみます。ありがとう。
JavaPress・・・SWTの文字に期待したのにすごい期待はずれ・・・ いいかげんJFaceの記事かいてくれないかなあ。 ソースをあさるのは疲れますた。 ところでJFaceのWizardを自作ツールで使い出したんだけど、 ダイアログの「戻る」ボタンとかが「back」になってる。 ソースも英語。Eclipse上では日本語なのに。なぜだ。誰か助けて・・・ 環境はWinXP + Eclipse2.1.3 + LanguagePack2.1.2
あれたぶんプラグインクラスローダ使ってクラスロードしないと 駄目なんじゃないかなあ。試してないからわからないけど。
( ゚д゚)Σ マジデ・・・ 仕方ない、こうなれば文字だけ変えたサブクラスを作るか。 マンドクセ
217 :
デフォルトの名無しさん :04/03/29 13:04
>>216 俺も、親があるコンポジットも全て個別に dispose してるわ。
親の DisposeListener にちまちまと組み込んでる。
どっちがいいんだろ?
M8のSWT.VIRTUALで幸せになれそうだ.
WindowsでいうところのOWNERDATA.
Treeも対応してくれないかな.
>>216 widgetは親をdisposeするとその中で全ての子のdisposeが呼ばれるのよ.
Imageとかはもちろん手動でやらないとだめで,
実際これが一番面倒だったりはするけれど.
>>217 Imageとか独自に生成してるカスタムなwidgetとかなら,
DisposeListenerでImageのdisposeするのが典型的だね.
子widgetのdisposeは書く必要ない.
219 :
デフォルトの名無しさん :04/03/30 19:13
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));
>>219 その程度のことを自分で何とかできないやつにJava使われると非常に迷惑。
少なくともこのスレで聞くようなことじゃない。
221 :
デフォルトの名無しさん :04/03/31 16:34
Widgetの親子関係を視覚的に表示してくれるライブラリないかしら (display, shell をルートにツリーをつらつらと表示してくれるようなものだといい)
styledTextで行間を大きくしたり、左側にマージンをつくったりできないのでしょうか?(;´Д`)
>223 SWTGUIBuilderみたいな感じ?
その後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; } とすることでほぼ意図した通りになった。 しかしキャンセルボタンだけはぬるぽで落ちる。何故だ・・・誰かタスケレ・・・
自己解決。 キャンセルボタンだけ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; } } プラグインクラスローダはどうやって解決したんだろ?
>>213 試してないので自信はないんだけど、plugins/org.eclipse.jface.nl1_2.1.x/nl1.jarを
plugins/org.eclipse.jface_2.1.x/jface.jarより前にクラスパスに登録したら
上手くいかない?
eclipseのディレクトリ構成を見てたら、プラグインクラスローダは
そうやっているんじゃないかなーと思ったもので。
>>226 それをやってしまうとJavaのメリットが・・・
私は228の定義により厨に分類されるためか、226の方法によって失われる 「Javaのメリット」がさっぱりわかりません。 だれか解説してくれませんか?
>>226 そうやってムキになるところが厨だと言われるのだと・・・
いや、だって気になるじゃない。 実は今まで自分がやってきた方法はいい方法ではなかった、 もっといい方法がある、なんて言われると。
つか、RCPだろ。
eclipseのヘルプ (help->help contents)のようなヘルプウインドウって なんかライブラリがあるのでしょうか?
>>226 試した結果、nl1.jarをクラスパスに登録すれば日本語になりますた。
順番は別に関係ないみたい。自作したサブクラスは削除しまつ・・・
>>227 漏れも気になります。
どこかにViewFormの使い方解説してるサイトないですか? eclipse風のかっこいいデザインのアプリを作りたいと思ったんだけど, 自力であれこれやってもeclipseのビューそっくりにならないよ・・・。 googleで検索してもヒットしない・・・。(´Д⊂
237 :
デフォルトの名無しさん :04/04/07 20:16
英語嫁
javadocだけじゃ分からないよ・・・。とりあえずViewFormのTopLeftにCLabel, TopCenterとTopRightにToolBarを配置してみたんだけど,これだけだとeclipse のビューにあるようなハイライト部分(ビューのタイトル部分の左と上に1ピクセル の細さで白いラインが入ってる)がうまくできないし,setTopCenterSeparate(true) でTopCenterに配置したToolBarを2段目に送った時に1段目と2段目の間に 区切り線が入らない・・・。 eclipseのソースコードを読めば分かるのかもしれないけど,参考になる部分が どこにあるのか分からないし・・・。
239 :
デフォルトの名無しさん :04/04/08 05:02
全部嫁
ViewFormってよく知らないけど、ボーダー設定で何とかならないのかな? SWT.BORDERとかSWT.SHADOW何タラとか
SWTでGraphics2D使えないですか? 単に半透明とか、グラデーションとかの描画をしたいだけなんですが。
244 :
z11.218-225-132.ppp.wakwak.ne.jp :04/04/20 18:57
3.0のBrowserコンポーネントにpopup menuが動作しない。 これバグ?
245 :
デフォルトの名無しさん :04/04/20 19:07
>>244 たぶん、環境が悪いと思う。
開発者と同じ環境用意すれば動くよ。
わざとだと思う。M8で確認したけど org.eclipse.swt.browser.WebSite#ShowContextMenu でデフォルトのポップアップメニューを殺してるっぽい 他のウィジェットと同じように開発者がメニュー作れってことではないかと
>>246 うーん。Browserのオブジェクトに
Menu popup = new Menu( shell, SWT.POP_UP );
browser.setMenu(popup);
MenuItem menuitem = new MenuItem( popup, SWT.NONE );
menuitem.setText( "ポップアップ" );
みたいなことをやっても機能してくれないんだよねぇ。
ほかのコンポーネントは機能してくれるのに。
248 :
デフォルトの名無しさん :04/04/29 21:21
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 ってある わからん。
>環境変数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が存在しない
250 :
デフォルトの名無しさん :04/04/30 10:02
>>249 いや、Fedora core 1 使ってて、もうそれにはMozilla1.4がソコに入ってるみたいなんだけど。
ナントカsoとかたくさんあったぞ。
>>250 じゃあ分からん。
ひょっとしたらnsIComponentRegistrar#AutoRegisterが呼ばれてないのかもしれん。
compreg.datとxpti.datが/usr/lib/mozilla-1.4.1にある?
無かったら一度Mozillaを起動してからやってみたら?
ところで状況が良く分からんのだが。
>Mozillaがインスコされてないって怒られる
って一体誰に怒られてんだ?ld?jvm?Browser?
Browserだったらソース見るとよろしい。
>250 1.6に入れ替えてみたら? 俺はそれで出来た。
>>253 >Mozillaがインスコされてないって怒られる
って一体誰に怒られてんだ?
エラーメッセージ書くのは質問者の最低限の仕事じゃないかい?
>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 ..... でアップデートできたような気がしてたが
>>255 それでやったらできた。サンスコ
それにしても、難しいな RPMパッケージ管理
え?
>>258 1 CompositeのレイアウトにFormLayoutを指定します。
2 Composite上部にLabelを並べてヘッダを作ります。
3 Composite下部にヘッダを不可視にしたTableを表示します。
2の処理次第でどんなヘッダでも作れます。
260 :
デフォルトの名無しさん :04/05/08 02:05
>>260 決め打ちになるように作れば決め打ちになるし、可変になるように作れば可変になります。
LabelとTableを集約して元々用意されているwidgets並みの汎用性があるwidgetsを作ることもできます。
SwingのJtableはJTableHeaderを通してBasicTableHeaderUIを集約しており
JTableHeaderを置き換えられるように作られているからExamples swingはそれを置き換えています。
一方SWTのTableはOSのtable widgetsにJavaの皮を被せた物でHeaderUiだけ置き換えはできず、
OSのtable widgetsの外側にTableHeaderを作る必要があります。
しかしそれは決め打ちになるかどうかには全然関係ありません。
262 :
デフォルトの名無しさん :04/05/08 12:52
つまり、大変手間がかかり、Swingのような短いサンプルコードではとても実現できないワケですよ。 MFCの方がまだマシ。
264 :
デフォルトの名無しさん :04/05/08 21:32
結論:Swing >>>>>> AWT > SWT
質問 JFace使ってもMINGW + GCJでネイティブコードに 変換して実行できるんでしょうか? JFace使うと参照するjarが増えるから ファイル容量が増加しそう・・・
>>267 3.3.1ではApplicationWindowを使うと落ちた。
SWTとは関係ないところでも落ちたけど。
サイズは忘れた。
269 :
デフォルトの名無しさん :04/05/13 20:02
Javaしか知らないのでよく知らないのですが・・ SWTつかってリークしてるかどうか調べる方法ってあるんでしょうか?
>>267 ネイティブにする価値あるほど高速化するのかしら
>>270 何にも知らないのね。
ネイティブにするのはクライアントにJREが入ってないから。
#WindowsUpdateにJREがないから
>>271 JRE ごとアプリケーションに含めて配布するって手もあるけど。
>>271 JRE付属で配布すりゃいいじゃん。
javaw.exeをフルパスで書いておけば他のJREとの競合を心配する必要もないし。
OracleやIBMがどうやってJavaアプリを配布しているのか知らんのか?
…って書いた後で思ったけど、ファイルサイズを気にしているようなので
JREを加える分のサイズの増加を避けたいということか。
J2RE-1.4.2_04のWindows用インストーラが14MB以上あることを考えると
1MB程度のファイル増加をも気にする必要がある状況では勘弁ならないなぁ。
そういう状況ならね。
>>272-273 Javaでアプリを作ると14MB以上になるわけね。なるほど。
ちょっとしたアクセサリみたいなソフトも14MBになってしまいますね。
Javaがクライアントサイドで流行らない理由がわかりました。
>274 しかし、Javaアプリを1つ増やした時の増加分は、ネイティブより遥かに 少なくて済むぞ。 ちょっとしたアクセサリなら(画像ファイルとか除けば) 数KBytesで済む。ネイティブではそうはいかん。 MacのOS-XやLinuxみたいに標準でJREが入ってる環境ではそれは 大きいんだけどな。 JREがころころバージョンアップするような状況では、そのメリットが 生きてこないから、現時点ではしょうがないんだけどね。
>>275 >ちょっとしたアクセサリなら(画像ファイルとか除けば) 数KBytesで済む。
最新バージョンで動かないなら結局JRE同梱するしかないやん。数KBytesで済むわけないやん。何言っっちゃってんの、この人は。
って、最後の2行はそういう意味か?だったらすまん。言い過ぎた。
>277 条件反射でレスすると恥書くから気を付けた方がいいよw この板の住人は、(長文のレスが多いせいか、)最後まで 読まずにそれをする人が多いみたいだな。
>>278 そういう意味かどうか聞いてるんだ。
変な講釈垂れてないで答えろや
281 :
デフォルトの名無しさん :04/05/14 21:04
>>280 答えてクン、うざい。
>>281 答えに窮するとすぐに「うざい」だの「スレ違い」だの言うのはカス
284 :
デフォルトの名無しさん :04/05/17 01:42
そういうことか・。・・
TableでTableColumnの縦サイズって指定出来ないんですかね? 横サイズはsetWidthがあるのですが縦サイズ指定メソッドが見当たらないんです。 TableEditorを使って大きめの画像を中に入れた時だけ縦サイズが変わるんですが。。。 どなたかご存知の方がいらしたらご教授下さい。
失礼しました、TableItemにImageを入れた場合のみ縦サイズが変化するでした。 よろしくお願いします。
なら透明な画像を使えばサイズが変えられるんじゃないの? 正しいやり方(そもそもできるのかどうか)は知らん。
>>290 そうなんです、それは出来たのですがそれ以外の方法でサイズは変えられないかなと。
方法が見つからなそうなのでそれでいこうかと思っています。
290 :
デフォルトの名無しさん :04/06/03 11:57
VE1.0ってRC1でできる?
>>290 VE1.0M1はM9以降のbuildでは動かない。
先月末のVEチームリーダーの話では、「M9以降に対応させるにはコードを
ちょっといじる必要があって、もちろんそのうちやるけど日時ははっきり
してない。数ヶ月ということはないけど、数週間のうちくらい?」って
ことらしい。
JFaceよくわかんねぇ
293 :
デフォルトの名無しさん :04/06/03 21:53
294 :
デフォルトの名無しさん :04/06/06 11:33
Browserウィジェットで右クリックってどうやるんですか? なんか最近有効になったらしいけど。
295 :
デフォルトの名無しさん :04/06/06 12:33
動的にTabItemを追加することは出来ないですか?
今やり直したら出来ました。 申し訳ないです。
>297は295でした。
swtのモジュールって公開されていないんですか?
自己解決しますた。
301 :
デフォルトの名無しさん :04/06/08 11:41
サンプルソース希望。
303 :
デフォルトの名無しさん :04/06/08 14:43
厳密に言うとコンポジットの動的な入れ替えになります。 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(); なにか根本的に違うような気がしないでもない...
304 :
デフォルトの名無しさん :04/06/08 16:50
>>303 それcompositeをなぜ使いたいのかとか、
shellがリサイズしたときの挙動をどうさせたいのかとか、
前提条件がよくわからん。
すいませんm(_ _)m ほんとはcompositの中にいろいろなウイジェットが入ってます。 で,リサイズしたときは期待どうりの動きをするんですが ボタンクリックやメニューでコンポジットを動的に作成すると ウインドウをリサイズするまでFormAttachmentが無視されて FormDataの値になってしまいます。
shellをlayout()すれば?
うまくいきました。 compositのlayout()ではだめなんですね。(考えたら当たり前か) サンクス。
309 :
デフォルトの名無しさん :04/06/18 09:54
jarの中にあるイメージをSWTでロードするにはどうすれば良いのでしょうか? JFaceにはImageDescriptorってのがあるようですが・・
>>309 getResourceAsStreamでInputStreamを取得して、
次にImage(Device device, InputStream stream)で
インスタンス生成が楽かな。
311 :
デフォルトの名無しさん :04/06/18 12:15
geocities鯖落ちage
312 :
デフォルトの名無しさん :04/06/18 13:49
ところでせっかくネイティブなGUIなんだから、 JREインストールもなしで動かせないものだろうか。 ファイルコピーだけで動かないかなあ・・・ アプリ配布が激しくマンドクセ・・・
>>313 ファイルサイズがでかくなっていいなら、JREごと圧縮。
>>314-315 レスありがd。普通のが来るとは思わんかった。
>>314 JREインストールを考えたら多少のサイズはおけ。
圧縮するならJRE以下全部かなあ?
/bin以下だけだと駄目なんだろうか?
配布時にはMobexeの使用を考えてる。
これのReadmeにはjvm.dllのパスを指定できるとあるから
ちょっと試してみる。
>>315 それは以前試したよ。簡単なサンプルアプリでも
JFaceが絡むと一発で死亡したり、exe同じなのにOS違うと死亡したり・・・
なんで諦めた。JETもpro以上を購入できないので断念。
配布したいアプリはJNI使ってUSBと通信してるので、
これ以上不安要素を増やしたくないのもあるしなあ。
( ´・ω・`)話題ないのね・・・ とりあえずMobexeを使う場合には/bin以下と/lib以下 両方必要だったけど、ファイルコピーだけでも動いた
>>317 スレ違いだから反応しなかったんだけどさ。
JREの配布をもくろんでいるようだけど、ライセンス上
再配布時のファイル構成に縛りがあるので、勝手に
自分で構成を判断して再配布は出来ない。一度
ライセンス条項を確認すること。
|ハ,_,ハ |´∀`';/^l |u'''^u;' | |∀ ` ミ ダレモイナイ・・・ | ⊂ :, モサモサ スルナラ イマノウチ | ミ | 彡 | ,:' |''~''''∪ l^丶 もさもさ | '゙''"'''゙ y-―, ミ ´ ∀ ` ,:' (丶 (丶 ミ (( ミ ;': ハ,_,ハ ;: ミ ';´∀`';, `:; ,:' c c.ミ U"゙'''~"^'丶) u''゙"J /^l ,―-y'"'~"゙´ | もさもさ ヽ ´ ∀ ` ゙': ミ .,/) 、/) ゙, "' ´''ミ ハ,_,ハ (( ミ ;:' ,:' ´∀`'; '; 彡 :: っ ,っ (/~"゙''´~"U ι''"゙''u
>>323 何ができるかは書いてあるけど、何に使うかは書いてないね。
ライブラリの紹介なんだから当然。 何に使うか、を思いつかない香具師には無縁。
>>325 そういう話じゃないだろ。
「何に使うの」っていう質問に対してリンクをはって、質問に答えてないといわれて開き直っただけに見える。
同一人物と思われてる?
>>327 別に思ってないけど。
それにライブラリの紹介だからそのライブラリを何に使うのか書いてなくて当然というのもおかしい。
同じ機能のライブラリ(Swing)とどう使い分けるのか、というのは有益な情報だし。
>>328 それだと「どう使い分けるのか」であって「何に使うか」の答えになってないね。
>「何に使うの」 アプリ開発、実行につかうの
ところでSWT3.0からtableは仮想テーブルがサポートされるそうだけど、 そもそも仮想テーブルが何なのかよくわからんのであまりうれしくない。 これで何がうれしくなるのか、情報きぼん。
メニューを複数用意できたりする
>>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を盲信してはならない」だから詳細
はどうでもいいんだろうけど。
>>332 いままでは全てメモリ上に読み込んでいたので、多量のデータの読込みは
別スレッドにしても遅かった。
仮想テーブルではある一定量をメモリ上にロードして処理するので速くなる。
API 的には普通のテーブルとほとんど変わらないのでウマー
Σ(゚д゚lll)
1年前と全然普及度が変わっていない…駄目だこりゃ。
C++ でboost が普及するころになれば、SWTも普及しているはず。
>>338 JDK1.2で登場したswingですら普及しているとは言いがたいので
1年くらいじゃ普及度が変わらないのは仕方がないのでは?
Swingと比較してもなぁ。 結論:Javaのクライアントは普及しない。
342 :
デフォルトの名無しさん :04/06/27 16:10
MobTaskTrayを使いたいのだが、サイトが落ちてて拾えない…orz 誰か持ってる人どっかにうぷしてくれませんでしょうか?
>>342 それってWindowsでタスクトレイ使えるようにするやつだっけ?
SWT3.0なら必要ない気がする。
>>343 詳しく、話を聞こうぢゃないか!
OS 固有のタスクトレイにどうアクセスするのかを
>>345 ありがとう!
ところで、Eclipse 3.0 の正式リリースが25日だったね。
ミラーサイトでもまだ載ってないのがあるな。
Langパックってのが消えている。ってまだまだなのか?
って、今作ってる SWT アプリもそろそろ移行時かもしれん。
>>342-345 さんくす。
MobTaskTray使わなくても実現できるのか。。。
まだ
>>345 のリンク先詳しく見てないけど、ちゃんと見てみる。
んー。ウィンドウを最小化したらタスクトレイと ウィンドウ最小化バー??(正式な言い方わかんない。。。) 両方でるのか。。。 タスクトレイだけにしまう方法ないのかなぁ。。。
>>349 おおー。なんかそれっぽいライブラリだ。ありがと。
jfaceのアプリケーションウィンドウを最小化時はタスクトレイアイコン化
したいのだけど、これでできるのかな?
できればいいのだが。
とりあえずドキュメントとか見て調べてみる。
さんくす。
やべ、微妙な日本語になってる… それはともかくすでに使われてたアプリができてたから タスクトレイアイコン化は多分大丈夫。
最小化したときにタスクバーに出したくないってのと、 タスクトレイを使うってのは別の要素だよね。 タスクトレイを使うのにどの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); } }); でしておけばいいと思うんだけどな。
俺も微妙な日本語になってるな。ようするに、タスクトレイと 最小化の話はそれぞれ分けて考えようってこと。
>>342 jfaceのApplicationWindowを継承したアプリなんだけど
最小化されたときにShellとってその処理かましても
なぜかバーから消えてくれないんだよね(TдT)
>>349 のAPIも最小化では消えないけど×ボタンで
タスクトレイに常駐してくれるみたいなので
最小化で消えるのはあきらめてそれにしようかなと。
ただどうやってjfaceと絡めるんだこれ。
俺あほだな。よくわからん...orz
>>352 ごめん。大嘘だ(´Д⊂
ちゃんとバーが消えてくれました。
リスナー登録し忘れてました。
もー本当にすいません。
で、タスクトレイと最小化は分けて考えようって助言ありがとです。
激しく参考になりました。
>>349 さん
>>352 さん
まじで(TдT) アリガトウ
357 :
デフォルトの名無しさん :04/06/28 18:05
Shift + F2 で,SWT APIのリファレンスのみが表示されないんですが。 「親JARのプロパティページにJavadocロケーションURLを指定してください」 って言われるんですけど親JARのプロパティページってどこにあるんでつか?
パッケージエクスプローラのswt.jarを右クリックして プロパティを開いてそこでヘルプを指定。
うげっまちがえた...orz
>>358 さんありがd
あの,SWTでベジエ曲線とか自由な曲線は描けないんですか? GCにはそれっぽいメソッドがないですね。ちょっと気になったんで。
>>361 Draw2Dにはあったような気がする。
363 :
デフォルトの名無しさん :04/07/01 00:32
JFace初めてつかってみたらこんなエラーが出ました。 java.lang.NoClassDefFoundError: org/eclipse/core/internal/boot/DelegatingURLClassLoader どのファイルにクラスパスを通せばいいのでしょうか。
364 :
デフォルトの名無しさん :04/07/01 01:37
モーダルダイアログ(コモンダイアログでない)を作りたいのだけど 参考になるサンプルとかってどこかにない?
Shellのコンストラクタを調べてみろ。
>>363 org.eclipse.core.runtime
/eclipse/plugins/org.eclipse.core.runtime_2.1.1/runtime.jar をクラスパスに追加したのですがだめです。他に原因が考えられますか?
>>364 dlgShell = new Shell(shell, SWT.DIALOG_TRIM)
あ、あと
>>368 のなかのorg.eclipse.runtimeっての前試したときは
org.eclipse.core.bootの間違いだった気がする。
>>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
372 :
366は363の間違い :04/07/01 12:11
>>370 org.eclipse.core.boot を追加すればうまくいきました。
>>371 ソフトウェア研究室に書いてあるように,どうもEclipse 2.1.2の環境と,
以前のEclipseの場合必要になるjarが少し違うらしいです。
ちなみにうちは2.1.3です。
サンクスです。
373 :
デフォルトの名無しさん :04/07/01 22:32
JFaceのツールバーで透過pngを使う方法ってないですかね?
375 :
デフォルトの名無しさん :04/07/06 18:10
age
>>374 透過のさせ方にもよるけど,SWTから呼び出されるOSネイティブのウィジェット自体の
透過色サポートの度合いの影響を受けるから,必ず透過するとは限らない。
とりあえず半透明色(というかアルファチャンネル)を使ってない,完全な透明色の部分
だけがあるタイプの画像ならどれでも大丈夫だと思う。透過PNG自体をGIFみたいな感じの
指定色を透明にするタイプの形式で保存しておけばいいんじゃないかな。
半透明色を使ったPNG画像でも,CLabelとかCTabFolderとか,Canvasの上に直接描画
するカスタムウィジェットに対して使用するのであれば問題ないけど。
378 :
デフォルトの名無しさん :04/07/07 01:30
>>376 >>377 レスありがとうございます。
377さんの言うとおり一度背景を塗りなおして透過色を指定して保存したんですがダメです。塗り潰した色が出てしまいます。
他に原因があるんでしょうか?
OSはXPでエクリプスのバージョンは2.1.3です。
>>378 たぶん保存したPNGの形式に問題があるのだと思うけど・・・。
ttp://www.mikeneko.ne.jp/~lab/grp/png/p3.html PNG画像で背景を透明にするには2種類の方法があるけど,ファイルから直接Imageとして
読み込んでWindowsのツールバー上で背景が透明になるのは透明色を指定する方。
俺はフルカラーのPNGでは試したこと無いけど,256色のPNGで特定の色を透明色に指定して
保存した画像ファイルの場合は,普通にファイルから読み込んで作ったImageのインスタンス
をツールバーにセットすれば背景は透明になった。
まあ,透明色情報を含んでないPNG画像でも後からマスク画像使って不透明部分だけ
切り抜いたImageを作れば大丈夫とは思うけど,それはめんどくさいし・・・。
380 :
デフォルトの名無しさん :04/07/07 02:57
382 :
デフォルトの名無しさん :04/07/07 23:36
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 でも同じ動作をする。 ご存じの方がいらっしゃったらご教授を賜りたい。
tableの高さを設定したいのですが、table.setSize(400,400)しても変化がなさそうにみえます。 どうしたら設定できるのでしょうか。 幅はTableColumnのsetWidthで変えられるからいいんですけど。
TEST
getResourceAsStreamでInputStreamを取得して Image(Device device, InputStream stream)でインスタンスを 生成したんだけどもjarファイルにしたら「んなファイルはない」と 言われてしまった。ナゼだ…?
>>386 開発環境はeclipse? eclipseのプロジェクトはソースフォルダと
バイナリ(*.class)を出力するフォルダと実行時フォルダが別にできる
ので初心者が間違えやすいし、聞かれても当てはまるパターンが多くて答えにくい。
原則は「リソースはすべてソースフォルダに入れる。classファイルがある
フォルダには入れない」こと。
これで解決できないなら、プロジェクトとパッケージの階層構成、
getResourceAsStreamにどういう引数を与えているか、できれば
.classpathファイルの内容も合わせて質問しなおすことをすすめるよ。
あともしプラグイン作ってるなら別の作法もあるからそう書いたほうがいい。
また非常に初歩的なとこだけど、本当にjarファイルに目的のファイルが
入っているかjarコマンドで確認したほうがいい。↑の原則を理解せずにexport機能
使ってjarファイルを作ってしまい、リソースが抜けるパターンがあるから。
>>384 |table.setSize(400,400)しても変化がなさそうにみえます。
これを読むとテーブル自体の高さを変えたいように読めるが、
|幅はTableColumnのsetWidthで変えられるからいいんですけど。
これをよむとテーブル内の各行の高さを変えたいように読める。
どっち?
>>388 まぎらわしくてすみません。やりたいことは、テーブル自体の大きさの
変更です。
方法がよくわからなので、幅に関しては後者の方法で代用してしまって
います。
よろしくお願いします。
ついでながら、テーブルを横幅・縦幅いっぱいに設定する方法と、再
描画する方法も教えていただけると助かります。色々試してみたけど
うまくできなかったもので。
>>390 ダウンロードページの「eclipse-examples-x.x-win32.zip」(x.xはバージョン)
というファイルの中に入っているよ。
これはプラグインなので、Eclipseにインストールして使える。
>>391 ありがとうございます。
まずは自分の持ってるeclipseSDKのダウンロードページを選択して、
そのページにあるexamplesをダウンロード、という流れだったのですね。
eclipse本体はオンラインダウンロードしたのではなく
書籍付属CD-ROMから入れたので、解りませんでした。
384です。自己解決しました。 最初にRowLayoutを貼ってしまったので、後でGridLayoutでFILL_BOTHしても 効かなかったようです。最初のレイアウトをGridLayoutにしたらうまくいきました。 tableのリフレッシュはStructuredViewerrを使える状況ならrefresh()すればいい と思うのですが、今回は使えなかったので、tableをremoveAll()して、中身を 作り直すことでなんとかしました。もっとましな方法があったら教えてください。
>>393 普通にTableItemにsetTextをやり直せば表示も更新されるだろ?
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 です。
そういう場合って Text(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL)とかやるんじゃないの?
parent をスクロールさせたいのです。 どうしたらスクロールさせられるのでしょうか。
>>394 ああ、普通はそうやればいいのですね。
今回は行と列が増減するタイプの表でしたので、あんな処理になりました。
>397 ScrolledCompositeに直接Textを乗せるんじゃなくて、 Compositeを乗せてそこにTextを乗せては?
SWTに、HTMLエディタコンポーネントみたいなものってある? Swingだとあるよね?
>>399 Composite を間に入れてもだめでした。
Text を選択しなければ parent の Wheelスクロールはするのですが。
いったん選択するとだめですね。
仕様にもよると思うけど必要なタイミングでparentにフォーカスを当てるってのは? Textからフォーカスがロストした時とか。。。力技になっちゃうけど。
SWT.V_SCROLLをつけた複数行Textで、テキストが挿入される度に自動的にスクロールを 一番下へ持っていくにはどうすればよいのでしょうか?
>>403 ModifyListenerで文字列の入力を検出して,その時に何行あるか調べてsetTopIndex
すればとりあえずはいいんじゃない? スタイルビットにSWT.WRAPが入ってるときに
どうなるかは知らないけど。
text.setTopIndex(text.getLineCount()); こんな感じで解決できました。 WRAPにも対応できたみたいです。 ありがとうございました。
406 :
デフォルトの名無しさん :04/07/23 13:50
SWTで作成したプロジェクトをjava web startで配信した事のある先生に質問です。 swt-win32-2136.dllを含めて配布する時に、パスが通らなくて悩んでいます。 .jnlpにはnativelibで指定しています。 クライアントに個人でswt-win32-2136.dllを入れておかないと駄目なのかな? そんなわけないと思うんですけど・・・。
>>407 どうもです。
実は自分もここ見ながらやりました。
でも・・・できなかったんですよ。
C:\Documents and Settings\namae\Application Data\Sun\Java\Deployment\javaws\cacheの更に下のほうに
swt-win32-2136.dllは配信できてます。
でもswt-win32-2136.dllが見つからないって怒られます。
jfaceのApplicationWindowを使った場合 リサイズを不可にする方法ってあるんですか?
俺はJFaceは使ってないけど,APIリファレンス見た感じではsetShellStyle(int)で指定 するんじゃない? javadocの記述を見るとShellのインスタンスが作成されるのはopen() が呼ばれたときで,それまでにsetShellStyle()しておけばそのスタイルを使う・・・, みたいに読めるが。 まあ,俺はJFace使ってないから試したこと無いんだけどね・・・。
>>410 コンストラクタの部分でsuper(null)の後にsetShellStyleを記述したら
できました。APIリファレンス見てたのに見逃してました。
ありがとうございます。
RemoteAWTってなんだったの?
SWTでちょっとした画像ビューアみたいなのを作ってみたんだけど,画像ファイルを展開する 時に問題が・・・。SWTで普通にファイルから画像を読み込むと,まずImageDataとしてロード して,その後ImageDataからImageに変換するっていう流れになるけど,サイズの大きなJPEG 画像(縦横3000pixelぐらい)を読み込むと,どうもImageDataの大きさが160MBぐらいある らしくってOutOfMemoryErrorが出てしまう・・・。一度ImageにしてしまえばJavaヒープはほとんど 消費しないんだけど,その前段階が・・・。Javaヒープの最大サイズを196MBとかにして起動すれば とりあえず動作はするんだけど,ImageDataを捨てた後はそのうち数MBしか使ってないという・・・。何かいい方法はないかな?
あ,BufferedImageとして読み込んでAWTのCanvasに描画すれば画像展開時のメモリ消費は 半分以下ですむなあ・・・。でも,そのためだけにSWT_AWT使うのってなんか情けない・・・。 描画もSWTのCanvasとImageの方が速いし・・・。
そこでSwingですよ。
参考になる +1
参考にはなるが、結局ImageDataに展開しているから解決策にはならない +1 ところで、単なるviewerならBufferedImageに全部展開してそのあと いくつかに領域を区切って一個ずつImageData生成->Image生成->ImageData破棄 ってやればメモリを節約しつつ分割したImageを手にできるでしょ。 それを並べたcanvasにそれぞれ貼り付けたら? そのデータをまた 画像処理するとかだと面倒な話になるけどviewerならこれでも可だと思う。
実は
>>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;
}
名前欄にレス番号入れ忘れた・・・。
無茶苦茶な方法だけど,多少速く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は何?
Workplace Client Technology, Micro Edition 5.7が出た。 まあ中身はWebsphereStudioDeviceDeveloper5.7+ライブラリ なんだけど、このバージョンから(e)SWTによるクライアントアプリの 開発が正式にサポートされた。これまではSWTはサポート外で クライアントはあくまでもAWT/Swing or ブラウザで作ってねって ことだったんだけどね。
424 :
デフォルトの名無しさん :04/08/07 23:03
SwingにNativeっていうL&FができるらしいけどこれってSWTみたいなものなのかな?
昔からあるシステムLaFのことじゃないの?
Nativeに合わせて自動選択してくれるとか。
427 :
デフォルトの名無しさん :04/08/08 01:00
独自描画なのは変わらなくて Win98ならWin98っぽいSwingのL&Fを選んでくれて WinXPならWinXPっぽいSwingのL&Fを選んでくれるだけってこと? なんか大々的にアピールしてたからもっとドラスティックな変更なのかと思った。
大々的にアピールしてた?
429 :
デフォルトの名無しさん :04/08/08 01:52
>>429 すでに備えている仕組みを使って実現するって書いてあるのにどうして
Swingが独自描画じゃなくなるだなんていう勘違いをしたんだ?
431 :
デフォルトの名無しさん :04/08/08 01:59
OSネイティブっていう名称から。
Javaが選択したOSっぽいL&Fの描画をするんじゃなくて、 OSの命令を使って描画するんでしょ? だからSWTみたいなのでいいと思うよ。 Swingの切り替える選択肢の中にSWTがあるみたいな感じ。
軽量コンポーネントじゃないな。
434 :
デフォルトの名無しさん :04/08/08 02:18
嘘、大げさ、紛らわしい。
しかし、いまだに公式サイトに情報がないし、大々的というかなぁ。
それっていわゆるAWT
437 :
デフォルトの名無しさん :04/08/08 09:44
SwingがSWTみたいなのを内包してくれればSWTをあえて使う必要がなくなって大歓迎なんだけど
438 :
デフォルトの名無しさん :04/08/08 10:12
AWTで出来ないのはJTableとかだけ?タブとかリッチエディットとかも出来ないよね?その辺りの部品がAWTにもあれば あとWebページでもそうなんだけどUTF-8の文字コードで作ったページってウインドウズのIEでみるとなんか文字フォントがおかしいんだよなぁ
AWTに入れるには、全てのOSでサポートしてくれないと。
440 :
デフォルトの名無しさん :04/08/09 00:49
>>433 軽量コンポーネントじゃないけど、
動作は軽量コンポーネントより軽いw
まあOSの機能を使うんだから確実に軽くなるだろうな。 でなきゃ今更そんな機能付け加えないって。
しかし、LaF切り替えるだけで速くなるなら、これほど嬉しいことはないね。
もっと早くこの機能を実現していたらよかったのに。
時間がかかるからやりたくなかったんじゃないの? SWTで尻に火がついた、と。
結果的に回り道になってしまったね。 これでSUNはずいぶんと損をしたに違いない。
いや、時間的には一番効率がよかったと思うぞ。 ・とりあえずネイティブの機能を使ってしょぼいけどGUI機能を実装 →これで、GUIのない処理系になることは避けられた ・高機能のGUIをJavaで記述 →機能が低いという不満を解消。Javaで記述したので効率よく開発できた ・コードの効率化で高速化 →遅いけど使えるようになった ・ネイティブの機能を活かして実装 →ほんとに使えるようになる/なればいいなぁ こうやって、「まず動くこと」が実現されてきたわけだ。 1年後の高機能GUIより、いましょぼいGUI 1年後の速いGUIより、いま遅いGUI という要求が大きかったから。
そういやそうだ。 しかし、時間かけてGUI作って空白期間を作ることに比べれば損はしてないはず。 っていうか、SunってJavaで得してるの?
450 :
デフォルトの名無しさん :04/08/09 22:45
swt-win32-2135.dllへのライブラリパスが何指定しても通んない…
仕方ないからjava.exeと同じとこに置いて使ってます
>>406 とかとおんなじ原因な気がするけど、なにが悪いのかわからんよう
>>450 System#loadLibrary使ってるとしたら
Windowsのdllの検索は
EXEと同じところ、
System32、
パスが通ってるところ
(他にもあるかな?)
の順番です(順番ちがってたらごめん)
dllはどこに配置されてますか?
条件に応じてTableItemの表示/非表示を切り替えるには どうしたらいいでしょうか。 それっぽいメソッドが見つけられないので removeして再作成するしかないのかと思っているところです。
>>452 java.library.pathの指定は?
455 :
デフォルトの名無しさん :04/08/22 00:16
swtでラベルとボタンを横に並べたのですが、 ラベルの文字とボタンとが上揃えになります。 これを中央揃えにする方法はありますか。
>>455 それぞれのコンポーネントにLayoutDataを設定する。
457 :
デフォルトの名無しさん :04/08/22 01:24
>>456 早速ありがとうございます。
LayoutData調べたのですが、指定方法がわからなかったので、
GridLayoutを使って解決しました。
(GridLayoutを使う場合、特に何も指定しなくても中央に揃ってくれました。)
GridLayoutを使うのはスマートではない気がしますので、
よろしければ、LayoutDataでのやり方を教えていただけませんでしょうか。
>>454 その値出力してみたけど
d:\j2sdk1.4.1_07\bin;.;C:\WINNT\system32;以下パス通ってる所色々
だったよ
(452では「カレントディレクトリ」が抜けてますね。)
SWTのDLLがある場所をこのプロパティに追加したらOKなのかね?
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。
>>460 なにをやりたいのかよくわからん。
あたりまえだよね、それ。
dllのフルパスわかってるなら普通はわざわざロードするとき
そんなことする必要ないしjava.library.pathの
動作テストしているつもりなのかな。。
そろそろJNIスレか初心者スレネタだな。
Java wiz SWT見れないけどなにこれ?サーバの調子が悪いだけ? このサイトのトップページ見ようとしたらパスワード要求されたんだけど・・・
>>464 いや、だからさ、VM起動してからパス指定してどうすんねんってこと。
java.library.pathはjavaの起動オプションで-Djava.library.path=hogehoge
という感じで使う。
>>459 のリンク先にもそう書いてあるでしょ。
466 :
デフォルトの名無しさん :04/08/28 04:26
467 :
デフォルトの名無しさん :04/08/31 11:38
質問です。既出だったらごめんなさい。 まず、似たような機能を持つメインクラスとサブクラスがあります。 それを組み合わせたものを作成したいのです。 メインクラスのボタンを押したときのイベントで別のサブクラスを開くという 処理をしたいのですが、SWTExceptionが返ってきてしまいます。 public static void main(String[] args)の中で同じことをすると メインクラス終了時にきちんと開かれるんですが。
>>467 それだけの情報じゃよくわかりません。
現象を再現する最小限のコードとまではいわないけど
スタックトレースくらいは欲しい。
いりーがるすれっどあくせすかなつー気もするけど。
>>467 イベントの処理全般で、RuntimeExceptionが発生するとそうなる。
まずは、ボタン押下イベント内部の処理を try { } catch (Throwable t) { } で囲んでログでも出して見れ。
既出だったら申し訳ございません。 テーブルを以下のように正方形に4つ配置して、 【1】【2】 【3】【4】 4のテーブルだけスクロールバーが縦横ともに設置。 横スクロールバーを動かすと2,4テーブルのデータが連動して内部スクロール 縦スクロールバーを動かすと3,4テーブルのデータが連動して内部スクロール ということって出来るんですかね? (縦横に複数列ヘッダが必要で1画面で見ていたVBのコンバージョンを要求された) スライダー使って左上セルの座標を設定すればいいとか思ってテストしてるけど、 TableクラスのAPI見てもなさそうだしなぁ。 ていうか、SWTを採用するシステムに、「VBと見た目が同じだから」とかいう 理由で決定されたことってありません?
質問だけだと申し訳ないので超遅レス
>>408 そのdllをjarコマンド使ってjarファイルにしましょう。
んで、JNLPファイルに
<nativelib href="(dllが入っているjarファイルパス)"/>
追加。
これで動くと思いますが。
途中で書き込んでしまいました…。 どんなパスの仕方はしているか分かりませんが、全部のjarファイルに同じ署名をしてますよね? 時々正しい状態でも他のプログラムを入れ替えるとダウンロードに失敗したり動作しなかったりします。 一度削除して署名し直して実行したりしてみてはどうでしょうか。 では。
>>474 このライブラリ使ってヘッダ表示が出来ました。ありがとうございます。
ここからダウンロードできるjarファイルを解凍すればそのもののサンプルが入ってました。
次の課題はセルの結合。標準のメソッドには無いみたいだし、さてどうしようか…。
>>474 よさげなライブラリですね。こいつのライブラリの存在を知らず
サポート対象外覚悟でSPREAD(GrapeCity)のActiveXコントロールを使っています。
しかし、コントロールをマウスクリックすると、サクっと消えたり
タブでフォーカスをセットしたりはずしたりを繰り返すと復活したりと
少し挙動不審で悩んでいます。
OleControlSiteをWM_PAINTしたときに消えているようなのですが。。
478 :
デフォルトの名無しさん :04/10/05 16:59:35
SourceViewerの構文強調について質問させてください。
HTMLエディタを作っているのですが
<body>から</body>に囲まれた間だけ
<div>などのタグを強調表示したいのですが
デフォルトの領域以外の特定の領域に
ルールを適応する方法が分かりません。
デフォルトの領域からの強調表示は
http://www13.plala.or.jp/observe/index.html を参考に作りました。
お願いいたします。
そこでSwingですよ。
非矩形ウィンドウにするのって、 org.eclipse.jface.window.Window.setShellStyle(SWT.DRAW_TRANSPARENT); で合ってる?
481 :
デフォルトの名無しさん :04/10/08 19:48:26
Tableのヘッダを2行設定する方法ってある?
482 :
デフォルトの名無しさん :04/10/08 20:04:39
Tableに縦スクロールを設定する方法って???
Tableを反転させる権限を設定する方法教えてくれ。
484 :
デフォルトの名無しさん :04/10/08 21:25:06
>483 「反転」っていうのは Table.setBackground(Color) Table.setForeground(Color) でできると思うけど 「反転させる権限」って 意味がよくわかりまへん。
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秒かかりました。
自己解決しました。StyleRangeの管理をStyledTextに任せず、 独自にArrayList使って管理することで軽くなりました。 つまりこうです。StyledTextを持つクラスのインスタンス変数にArrayListを持たせて、 新しいStyleRangeを作成した時は、先にArrayListにセットするようにします。 StyledTextへの適用は、setStyleRange(StyleRange)ではなく setStyleRanges(StyleRange[])を使い、ArrayListをtoArray()したものをStyledTextに 渡すようにしました。 StyleRangeの管理をStyledTextに任せていたプログラムに対してプロファイル取ったら、 StyleLayout$StyleItem[]が、適用したStyleRangeの20倍以上生成されていてびっくり。 どうなってるんでしょう? ってSWTのソース見れば分かりますねそうですね。
そう…よかったわね…。
>>488 SWTとは全く無関係のIEを弄っているときに
同様の現象に遭遇したことある。
たぶんXP。
monalipse の作者の人?
>>490 >結論としては,最初にダミーのPUSHなToolItemを入れて,
>残りのアイテムを作った後に最初のダミーを破棄すればOK,みたい.
詳細な解説ありがとう。
うまい回避策作ったね。
俺もその方法使わせてもらうよ。
あ、ここはひょっとしてSWTの話オンリーなスレですか。失礼しました。
タスクトレイに常駐するSWTアプリをJWSから使いたいのですがタスクトレイ用アイコンをど のように設置したらいいのかわかりません。 どなたかタスクトレイに常駐するSWTアプリをJWSで使っている方いらっしゃいませんか? ちなみにソースコードの中では image1 = new Image(display, "icon.ico"); こんなふうにリソースを取ってきています。
498 :
496 :04/11/04 18:33:05
>>497 タスクトレイに常駐するSWTアプリは既にあるのですが、それを”JWSで”公開したいのです。
しかし、ふつうにicon.icoというファイルをjnlpファイルのnativelibタグに含めるだけでは動かな
かったもので。。。_| ̄|○
>>498 そゆことか…… じゃあスレ違い.SWT全然関係ないじゃない.
.icoはjarに入れて,アプリ側ではjarから(クラスパスから)ロードする.
image1 = new Image(display, getClass().getResourceAsStream("icon.ico"));
>>499 スレ違いで申し訳ないm(_ _)m
アリガトウゴザイマス
Shell( d, SWT.ON_TOP) の挙動が、 Ver 2.1.3 から 3.0 に移ったときに変わってしまい 非常に困っていたのだが、 Eclipse 3.1M3 に移行したら 2.1.3 時代の正しい挙動に戻った。助かった。 ソースを書き直そうと諦めていたのだけど 書き直さなくて良かった。
ダブルバッファをしたつもりだけど、まだちらつく。 まだ工夫したりないんだろうか。誰かお助け。 ↓背景画像の上に、マウスのある座標に赤い点線で四角を描く //ダブルバッファイメージ作成 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();
>>502 CanvasのスタイルビットにSWT.NO_BACKGROUNDとかは入れてる?
ダブルバッファリングしてるのにちらつくというのでまず思いつくのは
自動的に行われる背景の塗りつぶしを無効化してないというものだけど・・・。
あと,背景を全て特定の画像で塗りつぶしてしまうのであれば,
ダブルバッファリングしなくてもSWT.NO_BACKGROUNDだけでもいけるかも。
同じ領域を2度以上塗りつぶす処理が入るのであればダブルバッファリング
した方がいいとは思うけど。
MobExeがダウンロードできないんだが、本家以外に配布してるところない?
JSmoothって、VM環境とかもパックしてくれるのかな? それとも、JSmoothでこさえたexeの稼動は、JVMがインスコされている 環境が前提なんでしょうか? (JVMがインスコされていない環境へ、JSmoothで作成したexeの導入が可能かどうか)
>>507 俺は実は自分でJSmoothを使ったことがあるわけではないんだが,
少なくともJSmooth公式サイトに書かれている説明によれば,
JSmoothが生成してくれるJavaアプリ起動用exeは環境変数やレジストリ
を検索してJavaVMを探し出してJavaアプリを起動する。
JavaVMを発見できなかった場合や,JavaVMのバージョンがそのJavaアプリの
実行に必要なバージョンよりも古かった場合などにはJavaVMをダウンロード
してくるように促すメッセージを表示してダウンロードサイトへ誘導するらしい。
509 :
デフォルトの名無しさん :04/11/27 22:53:46
a
510 :
デフォルトの名無しさん :04/11/28 00:11:32
SashFormの区切り線を動かしたときのイベント受け取るには どうしたらいいのでしょうか? addControlListenerでは飛んできません。
>>510 SashFormが直接提供している機能の中にはそういうのは無いと思うなあ・・・。
getChildren()でSashForm上に配置されているControlを取得し,その中から
Sashだけ選んでListenerをセットするとかしないとだめかも。
もしくはSashFormを使わずにCompositeとSashでSashFormみたいなクラスを
自作する・・・。
区切り線を動かすとPaintEventが発生するだろうから PaintListenerで何とかできないか?
514 :
507 :04/11/29 13:55:04
>>508 情報クスコ!お礼が遅くなりますた。
なるほどね、そういう製品なのね。自分でもチェケラッチョしてみます。
515 :
デフォルトの名無しさん :04/12/06 22:09:26
SWT イイネー カスタムウィジェットのCTabFolderがお気に入り。 チェックボックスが無い!と思ったらButtonで指定するとは。。 で、質問。 GridLayoutでちょっと凝ったレイアウトしようとすると 個々のコントロールのGridDataって共有できないの? ちょっと右に寄せるだけなのにーとか思いつつ しこしこnew GridData()やってます。
516 :
デフォルトの名無しさん :04/12/06 22:16:14
SWT イイネー カスタムウィジェットのCTabFolderがお気に入り。 チェックボックスが無い!と思ったらButtonで指定するとは。。 で、質問。 GridLayoutでちょっと凝ったレイアウトしようとすると 個々のコントロールのGridDataって共有できないの? ちょっと右に寄せるだけなのにーとか思いつつ しこしこnew GridData()やってます。
SWT イイネー カスタムウィジェットのCTabFolderがお気に入り。 チェックボックスが無い!と思ったらButtonで指定するとは。。 で、質問。 GridLayoutでちょっと凝ったレイアウトしようとすると 個々のコントロールのGridDataって共有できないの? ちょっと右に寄せるだけなのにーとか思いつつ しこしこnew GridData()やってます。
SWT イイネー カスタムウィジェットのCTabFolderがお気に入り。 チェックボックスが無い!と思ったらButtonで指定するとは。。 で、質問。 GridLayoutでちょっと凝ったレイアウトしようとすると 個々のコントロールのGridDataって共有できないの? ちょっと右に寄せるだけなのにーとか思いつつ しこしこnew GridData()やってます。
519 :
デフォルトの名無しさん :04/12/08 20:47:34
仮にSWTでフォトレタッチソフト作ったらどうなるのかな 動作速度はどんなに工夫しても、実用レベルには到達できないのかな いや、でも今時のパソコンのリソースを使えば、どうってことなさそうな気もするけど。 誰か画像処理に詳しい人、意見求む。
仕事で使うちょっとしたフィルタソフトなら、SWTつーか、 eclipseのプラグインとして作って使ってる。Xeon2.8GHzの デュアル構成 + メモリ1GBでJIS-SCIDのデータを処理してる けど、速度で困ったことはないな。ただSWTになれていないころは、 Imageなどのリソース開放を忘れるときがあってよくメモリ不足になってた。 Sleak使い始めてからメモリリークに悩まされることはなくなったけど。
ほー、Sleak なんてのがあるのか。知らんかった。
522 :
デフォルトの名無しさん :04/12/19 01:42:01
523 :
デフォルトの名無しさん :04/12/31 20:15:13
SWTで、複数画面(shell)のアプリケーションを作るには、どのように したらよいのでしょうか? [ログイン画面]→[一覧画面]→[詳細画面]→[登録画面]→[検索画面] というように、別shellを開いたら、新しいshellがオーナーとなり、 呼んだshellは非表示となり、常に一つのオーナーshellしか表示されて いないようにしたいのですが、SWTでのやり方が分りません。 vs2005のC#とかだと、Ownerというメソッドがあって、それを子Formに 設定してやると、子がOwnerになるという事が出来たので、 SWTでも同じ事をやりたいのですが、メソッド等が分りません。 もしも、分かる方がおりましたら、ご教授の程、宜しくお願い致します。
524 :
デフォルトの名無しさん :04/12/31 21:23:58
なんだマルチか。答えるんじゃなかったな。
526 :
デフォルトの名無しさん :05/01/02 17:26:06
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のコンストラクタに投げて描画。 非常に非効率な気がする。もっとスマートな方法ない?
>>526 GC gc = new GC(img);
gc.setForeground(...);
gc.drawPoint(e.x, e.y);
gc.dispose();
必要ならGCは使いまわす.
それより,効率が気になるならredrawの領域はちゃんと必要最小限に汁.
528 :
デフォルトの名無しさん :05/01/02 18:33:20
SWTてIME制御できます? データベースで使いたいのですが。 VBと同等のことが簡単にできますか? すこし面倒な気がするのですが
>>527 よく考えたらGCでできるんじゃん。変な苦労をしてた。
ありがと
>>528 Shell#SetImeInputMode() で満足?
531 :
デフォルトの名無しさん :05/01/09 02:36:29
ぬるぽ
敢えてスルー
/ 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 \ \: ト--^^^^^┤ / /
534 :
デフォルトの名無しさん :05/01/29 03:17:37
タマネギage
すみません、教えてください。 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)
536 :
デフォルトの名無しさん :05/01/30 19:24:23
>>535 swt-pi.jarがクラスの検索範囲に足りない。つーかSWT FAQ参照。
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
>>538 そのへんのファイルは全部いじっちゃ駄目。
基本的にプラグインシステムだから、自分で新たに
プラグイン作って差し込んでいく。eclipse.orgや
developerWorksにVE拡張のドキュメントあるから
一読しておけば?
540 :
デフォルトの名無しさん :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
541 :
デフォルトの名無しさん :05/02/07 15:39:16
SWTのソフトはネイティブ並みでつか? フリーソフトがあれば教えて下さいでつ。
542 :
デフォルトの名無しさん :05/02/07 15:50:33
そうだな、ひとつ有名なのをあげるとすれば、Eclipseというソフトがある。
あそうか。Eclipse本体はカコイイが、それで作れるJ2EEはダサダサ
SWTとjfaceでできた2chブラウザもあるよ。jface2chっての。
V2Cしか知らなかったけど、jface2chも凄いね。 疑問 ・jfaceだとペタペタ貼るだけでアプリが出来上がるんだろうか ・RCP版開発とあるけど、RCP対応は何か良いことあるのかなぁ
546 :
デフォルトの名無しさん :05/02/07 17:10:27
>>543 J2EEには画面出力の仕様は含まれていない。
よって、それで作ったJ2EEがださださなのは、自分の責任。
bittorrentクライアントもSWTなやつあるよね。
>>546 画面じゃなくて、作りが汎用機COBOL/JCLな感じでダサダサ
>>545 1. JFaceはSWTウィジットを隠蔽しないからVisualEditorが使える。
2. ものによるんじゃん? ブラウザだったらRCPでつくってもいいと思う。
>>548 あの、すみませんけど J2EE、特に EJB は COBOL/JCL の管理性を目指して
策定されたって知ってんの?
552 :
538 :05/02/07 19:01:34
Visual Editorにて独自のカスタムWidgetを編集可能に するためのプラグインを追加しました。 しかし、Widgetを張り付けると白くなります。 実行時は間題ありません。何が悪いのでしょうか? 実装した拡張ポイントは2つです org.eclipse.jem.beaninfo.registrations org.eclipse.ve.java.core.contributors
>COBOL/JCL の管理性 ( ゚д゚)、ペッ
554 :
デフォルトの名無しさん :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);
}
・
・
こんな感じに変更しました。
>>547 azureus?
日本語verがもろ2ch語風って事意外は満足なんだが
蒼蛙更新機とかマジで止めてくれ
556 :
デフォルトの名無しさん :05/02/08 19:10:09
ちょっと聞きたいのですが、Textフィールドをリーターンキーで 移動したいのですが、次の項目を xxx.setFocus();で設定する意外に VBのSendKey に当たる物はSWTには、無いのでしょうか?
557 :
デフォルトの名無しさん :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って混在して、いいのかよく分からない。 取りあえず、動く・・・・
SWTを利用して作成されたjface2chを実行してみました。 ネイティブと遜色ない操作性とパフォーマンスに感動したのですが、 作者さんへの連絡方法とかないんですよね。 ソースコード公開してくれないだろうか。。。
このスレ人気ないね swingの方が使われてるんだろうか
すくなくとも、業務システムで、となるとSWTはあまりつかわれないのでは いくらなんでもテーブルしょぼすぎ GUIエディタもVEではなあ…
>>560 どの辺がしょぼいと感じます?
VEもダメですか。。。
>>561 どの辺も何も…SwingのJTableとでは比べ物にならん。
SWTのTableだけでは確かにきつい。 JFaceのTableViewerと併用してようやくビューとそれ以外が分離できる。それでも テーブルの修飾とかでSwingと比べると見劣りするね。
じゃあTableだけJTableを使おう!
565 :
デフォルトの名無しさん :05/02/14 21:53:25
> すくなくとも、業務システムで、となるとSWTはあまりつかわれないのでは 業務システム自体で、Javaアプリケーションクライアントを、まだ、見たこと 無いんだけど。 仕事で画面系をJavaアプリでどのくらい作られてるだろう。 サーバー系をJavaで作って、あとはスクリプトが多いと思うけど。 開発した人のレスお願いします。
サーバー側をTomcat/Strutsで、クライアント側をSwingでやりました。 そんなに大変じゃなかったですよ。 Windows、Mac、Linuxに対応させないといけなかったのでSwingを選びました。 SWTだとWindows以外のプラットフォームだとそんなに見栄えが良くないんです。 もちろんWindows専用のプログラムを作るんだったらSWTでもいいんでしょうけど。
>SWTだとWindows以外のプラットフォームだとそんなに見栄えが良くないんです。 Motif版の予感。
SWTは、Windows以外ではむしろ遅いしね。
569 :
デフォルトの名無しさん :05/02/14 23:51:31
>>565 開発者にJavaのスキルしかなくて、っていうのは結構ありそうに思うのですが。
つーかクライアントはブラウザにするよね。完璧なクロスプラットフォームだし。 SWTはもうすこしJFaceが手軽に使えたらなあ。ドキュメントも少ないよ。
>完璧なクロスプラットフォームだし。 どこが?同じプラットフォームでもブラウザごとに違ったりするのに。
それなりの要求に応えだしたら、ブラウザってぜんぜんクロスプラットフォームじゃないんだよね。
ブラウザはJavaScriptを埋めると即グダグダ。 ブラウザを単なるウィンドウに見立てて、中身をFlashで埋めてしまえ ば互換性の問題は出難いけど、一部の層からは酷くウザがられる。 JavaAppletにする手もあるけど、実行すらしてくれない人多数の可能 性アリ。 Eclipseでリッチクライアント?それだけで敬遠されることうけあい。
ECMAScriptで埋めろ
575 :
デフォルトの名無しさん :05/02/15 22:22:17
業務アプリで敬遠もくそもあるか
>>575 あるだろ?
使われないグループウェアがどれだけあることか。
重いというだけで必須システムでなければ利用されない
可能性は高い。
RCPとか話題になっているけど、起動に糞重いEclipseが
本当にプラットフォームになるんですかね?
自分は開発ツールとしての恩恵を受けているので良いですけど、
256MBぐらいのクライアントで動作させると死ぬ気がする。
今のマシンは256Mがデフォだしなー メモリ拡張がとおる会社のほうが少ないかと 動かないわけじゃないんだろ?とか
>>577 いやー、128MBの98マシンってのも多いよ。いやんなるけど。
>>576 使われないグループウェアは、根本的な問題。
>>576 起動に糞重いEclipse と SWT を勘違いしてねぇ?
>>576 目の前にEclipse SDKが存在するなら確認してみな。RCPに必要な
Eclipse Runtime自体は本当に小さい。構成するプラグインは20個にも
満たない。数百個のプラグイン(Rationalだと1000を超える)から構成
されるEclipse SDKのイメージとは程遠いよ。
>>580 もしかしたら自分の理解が間違っているかもしれないが、RCPって
Eclipseのベース部分なんでしょう?
だったらプラグインでアプリを複数追加していけば結局Eclipseみたく
起動に大きな影響が出てくるのでは?と思っただけなのだが。
まあ、SWTを利用したjface2chは自分的にはネイティブのアプリと
全く遜色はないし、SWTの拡張を激しく期待しているのだが。
585 :
デフォルトの名無しさん :05/02/16 01:02:48
ところで、jface2chって Mac 環境で、どの程度動くんだろう、 自分で試せれば良いんだけど Mac は持ってない。 Mac mini が売れれば、ホームユースアプリで両方使えれば、結構、 インパクトあるソフトになりそうだけど、 Becky!もMac対応で SWTで作ってくれない物だろうか。
Mac対応なら、Swingで作ってもらったほうがいいんじゃない?
>>568 これってほんとなの?
試してみたいけどうちには Windows と X の入ってない FreeBSD しかない・・・
588 :
デフォルトの名無しさん :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使ってます。
>>588 Windows は GUI が OS の一部となっているので有利ってことですかね。
スレッド処理の速ささが、そのままでたんじゃない
いや、Windows用開発に重点が置かれたってだけかと。
>>589 その代わり、OSの機能だというのに特許侵害だとかいって訴えられて敗訴するんだけどな。
どうも、LinuxのGUIは動きがもっさりしていて気に入らん。
GNOMEのことか?AfterStepがいいぞ
bakabakka
Athenaで十分
swt2から3に変えたら、作ったアプリがいろいろ変になってるよ(;´Д`)
>>598 既出。SWT 3.0 → 3.1M* でも挙動が変わる。
挙動変更を追いかけ出すと結構大変だぜ。
変わって戻って変わってと繰り返す挙動も出てくるから。
600 :
デフォルトの名無しさん :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
602 :
デフォルトの名無しさん :05/03/10 11:16:42
imageのサイズ(高さと幅)を変えたい時ってどのような記述すればいいんでしょうか?
>>602 Imageのインスタンスを表示するときに表示エリアの大きさを
変えたいとか、Imageが保持しているImageDataの縦と横を
変えたいとか、もうちっと詳しく。
Imageが保持しているImageDataの縦と横を変えたいです
>>604 ImageData#scaledTo()で大きさを変えたImageDataのインスタンスを
取得するか、ImageData#getPixel()でデータを取り出して自分で
拡大縮小処理して別途ImageDataのインスタンスを生成するか。
>>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などで誤魔化しましたが、これが普通ですか?
他にうまいやり方があったらどなたか教えてください。
StringでなくInputStreamを引数にとるImageやImageDataを使えばいいんじゃね
>>607 ただ表示したいだけなのですが、使わないとだめでしょうかね。
さらに
>>606 では不具合。
jarにすると
URLが頭に"jar:"とつけるため単純にStringでは
うまくいきませんでした。
>>608 ストリームを使ったときのデメリットがわからん。
610 :
デフォルトの名無しさん :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
>>600 shell.setImage(new Image(null, getClass().getResourceAsStream("icon.gif")));
>>611 611だけじゃないけどImageオブジェクトはGCでは回収しきれないんで
できれば明示的にdispose()する習慣をつけてください。
>>611 InputStreamをちゃんとclose()しないと.
Application code is still responsible for closing
the input streamだよ.
>>610 TabFolder / TabItemはよくわからんなあ
CTabFolder / CTabItemならできたけど、そっちじゃダメか?
CTabItem CTabFolder#getItem(Point pt)
Gets the item at a point in the widget.
615 :
610 :2005/03/21(月) 18:25:44
>>614 様
ありがとうございます。
まさしくこれが欲しかったやつです。
実際に書いてみて、希望どおりに動くことも確認しました。
質問1 org.eclipse.swt.widgets.List に SelectionListener を渡してやると、 リストの項目がクリックされた時と、ダブルクリックされた時に、それぞれ widgetSelected() と widgetDefaultSelected() が呼ばれますよね。 このうち、widgetDefaultSelected() って、ダブルクリックだけじゃなくて、 項目が選択されている時に Enter キーを押すことによっても呼ばれる はずだと思うんですど、実際にやってみると、ダブルクリックのときにしか 呼ばれないです。Table や Tree の時にはちゃんと Enter キーにも反応 してくれるのに。こういう現象を確認した方おりますでしょうか。 質問2 SWTのAPIって、日本語に訳されているやつってありますか。
617 :
616 :2005/03/26(土) 02:17:14
あげ ます
JREも5.0になったけど SwingはSWTに追いついた?
機能的には、抜かれたことはないしねぇ。 速度的には、実用的な速度になってる。 メモリやリソースの使用量はもともとSwingの方が効率が良いし。 Windows以外では、SWTでは1.4.2のSwingより遅いという話だし。 ブラウザもJDICでネイティブのものが使えるようになったし。 SWTに追いついたというより、SWTのメリットがあまり意味をもたなくなってデメリットが際立ってきたという感じだな。
Swing には SWT の JFace に相当するものが無い。
SWTのTableはSwingのJTableの前では余りにも貧弱。
でも書くの面倒すぎ('A`) TMFでも使えばある程度は楽になるけど
623 :
デフォルトの名無しさん :2005/03/27(日) 12:27:42
Label label = new Label(shell,SWT.NULL); このような記述でshellにlabelを配置したときに shell側で配置されたことを検出したいのですが、 そのようなリスナってありますでしょうか?
624 :
age :2005/04/03(日) 22:03:29
SWTやばい廃れてるage
役目は終わりました。
正直いまごろマンセーしてるのはいがぴょん氏くらいか J2SE5.0がでなければ、ましんぱわーがもうちっと低ければSWTはそれなりに 意味はあったのかもしれん SWTの欠点を補おうとJFaceでいじってるようだが、JFaceでいじろうとすると ただでさえ厄介なSWTの複雑度が大幅に上がりSwingにたいしての メリットがかなり薄いんだよなぁ もちろん素のSWTよりは楽に扱える・・・というか継承できないコンポーネントって 割り切りすぎなきもしないでもない 継承したらしたでそれならSwingのほうが便利だったり、Windows以外の安定性とか 速度が改善されればまだましなのだが、ちぐはぐというかそんなかんじ
マーケティング戦略コンポーネントだったってことだ。
Tableの一部のカラムの背景色だけ色を変えるにはどのようにすればいいですか?
>>166 の方法で透過PNGを試してみたが、、
作ったアプリをGTKで実行すると透過されるのに、
Win32で実行すると透過されない。
他の方どうですか?
631 :
629 :2005/04/10(日) 02:07:18
書き込む前にも374とかは読んでやってみたけどやっぱりGTKでのみ 透過されるっす。 256色の画像をshin's PNG Editerで取り込んで透過色を設定、 Image img = new Image( Display.getCurrent(), getClass().getResourceAsStream("/hoge/img.png")); で登録させてるんだけど・・・あとどこを見ればいいですか?
632 :
デフォルトの名無しさん :2005/04/12(火) 09:22:39
CPL について質問させてください。 CPL を読む限り CPL のプログラム (またはその一部) を再配布する場合 そのソースコードも配布可能でなければならないと思うんだけど、 (swt-*.dll を配布するならその部分のソースコードが必要) ほとんどの人がソース配ってないですよね? ソース配布の必要がないという根拠が どこかにあれば教えてもらえるとうれしいです。
>>632 ソースほしけりゃメールしろとかeclipse.orgの当該URLを
をドキュメントに書いておけばよし。バイナリに添付する
必要は無い。FAQにもそう書いてある。
でもCPL読めばソースを要求する権利があることが明記されてるし
それ以上の説明はmustではないと思うけどね。
634 :
632 :2005/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 から取った方が信頼できるので
ソースくれと言われるなんてありえないと思うけど、
念のため自分のサイトで別途ダウンロードできるようにしようと思います。
635 :
デフォルトの名無しさん :2005/04/16(土) 13:40:37
SWTのtableをremoveAll()しても、ヘッダが消えません。 ヘッダを消すにはどうすれば??
>>635 setHeaderVisible(boolean show)
637 :
636 :2005/04/17(日) 22:42:36
>>636 説明不足でした、表示を消したいのではなく、ヘッダーのコンポーネントそのものを消したいのです。
setHeaderVisible(false)しても、次にtrueにした時、また同じヘッダーが表示されてしまうので。。
638 :
デフォルトの名無しさん :2005/04/28(木) 10:44:12
基本的にメソッド内で決めうちつーか、Labelのデフォルトそのまま だから、createMessageArea()をオーバーライドして自分で設定しないと だめでしょ。
640 :
デフォルトの名無しさん :2005/05/07(土) 19:28:00
RCPってどうですか?実業務で採用した人います? スレ違いなら誘導願います。
RCPはEclipse囲い込み作戦で使ってるところはほとんどない でも普通SWTとJFace直で問題になるまい Windows以外での動作の考慮もするとなるとSwingのほうがよかったり 業務アプリだと標準APIでノウハウもたまっているSwingのほうがいいと思われ
RCPは使ってないけど、EclipseIDEのプラグインとしては業務アプリを 作ってるな。GUI以外のフレームワークの機能を考えるとトータルでは 工数減ってる。
RCP使った事無いけど、Windowsオンリーとかなら選択肢になり得ると思う。 複合的なパッケージを提供させる場合でもユーザインターフェイスも統一させやすい。(代わりにこった事できないけど)。 自動更新機能も魅力的だけど、JavaWebStartにもあるし。 今はSwingが改善されてきたから、速度的なメリットは無くなったと思う。 ということで、将来的にがーんと伸びるとは思えないんで、何を重視したいかじゃない?
644 :
640 :2005/05/08(日) 15:11:17
>>641 >でも普通SWTとJFace直で問題になるまい
すみません。ちょっと意味がわかりませんでした。
SWTとJFace直とは?問題にならないというのは使い物にならないということ?
>>642 業務でEclipseのプラグインを開発したと言うことですね。VisualEditorは使いましたか?
#適用可能ですか?
>>643 Appletとして配布するのとJavaWebStartを使う場合の違いがよくわかってないです。
JavaWebStartについて解説しているお勧めのページ等あります?
645 :
デフォルトの名無しさん :2005/05/08(日) 16:23:52
646 :
643 :2005/05/08(日) 16:26:01
なぜRCPを業務で使うという選択肢が出てきたのか そこから説明してもらわないとな
つーかさ、RCPだからSWT/JFaceを使わなきゃならないとか、JavaWebStart があるからいいとかそういうもんじゃないよね。SWT/JFace自体RCPからみれば プラグインの一つに過ぎないので別にAWT/SwingでGUI部分を作ってもいいし、 Eclipse3.1以降のPDEはRCPとJavaWebStartを組み合わせた開発をサポート する。それぞれの機能のおいしいとこをつまみ食いしてればいいんだよ。
べつになくてもいいのならRCPいらねーやん
WindowsオンリーならC#の方がいい。
>>640 今、JavaHouse-Brewers MLでRCPがらみのメールが流れてきた。
とりあえず松下の社内にはRCPで作っているやつがいるらしい。
突然ですが、shellのアクティブタイトルバーの部分のフォントを変えるにはどうしたらよいんでしょうか。。。 shell.setFont(font)したけどダメでした。 誰か試したことありましたら教えてください。
>>652 タイトルバーのフォントは変えられないと思うが・・・.
windowsか? タイトルバーのフォントってシステムのプロパティだから、一般的なウィンドウでは 変更不可能だったような。 当然SWTでは無理。 まあCでそれ用にウィンドウ定義まで書いて、SWTいじってJNIでそこから wHndを取得させれば不可能では無いが、かなり手間の無駄だと思われる。 そこまでしてもフォントを変えることが重要なら止めないが。 GTKは殆ど触ってないんでわからんが、やっぱSWTのみじゃダメだろうな。
655 :
デフォルトの名無しさん :2005/05/17(火) 01:04:09
swtを勉強したいと思うのですが、オープンソースでswtを利用した アプリケーションは無いでしょうか。Eclipseを除いて。 ありましたらご紹介をお願いします。
BitTorrentクライアントのAzureusとか
RSSリーダのRSSOwlがmy愛用swtアプリケーション。しかしこいつ javaアプリなのにappletを使用したwebページを開くと固まるんだよね。 多分swtの問題じゃないかとオモてるんだけど。AzureusもRSSOwlも swtの参考として見るには規模がデカすぎるかもしれないね。
658 :
デフォルトの名無しさん :2005/05/18(水) 21:57:50
>>657 EclipseのExampleプラグインのなかに
ブラウザプラグインあるだろ?
あれも、落ちちゃうんだよな やっぱ バグだろうと思う
659 :
655 :2005/05/19(木) 11:44:27
ありがとうございます。 紹介頂いたソフトを見てみます。 とりあえず2ちゃんブラウザでも作りながら勉強してみます。
モナリプス?
プラグインだと重くなるので、とりあえずはSWT/JFaceで 考えてみます。気が向けばRCPで作るかも? 本当はjface2chとか既存のブラウザがオープンソースだったら 良かったんですけど。
663 :
:2005/05/19(木) 23:56:54
age
665 :
デフォルトの名無しさん :2005/07/02(土) 18:39:42
JAVAの基礎やった後に これからGUIの勉強始める時には、SWTとSwingどっちがおすすめですか? 二つのアプリ試してみたら、GUIのインタフェースがWindows標準ので見やすいので 最終的には、SWT使ってGUIアプリ作りたいと思ってるんですが、 EclpseでいきなりSWT始める前に、AWTやSwingを一通りやったほうがいいのでしょうか? スレ違いだったらすみません。
PureJavaなSwingがいいんじゃね?
ドキュメントがMSOFFICEで固められているのでSWTを利用して EXCEL等を制御したいのですが、OLE AUTOMATIONを行う ことは出来ますでしょうか。 また、サンプル等掲載されているサイトがありましたらよろしく お願いします。
>>665 最終的にSWTを使うなら, SWTから始めたほうが良いと思われ.
ゲーム作るならSwingの方がいいんかね?
むしろ仕事で使うにはSwingかと
SWTを使うきっかけがWindowsみたいで見やすいというだけなら、SwingでSystemLAFかと。 今後SWTが今以上に広まることもなさそうだし。
つうか、SWTはRADツールがないから勉強に向かんな。
>>672 VEってSWT未対応だっけ?
どっちにしろ勉強ならまずはクラスを自前で生成してプロパティセットしたりして
行ったほうがいいかと思われ
まずはレイアウトマネージャを理解するのが大事だし
でもJava6.0ではPureJavaでタスクトレイにアイコンおいたりできるし
SWTならではというのはもう大分減ったかな
JFace使えば高機能とはいうものの、それならばSwingのほうがカスタマイズ性含めて便利だし
Swingも速度的に速くなるみたいだしねぇ
>>673 レイアウトマネージャ理解するなら、なおさらRADで動き確認してからコード書いたほうがよくね?
ここで質問しないと始めれないやつが RADで配置した後コードみるとはおもえん・・・
678 :
665 :2005/07/02(土) 23:46:21
多数のご助言ありがとうございます。 SystemLAF初めて知りました。 SwingでもWindows風のGUIインタフェースにできるんですね。 レス読んでると、今はSWTが速いし機能も充実してるけど 将来的にSwingのほうが色んな可能性もってるって感じなのでしょうか。 AWTやSwingの経験なしにいきなりSWTから始めて とくに困ったこともなくやってけてるって人いますか? 最初から両方に手つけて、どっちも中途半端なレベルになるより まずはどっちかである程度のアプリを作れるようになりたいと思ってるんですが… JAVAでGUII始めるならとりあえずこの道、っていうのはあまり決まってないんでしょうか。
機能はSWTさわってみるとわかるけど充実はしていない 基本的に継承して作るわけじゃないので・・・というかどっちもさわってみなされ Swingのほうが本が多く出てると思うしネットではひっかかりやすいかな あとSWTはWindowsではいいけど、Linuxでは速度が恐ろしく遅かったりバグが大量だったり(昔ね) ユーザーの数がやっぱり枯れ具合にもろに影響しているのも注意ね SwingはJavaが入っていれば使えるけど、SWTはSWTを入れないと使えないから サイズが大きくなりやすいとか用途によってはいろいろと制限が出ることも Win9x系はSWTはやばかったような記憶もある Swingは標準APIだけに「Javaをさわれる」といった場合に試される場合も多い SWTスレらしくない内容ですんまそ
>>677 じゃあ、ずっとRADでいいんじゃねぇ?
でもさ、、、現実的にまだクライアントはWindowsな訳だし、連携を 考えるとSWTにがんばってもらう必要があるのでは? 今の職場ではOFFICEと連携出来ませんではクライアントアプリ としてはかなり利便性が下がりますね。
ものによるんじゃね? ExcelやWordの読み書きならSWT/Swing関係ないし
Excelコンポーネントを自作GUIアプリケーションのウィジットに貼り付けるのならSWT。 #というよりSWTのOLEサポートはその目的でしか使えない(ことになってる)。
OLEサポートほしけりゃ、VBで作った方が楽だな。
>>682 その場合どうされていますか?
POIやJComを使われていますか?
>>683 そうなんですか?
その辺りがよく分からなかったもので。
OLEクライアントとしてウィジットに貼り付けるのではなくて
単純に外部のEXCEL/WORDをOLEにて制御することは
出来ないのでしょうか。
>>684 そうですね。
なので、.netをC#ででもやる必要があるかな?と思っています。
OS依存の部分を除くとSwingに対するSWTのアドバンテージは ほとんど無いと思われ。 Eclipseがこれまでになく盛り上がっているので、乗っかっている ベンダ等の協力で劇的に進化する可能性はあると思うけど。
これからGUI始める初心者にしても、 選択肢がありすぎて一つの方向に統一できてないってのが JAVAの難点かもな。 独占的でない比較対象があるのは 考えようによっては良いいことなのかもだけど。
実際Windowsで利用されるソフトでJavaのGUI利用したのって ほとんど見受けられないから始めにくいんですよね。 SWTは日本語の情報は不足しているし。 ある程度評価されているアプリでソース公開でもされていれば 習得しやすいとは思いますが。
Swingだと手元だとImageJとかJudeくらいかな。ソースコードは提供されてないけど。 SWTだと…EclipseのPluginなら結構ソースコードは手にはいるけど、単体のアプリはしらん。 日本語のSWTの書籍は2冊あるけど、どっちも入門編といったところ。 Swingの書籍はいくつかあるけど、ちょっと古いのもの多いのだよな…。 WidgetやLayoutの例ならまんま確認用のプラグイン(Example Plug-ins)がelipse.orgで 配布されているからともかくそれで動作を見てみるのも良いかと。
>>689 ImageJはSwingじゃなくてAWTで組まれていて、ソースも手に入る。
eJFaceが6/30付けで公開された。
>>688 そういえばそうだな。
これだけツールが晒されてるにも関わらず
そこで実際に作られてるはずのGUIアプリのソースコードがあまりないってのは
どういうことなんだろ。
C関係のソースなら中級レベルのいい材料たくさん落ちてるのに。
クライアント側のソースコードで手に入るのは、
おもちゃ程度のことばっかだし。
まぁ、あれだ。 最終目標がクライアントのGUIアプリ作ることで、 JAVAの世界で迷ってるくらいなら、 C#でやれってことだ。
C#のソースコードなんてさらに見ないわけだが
Swingの場合業務系でよくみるけどソースはさすがに公開できんだろ
NetBeansとかは、ソースがあるけど。
それいったらEclipseも・・・
JAVAに関して、クライアント側のGUIアプリソースは期待できないってことか 業務系は公開できないだろうし…。
つーかSwingなら何を迷う?
っていうか、Swing使うっていっても8割がたは自動生成されたコードだし。
>>698 EclipseってSwing使ってるの?
んなわきゃーない
Windowsでの特殊フォルダのパスって、SWTで取得できないかな?
環境設定よめば多少はつかえるな
706 :
デフォルトの名無しさん :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を通知してくれるんですかね
そこでリスナー呼ばれるものなのか?
コンストラクタで親をしていしてないからダメ。
>>706 たしかsetSelectionによる選択状態の変化はSWTでは
リスナーに通知されなかったような気がする・・・.
Widget#notifyListenersでいいんじゃないの?
最近 3.1M4 から 3.1 にしたんだけど、速度落ちたね。 org.eclipse.swt.graphics.GC で、drawLine 等を 結構な量こなすプログラムを作っていて 前までキーやマウスの動きに追従できていたのだけど 出来なくなっちゃった。
総合で質問したんだが、答えでなかったんで
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
ってでて、サンプルソースを認識してくれない
指定方法が間違ってるんだろうか?
だれかおせーてください
Swing用ツールの質問がなぜこのスレに?
715 :
デフォルトの名無しさん :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 と怒られてしまいます。 うまくスレッド化するにはどうすればいいでしょうか・・・。
716 :
デフォルトの名無しさん :2005/08/02(火) 14:03:36
Javaよく知らないですが、 別途キューを用意して、イベントはそこに放り込み、 個々のスレッドはそのキューからイベント取り込んでやればいいんじゃね?
719 :
715 :2005/08/03(水) 00:27:25
助言ありがとうございます。 実装してみます。
722 :
715 :2005/08/03(水) 00:58:57
うお・・・マジで感謝です
半年前にSWT+Draw2Dで図形編集ソフトを作成しました。 情報が少なくってかなり苦労しました。 これがSWTを使った最初で最後の仕事になりそう。 Eclipseプラグインを作成する仕事まわってこないかな。
それが最後の仕事になりそう。
先生! SWTで、マウスホイールがどれだけスクロールされたか知る方法ってありませんか?
Spinnerって消えた?
GUIを作ろうってのに、ネイティブコードを吐かないから 普及しないんだよ。 馬鹿でかいランタイムが必要なソフトなんぞ誰が使うか。 せいぜいツールどまり。 jarダブルクリックすると解凍処理始めるしな。。。
>>728 jarダブルクリックで解凍しちゃうのはおまえさんが変なソフト入れてるからだろうが。
デフォはjavawあたりじゃないかね
731 :
デフォルトの名無しさん :2005/08/22(月) 21:24:49
ちょっと質問 SWTの日本語のAPIリファレンスってありますか? 探したけど見つからなかったorzオレダメポ
732 :
デフォルトの名無しさん :2005/08/25(木) 22:54:30
>>731 俺もホスィ
ってかリファレンスつってもswingとあんま変わんないんじゃね?
SWTとか今日から気にするようになった俺がいってみる
Swingとはちょっと違うな。 似せてあるけどね。 コンポーネントがプリミティブなのでTableModelとかの概念が無いし。 JFaceとセットで使うのがベターな感じだが、こっちはSwingとはぜんぜん違う。
素朴な疑問なんですが、GCCにSWTでSwingAPIを実装したものが 同梱されているようですが、こんなものが出てくるのであれば、 SWTのテーブルとか機能的に不足しているコンポーネントの 機能強化は比較的スムーズに出来るのでは?と思うのですが、 そんなに単純ではないのでしょうか。。。
735 :
デフォルトの名無しさん :2005/09/12(月) 12:16:13
質問です。 SWTってどうやって手に入れて、 どうやって使うんですか? 素人でごめんなさい
>>735 Eclipseの配布ページからSWT〜.zipというファイルを落としてきて
ワークスペース内にインポート。自分が作るアプリのプロジェクト
からそれを参照する。
EclipseIDEに同梱されているSWTを使う人が多いがそれは本来は
推奨されていない。
>>736 EclipseについてくるSWTチュートリアルでは、
EclipseIDEに同梱されているSWTを使うようになってたような気がるる。
>>737 それはEclipseの配布物の一部だから、ビルド時に想定しているライブラリと
IDEのランタイムライブラリのバージョン不整合みたいな問題が
起こる可能性はないから問題ないと思うよ。
Run as... -> SWT applicationの機能が一時的に3.1のマイルストーン
ビルドから外れたことがあって、その際の議論でも開発陣から
ターゲットのプロジェクトに依存するものと、IDEのランタイムに依存するものは
切り離すべきだという主張がされてる。結局、要望に負けて
元に戻ったけど。
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() 等を使うと効いているのですが・・・。 うまくいった方、いらっしゃいますか?
質問です。 タイトルバーの縦のサイズって どこかに定義されていないのですか?
最小コンポーネント
742 :
デフォルトの名無しさん :2005/10/22(土) 07:58:40
JFaceで1行にイメージやボタンを持つListを作りたいのですが どうすれば良いのでしょうか?
743 :
sage :2005/10/24(月) 21:40:04
javaでguiアプリ作るときって、生産性を考慮すると、当然のごとく、 画面ごとにclass分けする事になるけど、画面切り替えを高速にすると、 swtの場合はokだけど、swingの場合は2重起動しちゃう・・ やっぱり、sunってguiアプリの事とか、あまり考えてないんだよね・・ sunの尻拭いをibmがやってるという感じが・・orz
744 :
デフォルトの名無しさん :2005/10/24(月) 21:44:56
jwsでswingとswtを起動してみたら、swingは前面に起動したけと、 何故かswtは背面に起動した。変なの・・。
745 :
:2005/10/25(火) 00:58:17
SWTのStyledTextで自動折り返しするにはwardwrapしかないの?日本語入力だと目に見えて処理が遅くなる。どうせ英語なんか使わないから単純な自動折り返しがしたいんだけど。
>>743 どっちかというと、743がよくわかってないだけの気がする。
画面ごとにclass分けるとか分けないとか、関係ないと思うが。
Tableの行高を変える方法は無いのでしょうか?
setRowHeightとかその辺の話?
すまん、swingスレと間違えた
751 :
デフォルトの名無しさん :2005/11/14(月) 20:17:00
質問スレから移動してきました。 SWTのImageDataでwidthとheightの値を小さくすると画像の右と下を削れますが、 左と上を削るにはどうすればよいでしょうか。
素直に再生成。
できました。感謝します。
最近は効率の面でSwingに追い抜かれた感があるけど SWTってバージョンアップとかしてるの?
特にVerUPの話とかは聞かないなぁ。 ていうか、Swingがここまで頑張るとは、SWT出始めの頃には思えなかったよ。 速さではもう勝負が分かりづらくなるところまで来ちゃったから、 今度は別の観点で勝負してほしいなあ。 何かあるかな
当時だと1.3の時代で、Swingにハードウェアアクセラレーションがなかったのと すべてpureJavaでかかれているためにVM自体の動作速度の差があった それが1.4での速度向上やアクセラレーションの有無で一気に現実的になった JNIは結構オーバーヘッドがあるのでSWTは更なる速度向上というよりは 機能をパワーアップさせようとJFaceに力を入れるというところだろうね でも、JFaceやればやるほどこれならSwingのほうが高機能で楽となるので びみょーになってきた感はある SWTが流行ったというよりは中心プロジェクトのEclipseがヒットしただけという感じ
757 :
デフォルトの名無しさん :2005/11/15(火) 01:50:51
このままEclipse内部に使われる変体ツールキットの立場で終わるには勿体ないぞ。SWT。 俺はSwingのような無駄に高機能なAPIよりすっきりしてて好きだが。 なんだあのツリーモデルとかテーブルモデルとか。Collection Frameworkに対応してないし。 SWTにはOLE連携とかDraw2Dとか、変わり種の特技を生かして生き残ってほしい・・・
>>757 内外で使われるようになっても、それでは変体ツールキットのままじゃないですかw
SWT生だけでの比較であれば別にSwingも面倒なことはないと思うぞ それに所詮生API ラッピングして使いやすくすればいいだけ Win32API直だって面倒じゃないか コレクションフレームワーク未対応なのはSwingは1.1のオプショナルパッケージを引きずっているからだよね そろそろ対応してきてもいいはずだけど、同期処理が入っていたからたまたま動いていたアプリとか多そうだな JavaSE6ではネイティブ描画対応だったっけ>Swing どうなるか見もの 現状でも5.0以降ならSystemLAF綺麗なんで満足
>>759 SWTをラップする立場にある物がJFaceだから、あれが進化したらSwingに対抗できるくらい流行るはず。
いや、単にドキュメントがSwing並に増えるだけでも結構勝負できるんでは?
Eclipseのタブやらツリーやら、結構綺麗でしょ。そういう魅力もある。
でも確かにSwingのネイティブ描画対応は魅力的
>>758 いや、だから内部だけで使える変体ツールキットを超えて、
いろんなソフトで使われる超変体ツールキットとしてな。
いや、なんか言いたいことと違う。もういいです。寝ようかな・・・・
761 :
デフォルトの名無しさん :2005/11/15(火) 04:15:55
>>759 > JavaSE6ではネイティブ描画対応だったっけ>Swing
ネイティブAPIを使用して、以前よりもフォントとかアイコンとか
配色とかテーマとかの情報をちゃんと取ってるよって程度だと思われ。
762 :
デフォルトの名無しさん :2005/11/16(水) 19:37:30
SWTのLinuxとWindowsの表示上の違いについて質問なんですが、 WindowsでチェックボックスのsetEnableのパラメータでfalseを指定すると、 チェックボックスの中は灰色になりますが、Linuxでは白いままです。 一応、両方ともチェックできない状態になるので、 機能としては働いてるようですが・・・ これは仕様なんでしょうか?
すごく初心者な質問いい? SWTやらSwing使ってJavaのGUIアプリ作るのはいいんだけど 拡張子が.exeのアプリって作れる? jarは嫌だから
やればできる
jarださい exeかっくいー それにjarのアプリなんて見たことないし 中身見られるしいややん
768 :
デフォルトの名無しさん :2005/11/18(金) 04:12:35
CTabFolderで新しくタブが開かれたときに そのタブを直ちにフォーカスするにはどうすればよいでしょうか。
すみません。自己解決しました。 CTabFolder#setSelection(CTabItem arg0)
>>11 にあるSWTFanclubってなくなったの?
今まで見れたことないんだけど・・・
>>770 mobster.jp自体が去年の10月くらいから切れてる。
GEFを用いて、あるActionが発生すると付随して別のActionが自動的に起こるように したいのですが、可能でしょうか? 具体的には、Modelを1つつくると、既にあるModelに勝手にConnectionを貼るという 動作をさせたいです。
>>774 普通に最初のモデル作るときに同時にコネクション張ればイイだけじゃないの?
775 :
773 :2005/11/22(火) 16:54:45
>>774 さん
どう見ても自己レスです。
本当にありがとうございました。
確かに、Modelの生成時にあればいいですね。
Modelを設計し直すことにします。
776 :
デフォルトの名無しさん :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()されるの?
リソース管理で疑問に思ったらsleakで確認すること。
swingのJInternalFrameにswtのBrowserを表示することは可能ですか? もし可能であれば、その方法を教えてください。
Frameの中にBrowserを貼り付けるのはやったことある。SWT_AWTつかって。 これ使うとappletにいろいろSWTウィジット貼り付けられて面白いが 実用性はないんだよな。
swtのBrowser貼り付けるなら、JDICでネイティブブラウザー埋め込んだほうがいいかも。
781 :
778 :2005/12/04(日) 21:57:14
さっそくJDIC試してみました! これ!これを待ってましたって感じです。 Windowsネットワークを使用してのフォルダやファイルに簡単にアクセスする方法が ネイティブブラウザを使うことしか思い浮かばなかったもので。 教えてくださり感謝です。
Linuxでテキストボックスを使ったプログラムを作成し テキストボックスに日本語を入力すると□□□になってしまうんですが どうしたらいいでしょうか? ソースの文字コードとか関係あるんでしょうか?
>>782 Linuxにインストールしたjavaランタイムの文字フォント設定の問題かもしれないよ。
>783 ググってみたんですがjavaランタイムの文字フォントの変更とか設定について 載ってるページが見当たらないんですが、何かいい参考サイトありませんか?
>>782 日本語ロケールでjavaws とか appletviewer とか標準のツールを起動した場合にも
豆腐になるとしたらランタイムのフォント設定が悪いからがんばれ.
jre/lib/fontconfig.*.properties を適切に設定するか jre/lib/fonts に適当な
フォントを置くかする必要がある.
次スレは Java ネイティブGUI SWT3 にしなくちゃな。
>>787 次スレ立てるころには忘れてる予感・・・
TableViewerで何か一覧を表示し、そのアイテムごとに違うメニューをマウスの右クリックでPOPUP表示させたいと思っています。 やり方はマウスdown時にそのアイテムのメニューをTableに設定すればいけそうなのでやってみたのですがうまくいきません。 原因はマウスボタン押下時にマウスdownイベントが発生せず、マウスボタンを放したときにマウスdownとマウスupが連続して発生してます。 Tableのアイテム以外の空白の部分でマウスボタンを押すと押した時点でマウスdownイベントが発生しました。 TreeViewerだとマウスボタン押下時にちゃんとdownのイベントが発生し、この方法でそれぞれのアイテムごとに違うメニューを表示できたのですがTableViewerだとうまくいきません。何か良い方法ありましたらお願いします。
790 :
デフォルトの名無しさん :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です。
791 :
デフォルトの名無しさん :2005/12/16(金) 00:29:48
JWSについてなんだけど、JWSで表示したもの(例えばSWTで作った表)をユーザーに表示させている間、 javascriptでユーザーの動きを制御したりはできるの? 例えばユーザー側で3分間どこもクリックしたりしなかったら何かメッセージウインドウを出す、とか あくまでjavascript限定で
>>791 まるち乙。
しかし、ここもスレ違い。
まあ、答えといてやるよ。
Rhino使えば、JavaScriptでできる。
>>792 ああ、ここでもスレ違いでしたか
ともかくありがとうございます
794 :
デフォルトの名無しさん :2005/12/16(金) 10:41:53
環境はEclipse3.0.1でペイントツールを作りたいんですが、 MouseListenerを使って線は自由に描けるようになりました けどLabel上に描いているため描いた線が保存できないっす・・・ 自分で描いた線を「画像」として保存したいんですができるのでしょうか・・・ lab = new Label(sh, SWT.NONE); lab.addMouseListener(myMouseListener); lab.addMouseMoveListener(myMouseMoveListener); こんな感じで書いてます
画像保存用のImageを生成。 imageを引数にGCを生成。 GCを引数にPaintEventを生成。 PaintEventを引数にPaintListenerを呼び出す。 ImageLoaderでimageを保存。
Java本体の印刷がバグバグなので SWTで印刷することにしました そうしたらラインの描画がおかしいのですが、これは改善する方法があるのでしょうか どうもライン+終点の描画になっているようで GCはピクセル単位でしかまともに処理されてないような感じがするのです DPIにあわせて描画エリアは広がっちゃうし、かといってスケールを使うとフォントが問題出るし もしかしてSWTもプリンタ周りはぜんぜんこなれてないのでしょうか
796は一体全体どういうコードを書いているのだろう。
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();
これで縦に線が引かれるはずなのですが、ゴミのような点が終点につきます
800 :
デフォルトの名無しさん :2005/12/22(木) 01:39:31
質問です。 Swingで書いているのですが、DirectoryDialogだけ使うとか、そういう事はできますか? コンストラクタでShellを指定しなければならないようなのですが・・・。
801 :
デフォルトの名無しさん :2005/12/24(土) 20:33:31
突然すみません。 javaアプレットにSWTを組み込むことは可能でしょうか?
お返事ども。 逆ならいけるみたいなことはどっかに書いてあったんですけどねぇ・・・。
>>800 生成したShellを表示させなければ問題ない。
>>801 SWT_AWT#new_Shell使えばできる。ただしdllの配布の手間を考えたらJWS使った方が現実的。
805 :
デフォルトの名無しさん :2006/01/07(土) 09:15:33
質問させてください。 SWTのGCでsetXORModeが非推奨命令になっているのですが、 代わりに何を使えばXOR演算を使った描画ができるのでしょうか? 調べてみたのですが、それらしき記述を見つけることができませんでした。 ご存じの方、おられましたらお教えいただけませんでしょうか。
質問です。 SWTでウェブブラウザを作成していて、 ボタンを押した時に、キーボードのCtrl+Fを押した時と同じ動作を させたいんですがどうしたら良いでしょうか?
SWT.CTRL|'F'
808 :
806 :2006/01/25(水) 00:11:02
>>807 ありがとうございます。
ウィンドウへ仮想キーを送るにはどうしたら良いでしょうか?
809 :
808 :2006/01/25(水) 18:24:42
すいません、解決しました。
ボタン内のテキストを縦座標で中心に持ってくるにはどうすればいいの?
811 :
デフォルトの名無しさん :2006/02/01(水) 00:45:16
デフォルトで真ん中になりますよ。 Button button = new Button(shell, SWT.PUSH); SWTのソースを見れば、どんな定数が使えるかわかります。
>>766 みたいな厨が作るプログラムなんて、どうせ小学生の工作レベルなんだろうな。
「中身見られるらしいじゃん」って、見られて困るような特許もないくせに
何を怖がってるんだ。プログラムの糞っぷりが発覚したら恥ずかしいってことか?w
どうも最近の日曜プログラマもどきって、何の技術的価値もないくせに
下らん事にはやたらこだわるんだよな。.EXE1つだけのソフトに
ご大層なインストーラつけたり。
決してソースを公開しないのも、最近の日曜プログラマの共通点だな。
まぁ、見られたら恥ずかしいんだろうけど、人にソースを見てもらわん限り
プログラムの腕は決して上達しないよ。
>何を怖がってるんだ。プログラムの糞っぷりが発覚したら恥ずかしいってことか?w 俺まさにそんな感じ
複数のShellを表示させてるときに片方を閉じようとすると display.dispose()でもう一方まで落ちちゃう・・ 派生的に呼び出される方をshell.dispose()に変えたらうまくいったけど リソース開放しなくて大丈夫なのかな?
>>814 スレッドとDisplayは一対一に対応し、全てのShellはどれかのDisplayにぶら下がっている。
だから、Displayをdisposeしたら、Shellが終了してしまうのは当たり前。
Displayは基本的にスレッドの終了時に解放する。
shellが複数出てきちゃうのを何とかしたいんだけど・・
shell.dispose()のなにが不満なんだろう。
別に不満はねーよ・・でも・・
じゃいいじゃん。
そうだな
1つ聞きたいのだが、SWTに未来はあるのか? ここ半年くらいSWTばかりと戯れている自分が、ふと不安になった
Swingが速くなってきた昨今、速度云々で優位性を語れなくなったからねぇ。 コンストラクタで親を要求するんで、書き方によっては多少面倒な場合もあるな。 主観つーかクセだけど。 配布の手間を考えると、積極的にSWTを選ぶ事は無くなったかも。DLL不要になればいいんだけど。 JFaceの**Providerとかは、Swingの**Modelより書きやすくて好きなんだけどね。
>>821 あまり期待しない方がいいと思う
もはやEclipseの中でしか生き残らない気もするしね
GUIを使ったObserverパターンのサンプル、 元々SwingだったのをSWTに置き換えてみようと 思ったら結構はまった。 メインウィンドウって考え方なしに 各画面が対等のオブジェクトとして連携できる感じで 書けるSwingの方が、楽かなー。 一般的なJava作法である程度行けるので。
なら糞みたいなSwingのグラを使えというのか 俺はSWTが大好きだ!!!
826 :
821 :2006/02/06(月) 23:28:13
>>822-825 やはり明るくはないですか。
SWTはコード書いてて楽しいんだけどなぁ……
現在では ・速度的、メモリ的メリットなし ・機能不足 むしろ情報不足とか機能不足で実装する場合実装方法や 問題となった箇所の回避方法がSWTは絶望的という点が厳しいようなきがする 用意されてる上で動く分にはいいけど、自由度が足りないというか だから仕事で使う場合を考えると、どういう機能がほしくて、それはどうやって実装できるかが はっきりしないと選べないという状況に また、実装直後はよくても機能追加しようとしたときに躓くとかもよくあること
SWTはどっちかというと見てくれ重視(他のアプリケーションとの共通性)が主体ではないかなあ。
Swingも5.0からSystemLAFパワーアップしたからなぁ 久しぶりに1.4系のSystemLAFみたらヒドス
830 :
デフォルトの名無しさん :2006/02/07(火) 00:36:45
結論: Swingが良くなった現在、SWTの存在価値はEclipseの実行に必要だから、のみ。
Eclipseが使ってるライブラリのみ価値がある これってかなり前から言われてたのとかわってねーな SwingもJava2Dの高速化の恩恵もろに受けたしね 1.4.1からSSEとかDirectXとかガンガンつかわれてるし
いまさらSwingに移るのもなんだし、VC++へ戻るか・・・・
そっちのほうがいまさらなんでは?
せめてC#といっとけ
835 :
デフォルトの名無しさん :2006/02/07(火) 02:08:08
ここは一つ、間をとってJ#はどうか。
その間はマリアナ海溝より深い
VS2005を標準インストールしてたら友人に「うわ、スゲ!VJ#入ってるwwwwww ありえね〜。オイ!こっち来て見てみろよ。」と散々からかわれた(´・ω・`)ショボーン
J#は即座に抜くべきものです
>>813 俺たちと全裸のエクストリームプログラミングしようぜ
ラベルの上にマウスが乗ったら 詳しい説明が出るみたいなのを作りたいんだけfっどどあ
ツールチプードゾー っ□
Swingは見た目にまだ難があるんで、SWTを使ってる。 頑張っているとは思うけど、Swingはまだ違和感があるよやっぱり。 で、SWTだけど、WIN32APIを呼ぶこともできるんで、 とりあえずWindowsで動けば……くらいの時はそれで回避してしまう事もある。 後で解決法がわかったりすることもあるし。 SWT使いやすいし、完全ネイティブな見た目は魅力的だ。 なんだかんだ言いながら使ってるし便利。
ネイティブといってももはやOSはこれだから見た目はこれということはなくて Windowsの場合アプリによって見た目はばらばらだからなー Swingで違和感があるのはメニューに影がつかないくらいか
見た目ばらばらは、VSの進歩によってもたらされた気もしますけどね。 メニュ周りが随分と変わっているものが多いような気はします。 さて、これは興味からなんですがまずSwingとはわからんだろ、っていうアプリあります?
適当なLaF拾ってきて適用させれば、簡単にそういうアプリになるわけで
>>843 WindowsLAFだとメニューに影つかないのが気になるよね。
LAFによっては影ついてるから、技術的には可能なんだろうが・・・
Swingのアプリがこれでもかというくらい世にはびこれば、違和感も無くなるのだろうが。 一般人から見れば、綺麗なソフトとボクトツとしたソフトでは、綺麗なソフトが選ばれそう。
Swingがどうこうとか見た目がどうこうじゃなくて動作が標準と 違ってるのが大きいと思うな>Windows環境下のJavaGUI 例えばファイル選択ダイアログで右クリックしてもメニューが 出てこなくてコピーやペーストができないとか、スクロールバ ーがホイールに対応してないとか、何時も当たり前にできる 事ができないと印象は凄く悪い。
ホイールが動かないっていつのVMですか まぁ確かにダイアログはがんばって似せてるけどまだ違和感あるね ネイティブダイアログだしたかったらAWTよんでもいいけど でもLAFによって動作ちゃんと変わるのはすごいよ ALTおすとメニューにカーソルが行くとかはWindowsLAFだけだし ボタンの上でリターンキーで実行されるのもWindowsLAFだとか ようは何種類もOS作ってるようなもんだからなぁ スクロールに関してはOSネイティブの実装よりSwingの実装のほうがすぐれてるけよね
>>847 つうことは、Swingが選ばれるってこと?
TabFolderやCTabFolderなんかでドラッグしてタブの入れ替えをやりたい エクリプスの動作だとタブ入れ替えだけじゃなくてウィンドウの分割や結合までやっててスゲェ どうやってんだろ?
>>850 どうやったらそういう読み取り方が出来るんだ
>>853 「朴訥と」ってより、かなり凝りまくりな感じ。
昔のSystem8 (macな) であったDrawingだっけか、アレを思い出した。
まー嫌いじゃない、ってかこういうの好きなんだけど。
856 :
844 :2006/02/08(水) 22:09:51
>>855 ありがとうございます。
……格好いいですね。まさにクール。
Swingをかなり見直しました。
まずはじめにSwingファイルダイアログなどがかなり違った動作をするので敬遠していたところもあるのですが、
こうした見た目が自由に設定できるのはやはり良いですね。
SWTが一段落したらSwingにもはまってみたいと思います。
なんかこのスレ見てたらSWTを捨てた方が良い気がしてきた よ〜し、パパ、Swingに回帰しちゃうぞ〜
昨日電車に乗って座ってたら隣のおっさんが突然立ち上がって 「アスランザラ、ジャスティス発進する!!」とか 大声で叫びながらドアに突進していった。 その3日後におっさんは死んだ。 俺は・・また何もできなかったんだ。
9日の昨日の三日後ていうと今日のことかしらん。 おっさんに合掌 それはそうと、なんか最近XULに目覚めた。 またSWTとは縁遠くなるなぁ。
そういえば、半年前にEclipseのプラグイン作って以来、SWTとは縁遠いな
半年ならまだましなほう 2.0用につくるぜぇーとがんばっていた人元気かな 3.0でずたぼろになったからな
Eclipseのプラグインは、一度作ってもバージョンが変わるたびに手直しが アレでは開発者のモチベーションは上がらないよな
今まではEclipseだけで完結してたんだけれども RCPとかフレームワークだぜーって感じで幅利かせてるんで 今後互換性のない拡張したらさすがにみんな引くと思う 特に業務系なんて何年もメンテしないといけないのに
おっきなGIF画像を読み込んで、32×32の小さなGIF画像の配列に したいんだけど、いい方法ない? 32×32のImage作って、GC取ってきてdrawImage()したら パレットデータと透過色がなくなった _/ ̄|○
普通にImageIOとBufferedImage使ったほうがよさげ。
867 :
デフォルトの名無しさん :2006/02/22(水) 21:26:50
仕様も何もそのままじゃん。
いやだったら日本語資料の多いJava2Dつかえばいいだけ
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なり処理すること。画像処理スレねただが。
871 :
デフォルトの名無しさん :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]; } }
872 :
デフォルトの名無しさん :2006/03/08(水) 22:15:40
SWTで、スタイルシートでいう style.display=noneのように、 領域を残さずボタンを消したいのですが、うまくできません。 申し訳ありませんが、どなたか教えてくださいm(__)m
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
mzujHGfPXnmL
875 :
デフォルトの名無しさん :2006/04/07(金) 20:16:43
あげ
何故上げるのだ・・
正直旬は過ぎたな
旬なんてあったっけ?
Eclipse2.0がでたときだな GUIはSWTになるってどこの雑誌も持ち上げてたころ 現状はSwingの速度が問題にならなくなってかわりにJNIの速度がネックに 機能的にSWTはSwingにはるかにおよばず(こちらは昔から) JFaceが必須になって素のSWTとどっちもおってるとわりとめちゃくちゃに そもそもSWTの設計ヒドス Javaの開発者いなかったんじゃないかなとおもた Windows以外のGUIを考慮するとSWTはバグやら速度的にメリットがなかったしねぇ
でもWindowsでGUIならSWTなんでしょ?
JavaならもはやWindowsでもSwingだろ?
なんでこのスレみんな悲観的なの?
悲観的になってるわけじゃないけど、 SWTよりもSwingの方が勢いがあるのを感じるよね
NetBeans5おとしてきてJFrameの作成やってみればありがたみがよくわかる。 JavaSE6でグループレイアウト標準になるの確定したしね。
>>879 >機能的にSWTはSwingにはるかにおよばず
そうなの?
SwingでWindowsのツールバーにアイコン表示とかできる?
Swingは見た目が糞すぎるからどうにも使う気にならないんだけど
Swingじゃ「Windowsもどき」のレベルでしかないからな。 でもそこにこだわるんならJAVAである必要も無くなるような。
ツールバーにアイコンはもう8年位前から晴れたと思うけど?
JFaceの **Provider は、Swingの **Model より遥かに使いやすいんだけど。 俺以外の誰か、あのへんのフレームワークをSwingに移植しないかな。
何かこのスレに久々にレスがあって嬉しい
891 :
デフォルトの名無しさん :2006/04/09(日) 11:02:01
JTable >>>>>>>>>>>>>>>>>>> Table の差が大き過ぎ
TextAreaの任意の一行のみをString型に格納したい場合どうすればいいですか?
ふむ
>>872 亀レスなんだが
Control#setVisible(false) じゃ駄目?
896 :
デフォルトの名無しさん :2006/05/08(月) 02:12:29
898 :
デフォルトの名無しさん :2006/05/16(火) 00:45:05
eclipse3.2 の RC 触ってたら、3.1よりさらに軽くなっていてもうびっくり。 swtにも未来はあると思った。
実はプラグインあまりいれてないというオチだったりして Eclipseはプラグイン入れないと3.1でも軽いからね 3.0はなかったことに・・・
プラグインには、良いプラグイン、悪いプラグイン、そしてどうでもいいプラグインが存在します。 とても良いプラグインでも、関係ないことしかしてないときは、どうでもいいプラグインです。 だから、構成の管理でoffにしておきましょう。大丈夫。使いたいときはonにするだけでいいんですから。 と、これをやらずにプラグイン入れたら重い、というのはどうかなあ。
何か、新しいマシンに変えたら軽くなっていてもうびっくり。 SWTにも未来はあると思った。 netbeansも速くなったけどな。CoreDuoマンセー
>>900 そこまで面倒なことをするなら、NetBeansでいいじゃないか。
>>901 マシンパワーあるならなおのことNetBeans楽でねーか?
ほぼpureなJavaアプリだからチューニングはいつものとおりだし
いいなぁそのメモリ 暇なときにぽちっとFullGCできるのもなんとなく気分がいいよな CoreDuoだとパラレルGC設定することによってがくっとはいるFullGCとかふせげるからいい NetBeansはPenM2.2GHzよりCoreDuo1.66GHzのほうがはるかに快適
>>904 つうか、そのLAFがメモリくうんじゃねぇ?
残念ながらEclipseより食わない
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
激しく乙
>>908 乙彼。使い勝手も考慮すると、VEをなんとかしろって感じだね。
現状VE以外のGUIエディタで何かいいのある?
>>911 NetBeans。
じゃなくて、Eclipseプラグインの範囲でってこと?
GUIやるのにEclipse使うのが悪いってところはあるからな。
916 :
デフォルトの名無しさん :2006/05/31(水) 21:56:16
look and feelもいいが、
あの馬鹿でかいJREをなんとかしてくれ
>>917
ごめんこうむる。
何を今更。 あんなもの誤差だよ誤差。 ・・・でも昔のJREは数MBだったことを考えると・・・・・デブになった??
browserクラス使って表示したWebページからモーダルダイアログ開くと CPU使用率が100%になるんですけど、なんでなんでしょう?
920 :
デフォルトの名無しさん :2006/06/09(金) 18:23:25
Wa boel is da hiere?
日本語でおk
922 :
デフォルトの名無しさん :2006/07/04(火) 21:09:35
時給1000円でJava教えてくださるかたを募集します 場所 所沢(池袋・高田馬場から直通) i−want−to−study−java@hotmail.co.jp (アドレスは全角で書いてあるので半角に直してください) よろしくおねがいします
コンビニのバイトより安いですが、よろしくお願いします。
え?このマルチ本気だったの?
SWTで非矩形ウィンドウは作れるみたいだけど、更に半透明にしたウィンドウを出すのは無理だよね? Yahoo Widget Engineみたいに透過PNGをそのままデスクトップに出したいんだけど・・・クロスプラットフォームを考えたとき、一番いい解決法って何だろう。
>>925 YahooにMacやLinux用のWidget実行環境・開発ツールを作成してもらう。
927 :
デフォルトの名無しさん :2006/07/08(土) 10:09:51
そんな非現実的な。コードの変更もままならないし
それぞれの環境用にJINIで書いてクラスライブラリでラップ。
>>928 うーん、それしかないんかねぇ。一番やりたくなかったんだが・・・
930 :
デフォルトの名無しさん :2006/07/08(土) 14:45:59
>>922 時給2000円くらいだったらマジで教えてもいいんだけどな
932 :
931 :2006/07/08(土) 17:11:57
2chで人募集するような業者にまともなのはいないな。 会ったりなんかしたら二度と帰れない可能性が高い。
934 :
デフォルトの名無しさん :2006/07/10(月) 19:27:13
高速なのかい?
>>933 1人時給10円でいいからっていって
100人ぐらいで教えにいくってどうだろう?
936 :
デフォルトの名無しさん :2006/07/14(金) 02:24:33
ComboとかCComboって、アイコン貼れないのか……('A`)
つSwing
結局それか・・
SWTのコンポーネントモデルってMFCを参考にしたもの? VCLを参考にして欲しかった。
SWTはIBM VisualAge Smalltalkの次世代GUIコンポーネントが元じゃなかったかな、 組み込みにも使えて、プラットフォーム固有の機能を使えることを目指した奴。
942 :
デフォルトの名無しさん :2006/07/17(月) 20:52:22
時給1000円でJava教えてくださるかたを募集します 場所 所沢(池袋・高田馬場から直通) よろしくおねがいします i−want−to−study−java@hotmail.co.jp 教える対象は超初心者です。 専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です
i-dont-want-to-teach-java
基本的な質問でスマソ。 SWTのマウスイベント等は AWTのconsumeみたいな感じで無効化したりできるの? ちょっと調べたけど、 やりかたわからんかった・・・orz
e.doit = false だったかな。確かこんな感じで無効化できたはず。
948 :
946 :2006/08/04(金) 09:39:29
>947 レスありがとうございます! セレクションイベント等は その方法で行けそうなんですが マウスイベントはdoitフィールドが 見当たらないんですよね… 見方が悪いのでしょうか(*´д`*)
クリックを無効にしたいとかはロジックで何とかなるんじゃない?
950 :
946 :2006/08/04(金) 12:30:20
>949 例えば、Tree部品で ある条件のときだけ マウスクリックによるノードの展開を抑止したい… みたいなことをやろうとしたら ロジックでどうにかなったりしちゃいます? 最終結果だけを合わせるような 処理なら書けそうな気はしますが ちらついたりしていまいちだし なんかAWTみたいに楽な方法はないかと思った訳です…
>>950 ああ、そういうのをしようと思うと難しいね。
その条件の時だけ子を消すとかするとツリーの再描画があってちらつきそうだしなぁ。
俺の場合は、さらにWindowsとLinuxだとマウスイベントの発生するタイミングが違ったりで苦労したな・・・。
Treeを展開するときにWindowsはマウスイベント発生してから展開されるけど、Linuxは展開された後にイベント発生したりするし。
そのときはさすがにSWTダメじゃん!と思ったよ。
SWTで書いたのはかなり前なんで、細かいことは忘れたが・・・ MouseEventやSelectionEventの時点でイベントの流れを止めると、選択できなくなるけどいいのか? 展開を抑止したいんならTree側の処理だろうし、そもそも展開できないものを Treeとして表示するのもヘンテコなUIだと思う。 コンポーネントはTreeのままで、表示方法は変更するにしろ、 そういった処理はTreeとかTreeItemでやるのが筋では。 でもSWTって継承できないから、ちょっと手間かかるけどねー
953 :
952 :2006/08/04(金) 13:28:12
・・・って、SelectionEventは選択後に発生するよな。 失礼。 LinuxのSWTって触ったことなかったけど、触んなくて良かった
特定の TreeItem だけ disable にできたらそれで代用できそう。
955 :
946 :2006/08/08(火) 09:35:21
遅レスすまそ… 確かにUI的には変だと思います。。 これはこちらの作りが悪いのかもしれませんが 以下の問題が発生してるための 回避として調査してました 1.ツリーの一部のセルをマウスダウントリガでcomboにする 2.comboにフォーカスがある状態でツリーの展開しようとする 3.TreeEditorでヌルポ発生 同様な実装をTextでやっても問題は発生しません… もしかしたらdisposeのタイミングが悪いのかも知れませんけどねー ちょっとjface等調べて試してみようと思います ちなみに、Treeって一部のノードだけを 使用不可にしたりチェックスタイルやめたり できませんよね? なんか痒いとこに手が届かない 歯がゆいコンポーネントですよね…
>955 Combo が focusLost したときに、TreeEditor を閉じれば解決できるかも。
957 :
デフォルトの名無しさん :2006/08/20(日) 19:47:44
SWTonMacって出ない?
Shellを作った時に自動で付いてくる[×]ボタンを別の処理に置き換えることはできないでしょうか?(例えばsetVisible(false)とか) もう1つ質問 JFaceで作成したメニューバーやツールバーの表示・非表示を切り替えることはできないでしょうか? setVisible()だけだと領域が残るので…
ちょっと質問です。 Treeに対してTreeColumnを使用した場合、 スタイルにSWT.FULL_SELECTIONを指定しないと、 マウスイベント発生時に Tree#getItem(Point) でTreeItemがとれません。。。 これは仕様なんでしょうか? やりたいことは以下のことです。 ・SWT.FULL_SELECTIONでないTreeで複数桁表示する。 ・1以上のカラムをマウス押下された場合、 0カラム目のノードを選択状態にする。 なにかうまい方法があればよいのですが・・・ 情報ありましたらアドバイスお願いします。
質問です。 JavaGUIプログラミングSWT編というテキストに載っていた MemoPadというソフトをちょっと変更して作ってみて、 Eclipse上で動かすと、ウインドウを閉じるとプロセスも終了 するのですが、JavaWebStartで配布したものだとプロセスが 終了してくれません。これはなぜなのでしょうか? ちなみに、JavaWebStartで配布したものも、メニューの 「ファイル」→「閉じる」からだとプロセスが終了します。
>958 ×ボタン云々については、こんな感じでshellClosedのイベントを 実装すればできるかと。 sShell.addShellListener(new ShellAdapter() { public void shellClosed(ShellEvent e) { e.doit = false; sShell.setVisible(false); } }
移動しているウインドウをクリックで止めるという プログラムをSWTで練習の意味で作ってるんだけど 移動中にマウスクリックイベントが拾えない。 shellのsetLocationとupdateで1ドットずつずらしながら 移動してるんだけど、なんか間違ってる?
963 :
962 :2006/09/09(土) 00:18:04
事故解決した。 めんどくせぇ・・・
えと、Tabを使ったソフト作ろうとしているんですが、 どんどんTabを追加して開いていくというのはどうすればできるのでしょうか?
964です。自己解決しますた。
966 :
デフォルトの名無しさん :2006/09/13(水) 22:27:06
SWTでテキストボックスとかの「デフォルトフォント」を取得する方法はありますか? テキストボックスをnewしないで。
デフォルトフォントはDisplayクラスから引っ張ってるみたいだから、 display.getSystemFont ().handle; とかで引けるんじゃないかな。
968 :
デフォルトの名無しさん :2006/09/13(水) 22:52:28
OKありがと!ちょい調べてみます!
Java2Dとの組み合わせで詳しいサイトきぼんぬ。 あそこは読みづらいんだよねぇ
あそことは何か。 不明瞭な発言は止めよ。
グレートブルーの識別信号がゲルドルバの線上で確認されたのですが、どうも……
972 :
デフォルトの名無しさん :2006/09/17(日) 23:33:32
age();
974 :
デフォルトの名無しさん :2006/09/24(日) 14:02:37
TextからfocusOutさせない方法知らない? TraverseListenerだとTabイベントだと制御できるけど、マウスでの移動に 対応できない。???
975 :
デフォルトの名無しさん :2006/09/24(日) 17:30:50
>969 基本的にSWTとJava2D(=AWT)は別物だから使えないよ。 dWみたいに画像転送するぐらいしか。
>>974 display#setFilter()つかってFocusInイベントを捕まえて
目的のwidget以外だったら目的のwidgetにsetFocusしなおす。
でもそもそも目的以外のwidget全てをsetEnable(false)なり
setEditable(false)なりして、フォーカスをあてたり編集
したりする操作ができないことをユーザに対して示しておく
べきだと思う。見た目上出来るはずなのに実際は出来ないってのはおかしいよね。
Eclipseでプロジェクト作って つっこんでさー実行させたら java.lang.UnsatisfiedLinkError: no swt-win32-3232 in java.library.path ってでるんだけど。。 ググっても微妙だったんで、他にもなった事ある人います?? The SWT FAQみてもちょっとわからんかったんで。 Eclipse SDK3.1.1 Win2k Java1.4
それはさー、かんたんじゃん。入門の最初にかいてるじゃん。 でもさ、環境移動したら忘れるよね。 だからおれはPJの設定で指定してるさ
979 :
977 :2006/09/27(水) 17:22:36
>>978 Dllのpathを環境設定すりゃいいのかー
980 :
977 :2006/09/27(水) 17:28:21
なるべっっっっっっっっく辛気臭いコマンドラインじゃなくて Eclipseで開発してぇええええええんで。 がんばろう
981 :
977 :
2006/09/27(水) 18:06:02 お父さん聞いてよ ワークスペースにswt-win32-3232.dll入れたら動いたYo! おさわがせしますた。