Java 高速GUI SWT 2

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2デフォルトの名無しさん:03/11/09 12:52
SWTなんぞ役に立たんわい
3デフォルトの名無しさん:03/11/09 12:52
関連スレ

Java低速GUI Swing
http://pc2.2ch.net/test/read.cgi/tech/1062271447/
4デフォルトの名無しさん:03/11/09 12:55
Swingも糞。
こんなの使う暇があるならVBのほうがまし。
>>1
6デフォルトの名無しさん:03/11/15 09:40
age
7デフォルトの名無しさん:03/11/15 10:15
JavaのGUI自体がマイナーなんだから、参考資料くらい出してくれろ

SWTサンプル集
http://www3.vis.ne.jp/~asaki/java/eclipse/swt.html
このすれ、待ってたよー。
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
SWTFanclub
http://www.mobster.jp/wiki/index.jsp?pid=SwtFanclub

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

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

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

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

JFaceの情報がホスィ・・・
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をみて、成功された方、情報をお願いします。。。
1311:03/11/15 21:53
関係ないかもしれないけど、gcj でWin32ネイティブ作りたいならこっちをどうぞ・・・
http://page.freett.com/gikob/gcj/gcjswt.html

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

でも、8M。。。。。
swt.o 自体が7Mあるからしょうがないんですね。
15デフォルトの名無しさん:03/11/22 19:22
ネイティブなクロスプラットフォームGUIアプリケーションを作成する (再考)
http://www-6.ibm.com/jp/developerworks/java/030711/j_j-nativegui2.html
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
>>26
一匹目。
なんでもいいが、とりあえず金かけずに、プログラム作ってるなぁ
っていう雰囲気を味わいたいだけなんだよ。
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
>>31
多くの人間は「ソート」と読む。
>>32 読まねーよ。
そもそも何の略なんだか。
>>34
Sun Wa Tsukaene-
ぬるぽ。
37 :03/12/03 19:33
SWTとC#でつくるGUIはどっちが反応速度とか快適なの?
>>31 スワットだろ
39デフォルトの名無しさん:03/12/04 19:24
>>29
もちついてゆっくりサンプル等まじえつつ順を追って用語の不適切な省略や自分用語を使わずに説明してみそ。
個人的にはNullPointerExceptionならなんらかのコーディングミスっぽいと思うのだが。
ttp://www3.vis.ne.jp/~asaki/java/eclipse/swt.html#thread
とかも見た?
>>37
C#
41 :03/12/04 23:43
>>40
ありがとう。
でも金ないしJavaの本なら最新のが図書館でたくさん借りられるし
オープンソースのプログラムがたくさんあるからJava勉強するつもりだけど。
Eclipseにも感動したし。
いつかEclipseのソースを読んでみたい。
でもC#も魅力的だな。
4229:03/12/04 23:45
>>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
とのことなのでまだまだなのかな?
だれか試した香具師おる?
46 :03/12/05 12:51
>>43
サーバサイド技術に関心はないんだけど
いつか自分で(アウトライン)エディタを作ってみたいなと思ってて
Eclipseに感動したんです。
既存のEDITコンポーネントを貼り付けただけのじゃなくて
バッファの管理からテキスト出力まで自分で作って
補完や自動インデントや構文を認識してのアシスト機能のあるやつが夢です。
だからGUI以上に内部の構造やアルゴリズムにも興味があるんです。

でもC#の方が言語的にもGUI構築にもいいって聞いたので
ちょっと気になって質問してみたんです。
どうもありがとうございました。
47デフォルトの名無しさん:03/12/06 00:28
>>46
ぜひ、Eclipse のプラグインで作ってくれ。
巨大ソフトの八苦を夢見てプログラムの勉強を始めたって香具師で
その頂上を極めたと言う話は聞いたことがない。
せいぜいある程度使えるようになった段階で自分の無力さを痛感して
厨房なアルゴリズムで『自作』を前面に出してくるのが関の山。
>>48
それだったら最初から妙な野心など捨ててしまって、
一番向いている言語から手を出して、
出来る範囲で試行錯誤すればいいだろ。
昔なんかそれが問答無用でBASICだったんだぞ。
>>49
は?最初からそのつもりですが何か?
>>48
最近は『自作』だと厨房の戯言として無視されると気付いたらしく
みんなで作っているかのような共同体幻想を背景に『和製』と名乗るのが通
『国産』よりも『和製』、それが通
>>51
通じゃなくて厨の間違いだろ(ゲラ
国産牛より和牛、ってか?
55 :03/12/20 21:32
みんな使ってないの?
56デフォルトの名無しさん:03/12/21 00:06
結局、SWTってのはどうなの?芽が出そう?
>>57
だめぽ。
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
という大事なクラスらしいので、
将来ぬるぽが出ないように、ちゃんと引数に渡すが吉。
7471:03/12/23 13:42
ふむ、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
>>77

本にするほどの書くこと無い
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
>> 81
ttp://download2.eclipse.org/downloads/drops/S-3.0M6-200312182000/eclipse-news-part1-M6.html

3.0M6落とすの面倒なんで,試してはいないけど...
The Definitive Guide to Swt and Jface

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

発売されるのは今年の4月らしいけど期待。
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 してやればいいんでないの
8684:04/01/25 19:33
レスさんくすです。

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

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

ちなみに俺はよく「abstract」を「abstruct」と書き間違えるぞ
>>94 は警告レベル高過ぎないか。
×じゃなくて△程度にしとけよ。
>>96

ちなみにabstractは全部左手だからちょっと打つのうざい。
a[Ctrl+Space]
>>99
(・∀・)
保守sage あまり使ってる人いないのかねぇ、、、淋しいよ。
SWT Tips and Samples - Java + SWT でスタンドアローンアプリケーション開発
http://cjasmin.fc2web.com/
↑素敵
Eclipse3.0でのSWT/JFaceの変更点がまとまっているサイトって、
どこかにありませんか? 英語でもいいです。
>>104
実際にどういう変更があったかは各milestoneのNew and Noteworthyを見る。
最終的にどういうことが予定されているかはそれぞれの3.0planを見る。
>>105
やはりそうでつか……。がんがって読みます。
>>106
ttp://download2.eclipse.org/downloads/drops/S-3.0M6-200312182000/index.php
ここからSWT Binary and Sourceを落として自分で解析するっていうのはだめかい?
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を表示する>
    }
  });
}

みたいに書けばいいんでは? 見当違いのこと言ってたらすまんです。
つーか、Swingでも
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/SwingUtilities.html#invokeLater(java.lang.Runnable)
しなきゃいけないパターンじゃないか?
>>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 );
   }
 }
113109:04/02/05 20:06
自分で動作を確認した訳じゃないんだけど,ぱっと見た感じではこんな感じのコードでも
動きそうな気がするんだけど,これだと何か問題があるんでしたっけ?

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を付けた
ローカル変数の参照の方です。
>>111 そもそも元のSwingのコードのほうだけど、
JLabel#setTextって非AWTスレッドから呼んでいいわけ?
ttp://www-6.ibm.com/jp/developerworks/java/010427/j_j-thread.html#7
115108:04/02/05 20:20
>>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でやっています。

おねがいします。
>>130
違うか?
>>132
バージョンは? 3.0系だとM6あたりまでは
https://bugs.eclipse.org/bugs/show_bug.cgi?id=45149
が存在する。
>>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普及させて下ちい
>>140
確かにそんな感じかもね。
>>139
試してみりゃわかる
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で設定するみたい。
147144:04/02/12 23:16
>145
> 同一人物かどうかわからんけど、まとめると
同一人物ではありませぬ。

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

>146
今MenuItemのソースを見てるんですが・・・
やろうとしてることが実は結構難しいことがわかりますた。
方向性を変えて、「CTRL+A」という文字列を返す方法を探します・・・
148145:04/02/12 23:46
そう? うちだとこんなコードで 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();
}
}
149144:04/02/13 00:06
>148
うーん、ソースをコピペしてやりましたが、結果はさっきと同じです。
ちなみにこちらの環境はWinXP & JDK1.4.2 & eclipse2.1.1です。
なんでだろ?
150148:04/02/13 00:19
ああ、うちは3.0M6 + JRE1.4.2_03 + Win2Kだった。
#開発はR2.1.2上でやってるけど、SWTライブラリは3.0M6。
bugzilla見てみるかな。
151148:04/02/13 00:50
このあたりが参考になるのかな。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=35210
確かにR2.1.xだと上のコードだと駄目だけど、
public void keyPressed(KeyEvent e) {
if (e.character == 1){
System.err.println("^a");
}
だと^aが表示されるな。}
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
これができることが全然わかってませんでした。
157144:04/02/14 02:20
>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チェックしないと
あかんよ。
159148=158:04/02/14 10:54
>>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).
160144:04/02/14 15:42
>158-159
たびたびありがd。
今作ってるのは趣味と実益を兼ねた実験ツールなんで多少のbugも無問題でつ。
あと、エディタ部分にはText系のウィジェットは使わず自前で描画しとります。
161デフォルトの名無しさん:04/02/14 21:51
すいません。SWTとあんまり関係ないかもしれないのですが、

ツールバーやツリービューなどのアイコンの背景を透明にするには
どのようにしたらよいのでしょうか?
>>161
PNG だとダメだったよーな気がする。(ググれば何か見つかると思われ)
GIF に変換してみたら直らないかな?
163161:04/02/17 16:48
いろいろ試してみましたが、透過色設定PNGでできました。
164162:04/02/17 16:53
>>163
ありゃ、マジっすか。スマソ
>>161
もしよかったらでいいんだけど、
どのようにしたら出来たのかを書くか、ポインタを示してくれると
助かる。
166162:04/02/17 18:23
やった方法は
MS-PAINTでビットマップ作成。
shin's PNG Editerというソフトで透過色を設定 <-よくわからないができないこともある。
pngで保存して、あとはnew Image()で読み込んだだけです。
プログラム的な問題より、透過色付きPNGを作る方が面倒かも。
そんな時にLinuxでもWindowsでも使えるGIMPが役に立つ。
169165:04/02/18 02:37
>>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を忘れないでね.
>>171
ワラタ
ファイナライザで自動的にdisposeしてくれないの?
してくれるけど、それはあくまでフェイルセーフなので。
ちと質問です。
StyledTextで日本語入力するとおかしなことになりませんか?
なんとか日本語の処理を横取りしようといろんなListenerを使いましたが、駄目でした。
java.awt.imパッケージのInputMethodを使うのかと思いましたが、
これまた解決法がわかりません。SWTで日本語はあきらめれってことですか?
>>177
Win2k,SWT_2.1.2,Java -version 1.4.2,日本語IMEでデフォルトのままで問題なし。
環境は何ですか?
179177:04/02/21 10:00
>>178
異常なしですか?こちらはWinXP、JDK1.4.2、eclipse2.1.1です。
ちなみに別マシン(Win2kで後は上記と同じ)でも同様の症状でした。

症状は半角文字や確定後の文字と、変換中の文字の大きさが違うことです。
180178:04/02/21 10:27
そう言われてみれば確かにそんな症状は出てる・・・
回避策かどうかわからないけど、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
そんなんだけ出されても…
>>183
スタックトレースあるなら出せ。
オマエには理解できなくても、エロい人なら理解できるかもしれん。
スタック*と*レースを晒されてもなぁ・・・
エロイしとも困るんでは?
つまんね。
>>186
寒いってよく言われるだろ。
あのひと,暑苦しいよね〜って陰口ならよく叩かれるよ。
余り盛り上がってないね
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)
はダメ?
194192:04/03/02 01:12
>>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つのウィンドウの中で
動的にボタンが増えたり減ったりするのは
ユーザビリティ的に一考の余地があるかもしれない.
196192:04/03/02 22:15
>195
> Composite sash = button.getParent();
> button.setParent(sash.getParent());
> sash.dispose();
これはいい線いってるんだけど、SashFormのlayoutを呼ぶことができない・・・
Buttonがdisposeされ終わらないと後が残る or SWTException・・・

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

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

なんでSashFormのlayoutを呼ぶのだろう.
消したいんじゃないのだろうか.
198192:04/03/02 22:32
>>197
ああ、まちがい。SashFormのParentでつ・・・
199
200195:04/03/04 22:57
>>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.
SWTで編集可能なTable作ってるんですが、これが標準的な方法ですか?
ttp://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/snippits/snippet124.html
Swingと比べるとローレベルな面で面倒なんですが。
TableModel実装しなくていいのは楽でいいんですけどね。
>>204
スタブ書くのがまんどくさい……

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

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

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

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

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

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

環境はWinXP + Eclipse2.1.3 + LanguagePack2.1.2
あれたぶんプラグインクラスローダ使ってクラスロードしないと
駄目なんじゃないかなあ。試してないからわからないけど。
215213:04/03/24 23:10
( ゚д゚)Σ マジデ・・・
仕方ない、こうなれば文字だけ変えたサブクラスを作るか。
マンドクセ
216206:04/03/25 10:18
>211
なるほど。申し訳ないけどサンプルがあるわけじゃないっす。

http://www.atmarkit.co.jp/fjava/column/andoh/andoh19.html
↑とか本とかにも明示的にdisposeしないとって見かけたので単品ずつ消さないとマズイのかなと思ってました。
もちろん親を必要としないImage,Color,Fontなんかはdisposeしてるけど。
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みたいな感じ?
224213:04/04/01 00:01
その後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;
}

とすることでほぼ意図した通りになった。
しかしキャンセルボタンだけはぬるぽで落ちる。何故だ・・・誰かタスケレ・・・
225213:04/04/01 00:35
自己解決。
キャンセルボタンだけ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のメリットが・・・
厨な>>226は放置ってことで・・・
229226:04/04/01 21:47
私は228の定義により厨に分類されるためか、226の方法によって失われる
「Javaのメリット」がさっぱりわかりません。
だれか解説してくれませんか?
>>226
そうやってムキになるところが厨だと言われるのだと・・・
231226:04/04/01 22:05
いや、だって気になるじゃない。
実は今まで自分がやってきた方法はいい方法ではなかった、
もっといい方法がある、なんて言われると。
つか、RCPだろ。
eclipseのヘルプ (help->help contents)のようなヘルプウインドウって
なんかライブラリがあるのでしょうか?

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

>>227
漏れも気になります。
>>234
寝れ。
どこかにViewFormの使い方解説してるサイトないですか?
eclipse風のかっこいいデザインのアプリを作りたいと思ったんだけど,
自力であれこれやってもeclipseのビューそっくりにならないよ・・・。
googleで検索してもヒットしない・・・。(´Д⊂
237デフォルトの名無しさん:04/04/07 20:16
英語嫁
238236:04/04/07 20:39
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何タラとか
241236:04/04/09 23:59
結局ViewFormのレイアウト処理やボーダーの描画処理やらを書き換えて
改造ViewFormを作るという無茶をしてしまいますた。

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

かっちょいいじゃん。
SWTでGraphics2D使えないですか?
単に半透明とか、グラデーションとかの描画をしたいだけなんですが。
244z11.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
でデフォルトのポップアップメニューを殺してるっぽい

他のウィジェットと同じように開発者がメニュー作れってことではないかと
247244:04/04/22 05:35
>>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に入れ替えてみたら?
俺はそれで出来た。
>>251
compreg.dat があるのは
/usr/lib/mozilla-1.4.1/compnents
で、そこをLD_LIBRARY_PATHを指定したが、やはりだめだった

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

http://www.scottbolander.com/mozilla-xft.html
にあるコンパイル済みのやつでやってみたんだが、結果は変わらず・・・
>>253
>Mozillaがインスコされてないって怒られる
って一体誰に怒られてんだ?
エラーメッセージ書くのは質問者の最低限の仕事じゃないかい?
255252:04/05/01 14:47
>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パッケージ管理
え?
http://www.senun.com/Left/Programming/Java_old/Examples_swing/JTableExamples1.html
の一番上みたいなことがやりたいんだが…無理?
>>258
1 CompositeのレイアウトにFormLayoutを指定します。
2 Composite上部にLabelを並べてヘッダを作ります。
3 Composite下部にヘッダを不可視にしたTableを表示します。

2の処理次第でどんなヘッダでも作れます。
260デフォルトの名無しさん:04/05/08 02:05
>>259
決め打ちかよ…。
261259:04/05/08 12:44
>>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の方がまだマシ。
>>262
そーゆー話題は以下のスレでどーぞ。
http://pc5.2ch.net/test/read.cgi/tech/1082151386/l50
264デフォルトの名無しさん:04/05/08 21:32
結論:Swing >>>>>> AWT > SWT
Eclipseスレで話がでてたが、EclipseのGUIエディットソフトの
VisualEditorでSWT対応版が出たようだ。

【Java/C/他】統合開発環境Eclipse M11
http://pc5.2ch.net/test/read.cgi/tech/1076074293/l50
質問

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もだよ
>>278
そういう意味かどうか聞いてるんだ。
変な講釈垂れてないで答えろや
281デフォルトの名無しさん:04/05/14 21:04
>>280
答えてクン、うざい。
>>281
答えに窮するとすぐに「うざい」だの「スレ違い」だの言うのはカス
>>282
教えてクンの逆切れ、カコワルイ。
284デフォルトの名無しさん:04/05/17 01:42
CoolBarの中のCoolItemを移動して、行数?が増えると
コンポーネントの表示がおかしくなるのですが、どのようにすれば対処できるのでしょうか?

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

どなたかご存知の方がいらしたらご教授下さい。
287228:04/05/19 12:39
失礼しました、TableItemにImageを入れた場合のみ縦サイズが変化するでした。
よろしくお願いします。
なら透明な画像を使えばサイズが変えられるんじゃないの?
正しいやり方(そもそもできるのかどうか)は知らん。
289288:04/05/20 10:01
>>290
そうなんです、それは出来たのですがそれ以外の方法でサイズは変えられないかなと。
方法が見つからなそうなのでそれでいこうかと思っています。
290デフォルトの名無しさん:04/06/03 11:57
VE1.0ってRC1でできる?
>>290
VE1.0M1はM9以降のbuildでは動かない。
先月末のVEチームリーダーの話では、「M9以降に対応させるにはコードを
ちょっといじる必要があって、もちろんそのうちやるけど日時ははっきり
してない。数ヶ月ということはないけど、数週間のうちくらい?」って
ことらしい。
JFaceよくわかんねぇ
293デフォルトの名無しさん:04/06/03 21:53
>>291
やっぱそうでしたか。
どうも。
294デフォルトの名無しさん:04/06/06 11:33
Browserウィジェットで右クリックってどうやるんですか?
なんか最近有効になったらしいけど。
295デフォルトの名無しさん:04/06/06 12:33
動的にTabItemを追加することは出来ないですか?
>>295 ごく普通に出来るけど?
今やり直したら出来ました。
申し訳ないです。
298297:04/06/06 13:54
>297は295でした。
swtのモジュールって公開されていないんですか?
自己解決しますた。
301デフォルトの名無しさん:04/06/08 11:41
Eclipseスレから来ました。
ttp://pc5.2ch.net/test/read.cgi/tech/1085881936/l50
Compositeを動的に生成しても,サイズ調整がうまくいきません。
ウインドウリサイズまでFormAttachmentが無視されて
FormDataの値になってしまいます。どうしたらいいんでしょうか?
サンプルソース希望。
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
こんなHP見つけた。ガイシュツだったらスマソ
ttp://www13.plala.or.jp/observe/index.html#swt
SWT,JFace,GEFなど。最近できたらしい。
>>303 それcompositeをなぜ使いたいのかとか、
shellがリサイズしたときの挙動をどうさせたいのかとか、
前提条件がよくわからん。
306301:04/06/08 17:00
すいませんm(_ _)m
ほんとはcompositの中にいろいろなウイジェットが入ってます。
で,リサイズしたときは期待どうりの動きをするんですが
ボタンクリックやメニューでコンポジットを動的に作成すると
ウインドウをリサイズするまでFormAttachmentが無視されて
FormDataの値になってしまいます。
shellをlayout()すれば?
308301:04/06/08 18:18
うまくいきました。
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
>>310
できた!ありがと!
ところでせっかくネイティブなGUIなんだから、
JREインストールもなしで動かせないものだろうか。
ファイルコピーだけで動かないかなあ・・・
アプリ配布が激しくマンドクセ・・・
>>313
ファイルサイズがでかくなっていいなら、JREごと圧縮。
>>313
gcjでネイティブアプリ化するとか。
詳しくは別スレで。
http://pc5.2ch.net/test/read.cgi/tech/1046627795/l50
316313:04/06/19 00:39
>>314-315
レスありがd。普通のが来るとは思わんかった。

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

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

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


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


            /^l
     ,―-y'"'~"゙´  |   もさもさ
     ヽ  ´ ∀ `  ゙':
     ミ  .,/)   、/)
     ゙,   "'   ´''ミ   ハ,_,ハ
  ((  ミ       ;:'  ,:' ´∀`';
      ';      彡  :: っ ,っ
      (/~"゙''´~"U    ι''"゙''u
>>319
SWTって具体的に何に使うの?
>>320
訊ねる相手を間違えていないか?
>>320-321
激しくワロタ
323319:04/06/26 10:57
>>323
何ができるかは書いてあるけど、何に使うかは書いてないね。
ライブラリの紹介なんだから当然。
何に使うか、を思いつかない香具師には無縁。
>>325
そういう話じゃないだろ。
「何に使うの」っていう質問に対してリンクをはって、質問に答えてないといわれて開き直っただけに見える。
同一人物と思われてる?
>>327
別に思ってないけど。
それにライブラリの紹介だからそのライブラリを何に使うのか書いてなくて当然というのもおかしい。
同じ機能のライブラリ(Swing)とどう使い分けるのか、というのは有益な情報だし。
>>328
それだと「どう使い分けるのか」であって「何に使うか」の答えになってないね。
>「何に使うの」
アプリ開発、実行につかうの
>>329
なってると思うのだが。
ところで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 的には普通のテーブルとほとんど変わらないのでウマー
336332:04/06/26 21:09
>>333


>>334-335
なるほど、ありがd。
ところで>>334の記事は一年前なんで仕方ないかと・・・
337334:04/06/26 21:38
Σ(゚д゚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 固有のタスクトレイにどうアクセスするのかを
>>342-344
これか。
ttp://dev.eclipse.org/viewcvs/index.cgi/platform-swt-home/R3_0/new_and_noteworthy.html?rev=1.4#m8
ttp://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/snippits/snippet143.html
どうやってるのかはウィンドウシステム依存だろうな。
当然ながら全ての環境で使える訳じゃないんだろう。
>>345

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

って、今作ってる SWT アプリもそろそろ移行時かもしれん。
347342:04/06/27 20:30
>>342-345
さんくす。
MobTaskTray使わなくても実現できるのか。。。
まだ>>345のリンク先詳しく見てないけど、ちゃんと見てみる。
348342:04/06/27 20:45
んー。ウィンドウを最小化したらタスクトレイと
ウィンドウ最小化バー??(正式な言い方わかんない。。。)
両方でるのか。。。
タスクトレイだけにしまう方法ないのかなぁ。。。
ん?Azureusに使われコレとは違うん?
http://systray.sourceforge.net/
350342:04/06/27 21:05
>>349
おおー。なんかそれっぽいライブラリだ。ありがと。
jfaceのアプリケーションウィンドウを最小化時はタスクトレイアイコン化
したいのだけど、これでできるのかな?
できればいいのだが。
とりあえずドキュメントとか見て調べてみる。
さんくす。
351349:04/06/27 21:12
やべ、微妙な日本語になってる…
それはともかくすでに使われてたアプリができてたから
タスクトレイアイコン化は多分大丈夫。
最小化したときにタスクバーに出したくないってのと、
タスクトレイを使うってのは別の要素だよね。
タスクトレイを使うのにどの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);
 }
});
でしておけばいいと思うんだけどな。
353352:04/06/27 21:45
俺も微妙な日本語になってるな。ようするに、タスクトレイと
最小化の話はそれぞれ分けて考えようってこと。
354342:04/06/27 21:48
>>342
jfaceのApplicationWindowを継承したアプリなんだけど
最小化されたときにShellとってその処理かましても
なぜかバーから消えてくれないんだよね(TдT)

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

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

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

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

361 :04/06/28 22:51
あの,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
367366:04/07/01 02:22
/eclipse/plugins/org.eclipse.core.runtime_2.1.1/runtime.jar
をクラスパスに追加したのですがだめです。他に原因が考えられますか?
>>367 バージョンくらい先にさらしとけよ...
http://www-6.ibm.com/jp/developerworks/opensource/030328/j_os-ecgui1.html
369366:04/07/01 02:28
>>364
dlgShell = new Shell(shell, SWT.DIALOG_TRIM)
370368:04/07/01 02:39
あ、あと>>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
372366は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
>>365 >>369
どうもありがとう
JFaceのツールバーで透過pngを使う方法ってないですかね?
375デフォルトの名無しさん:04/07/06 18:10
age
>>374 うちではごく普通に使っている。
>>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
SWTで入力,編集ができるTableは標準では用意されていないんでしょうか。

ttp://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/snippits/snippet124.html
これをJFaceのTableViewerで使えるように改良することは簡単でしょうか?
>>380 JFaceはSWTを隠蔽しないからどうにでもできると思うけど、
そもそもの目的がJFaceのTableViewerで編集したいことなら
http://www.eclipse.org/articles/Article-Table-viewer/table_viewer.html
をよんどいたほうがいいね。
382デフォルトの名無しさん:04/07/07 23:36
>>381
がんばって読んでみます。
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
まぎらわしくてすみません。やりたいことは、テーブル自体の大きさの
変更です。

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

よろしくお願いします。

ついでながら、テーブルを横幅・縦幅いっぱいに設定する方法と、再
描画する方法も教えていただけると助かります。色々試してみたけど
うまくできなかったもので。
SWT超初心者です。
swtexamples.jarの入手方法が解かりません・・・
eclipseの入っているフォルダ内を探しても出てこないのですが、
ttp://www.eclipse.org/documentation/html/plugins/org.eclipse.platform.doc.isv/doc/samples/org.eclipse.swt.examples/doc-html/swt_manual_setup.htmlとか
eclipceヘルプとかではswtexamples.jarが既にPCに入っているという前提で書かれてる気が・・・
更新かけても入っていない模様なのでどなたか教えてください。
>>390
ダウンロードページの「eclipse-examples-x.x-win32.zip」(x.xはバージョン)
というファイルの中に入っているよ。
これはプラグインなので、Eclipseにインストールして使える。
392390:04/07/15 02:19
>>391
ありがとうございます。
まずは自分の持ってるeclipseSDKのダウンロードページを選択して、
そのページにあるexamplesをダウンロード、という流れだったのですね。
eclipse本体はオンラインダウンロードしたのではなく
書籍付属CD-ROMから入れたので、解りませんでした。
393384:04/07/17 10:37
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 をスクロールさせたいのです。
どうしたらスクロールさせられるのでしょうか。
398384:04/07/20 10:47
>>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が入ってるときに
どうなるかは知らないけど。
405403:04/07/21 22:30
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リファレンス見てたのに見逃してました。
ありがとうございます。
ところで皆さん、これ、面白くないですか?
ttp://rswt.sourceforge.net/
Remote AWTのSWT版、ってことでしょうか。

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

役に立つかどうかわからんけど。
418(・∀・):04/08/04 00:06
参考になる +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;
}
421414:04/08/04 00:39
名前欄にレス番号入れ忘れた・・・。
422414:04/08/04 03:12
 無茶苦茶な方法だけど,多少速く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
http://itpro.nikkeibp.co.jp/members/NBY/ITARTICLE/20040730/1/
JavaのGUIコンポーネントであるSwingは,
ルック・アンド・フィールを切り替えるための仕組みを既に備えている。
次版ではその選択肢の一つとして「OSネイティブ」を用意する。
これに対応するのはWindows XPとGTK。
将来はLonghornにも対応する
>>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
>>440
のならいいね。
まあOSの機能を使うんだから確実に軽くなるだろうな。
でなきゃ今更そんな機能付け加えないって。
しかし、LaF切り替えるだけで速くなるなら、これほど嬉しいことはないね。
もっと早くこの機能を実現していたらよかったのに。
時間がかかるからやりたくなかったんじゃないの?
SWTで尻に火がついた、と。
結果的に回り道になってしまったね。
これでSUNはずいぶんと損をしたに違いない。
いや、時間的には一番効率がよかったと思うぞ。
・とりあえずネイティブの機能を使ってしょぼいけどGUI機能を実装
→これで、GUIのない処理系になることは避けられた

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

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

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

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

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

>>406とかとおんなじ原因な気がするけど、なにが悪いのかわからんよう
>>450
swt.jarとバージョンあってる?
>>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でのやり方を教えていただけませんでしょうか。
458452:04/08/22 03:06
>>454
その値出力してみたけど
d:\j2sdk1.4.1_07\bin;.;C:\WINNT\system32;以下パス通ってる所色々
だったよ
(452では「カレントディレクトリ」が抜けてますね。)
SWTのDLLがある場所をこのプロパティに追加したらOKなのかね?
>>458 OKなのかね?ってまずそれだろ。
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-swt-home/faq.html

つーか、元々の質問がこれに追加したつもりだけどdllが見つからん
ってことじゃないかと思ってたけどね。
460458:04/08/23 22:40
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見れないけどなにこれ?サーバの調子が悪いだけ?
このサイトのトップページ見ようとしたらパスワード要求されたんだけど・・・
464460:04/08/25 00:53
>>461
いや>>459に対する返答です。
>>464 いや、だからさ、VM起動してからパス指定してどうすんねんってこと。
java.library.pathはjavaの起動オプションで-Djava.library.path=hogehoge
という感じで使う。>>459のリンク先にもそう書いてあるでしょ。
466デフォルトの名無しさん:04/08/28 04:26
>>447 なるほどわかりやすい説明だ>>447って頭いいなぁ。と3週間前にレス。
467デフォルトの名無しさん:04/08/31 11:38
質問です。既出だったらごめんなさい。
まず、似たような機能を持つメインクラスとサブクラスがあります。
それを組み合わせたものを作成したいのです。
メインクラスのボタンを押したときのイベントで別のサブクラスを開くという
処理をしたいのですが、SWTExceptionが返ってきてしまいます。
public static void main(String[] args)の中で同じことをすると
メインクラス終了時にきちんと開かれるんですが。
>>467
それだけの情報じゃよくわかりません。
現象を再現する最小限のコードとまではいわないけど
スタックトレースくらいは欲しい。
いりーがるすれっどあくせすかなつー気もするけど。
>>467
イベントの処理全般で、RuntimeExceptionが発生するとそうなる。
まずは、ボタン押下イベント内部の処理を try { } catch (Throwable t) { } で囲んでログでも出して見れ。
470464:04/09/03 01:54
>>465
失礼しました。
471デフォルトの名無しさん:04/09/12 01:14:21
既出だったら申し訳ございません。

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

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

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

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

次の課題はセルの結合。標準のメソッドには無いみたいだし、さてどうしようか…。
476デフォルトの名無しさん:04/09/18 23:44:37
477デフォルトの名無しさん:04/09/23 21:48:26
>>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
を参考に作りました。

お願いいたします。
479デフォルトの名無しさん:04/10/05 21:39:32
そこでSwingですよ。
480デフォルトの名無しさん:04/10/06 11:01:53
非矩形ウィンドウにするのって、

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に縦スクロールを設定する方法って???
483ノノ 三 ┳┳:04/10/08 21:04:40
Tableを反転させる権限を設定する方法教えてくれ。
484デフォルトの名無しさん:04/10/08 21:25:06
>483
「反転」っていうのは
Table.setBackground(Color)
Table.setForeground(Color)
でできると思うけど
「反転させる権限」って
意味がよくわかりまへん。
485デフォルトの名無しさん:04/10/13 06:00:06
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秒かかりました。
486485:04/10/13 23:21:33
自己解決しました。StyleRangeの管理をStyledTextに任せず、
独自にArrayList使って管理することで軽くなりました。
つまりこうです。StyledTextを持つクラスのインスタンス変数にArrayListを持たせて、
新しいStyleRangeを作成した時は、先にArrayListにセットするようにします。
StyledTextへの適用は、setStyleRange(StyleRange)ではなく
setStyleRanges(StyleRange[])を使い、ArrayListをtoArray()したものをStyledTextに
渡すようにしました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//ダブルバッファイメージ作成
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();
503デフォルトの名無しさん:04/11/18 02:28:21
>>502
CanvasのスタイルビットにSWT.NO_BACKGROUNDとかは入れてる?
ダブルバッファリングしてるのにちらつくというのでまず思いつくのは
自動的に行われる背景の塗りつぶしを無効化してないというものだけど・・・。

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

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

(JVMがインスコされていない環境へ、JSmoothで作成したexeの導入が可能かどうか)
508506:04/11/26 21:52:08
>>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では飛んできません。
511デフォルトの名無しさん:04/11/28 00:27:14
>>510
SashFormが直接提供している機能の中にはそういうのは無いと思うなあ・・・。
getChildren()でSashForm上に配置されているControlを取得し,その中から
Sashだけ選んでListenerをセットするとかしないとだめかも。

もしくはSashFormを使わずにCompositeとSashでSashFormみたいなクラスを
自作する・・・。
512デフォルトの名無しさん:04/11/28 00:39:03
>>511
ありがとう。
いろいろやってみます。
513デフォルトの名無しさん:04/11/28 03:26:02
区切り線を動かすとPaintEventが発生するだろうから
PaintListenerで何とかできないか?
514507: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()やってます。

517デフォルトの名無しさん:04/12/06 22:41:01
SWT イイネー

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

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


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

ちょっと右に寄せるだけなのにーとか思いつつ
しこしこnew GridData()やってます。
518デフォルトの名無しさん:04/12/07 01:00:30
SWT イイネー

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

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


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

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

誰か画像処理に詳しい人、意見求む。
520デフォルトの名無しさん:04/12/08 21:01:26
仕事で使うちょっとしたフィルタソフトなら、SWTつーか、
eclipseのプラグインとして作って使ってる。Xeon2.8GHzの
デュアル構成 + メモリ1GBでJIS-SCIDのデータを処理してる
けど、速度で困ったことはないな。ただSWTになれていないころは、
Imageなどのリソース開放を忘れるときがあってよくメモリ不足になってた。
Sleak使い始めてからメモリリークに悩まされることはなくなったけど。
521デフォルトの名無しさん:04/12/08 22:36:01
ほー、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
 
525デフォルトの名無しさん:05/01/01 21:40:49
なんだマルチか。答えるんじゃなかったな。
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のコンストラクタに投げて描画。
非常に非効率な気がする。もっとスマートな方法ない?
527デフォルトの名無しさん:05/01/02 17:47:32
>>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と同等のことが簡単にできますか?
すこし面倒な気がするのですが
529デフォルトの名無しさん:05/01/02 18:56:54
>>527

よく考えたらGCでできるんじゃん。変な苦労をしてた。
ありがと
530デフォルトの名無しさん:05/01/03 11:15:13
>>528
Shell#SetImeInputMode() で満足?
531デフォルトの名無しさん:05/01/09 02:36:29
ぬるぽ
532デフォルトの名無しさん:05/01/09 16:02:27
敢えてスルー
533デフォルトの名無しさん:05/01/09 16:05:38
  /       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
535デフォルトの名無しさん:05/01/30 18:30:32
すみません、教えてください。
Eclipse3.0.1でSWTを使用したApplicationを作る場合、
別途、swt-3.0.1-linux-gtk.zipをインストールしないとダメなんでしょうか?
Runするとエラーが出るのですが。
> Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/internal/gtk/OS
>at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
>at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
>at org.eclipse.swt.widgets.Display.<clinit>(Display.java:118)
>at HelloSwt.main(HelloSwt.java:20)
536デフォルトの名無しさん:05/01/30 19:24:23
>>535 swt-pi.jarがクラスの検索範囲に足りない。つーかSWT FAQ参照。
537デフォルトの名無しさん:05/01/30 20:46:39
>>536
サンクス。勉強になりますた。
538デフォルトの名無しさん:05/02/01 23:55:28
Visual Editorで自作のカスタムWidgetを使えるように
Visual Editorを変更してみました。Paletteにアイコンが追加され、
ソースコードも変更されるようになりましたが、
Widgetを貼り付けると白くなります。
実行すれば正常に表示されます。

どこが悪いのでしょうか?
このあたりのVEの変更方法とかが書いてあるところってありますか?
変更したファイルは下記のファイルです。
eclipse\plugins\org.eclipse.ve.swt_1.0.2\vm\swtbeaninfo.jar
eclipse\plugins\org.eclipse.ve.swt_1.0.2\swtpalette.xmi
eclipse\plugins\org.eclipse.ve.swt_1.0.2\plugin.xml
539デフォルトの名無しさん:05/02/02 10:52:09
>>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というソフトがある。
543541:05/02/07 15:57:22
あそうか。Eclipse本体はカコイイが、それで作れるJ2EEはダサダサ
544デフォルトの名無しさん:05/02/07 16:51:44
SWTとjfaceでできた2chブラウザもあるよ。jface2chっての。
545543:05/02/07 17:01:12
V2Cしか知らなかったけど、jface2chも凄いね。

疑問
・jfaceだとペタペタ貼るだけでアプリが出来上がるんだろうか
・RCP版開発とあるけど、RCP対応は何か良いことあるのかなぁ
546デフォルトの名無しさん:05/02/07 17:10:27
>>543
J2EEには画面出力の仕様は含まれていない。
よって、それで作ったJ2EEがださださなのは、自分の責任。
547デフォルトの名無しさん:05/02/07 17:17:46
bittorrentクライアントもSWTなやつあるよね。
548543:05/02/07 17:20:35
>>546
画面じゃなくて、作りが汎用機COBOL/JCLな感じでダサダサ
549デフォルトの名無しさん:05/02/07 17:24:18
>>540
基本的にCompositeとCanvas以外のクラスを継承することは
推奨されていない。そのため安易な継承を防ぐために
Widget#checkSubclassっていう安全弁が作りこまれてる。
APIのjavadocや同梱オンラインマニュアル、
http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/faq.html#subclassing
を参照のこと。
550デフォルトの名無しさん:05/02/07 17:27:34
>>545
1. JFaceはSWTウィジットを隠蔽しないからVisualEditorが使える。
2. ものによるんじゃん? ブラウザだったらRCPでつくってもいいと思う。
551デフォルトの名無しさん:05/02/07 18:30:40
>>548
あの、すみませんけど J2EE、特に EJB は COBOL/JCL の管理性を目指して
策定されたって知ってんの?
552538:05/02/07 19:01:34
Visual Editorにて独自のカスタムWidgetを編集可能に
するためのプラグインを追加しました。
しかし、Widgetを張り付けると白くなります。
実行時は間題ありません。何が悪いのでしょうか?
実装した拡張ポイントは2つです
org.eclipse.jem.beaninfo.registrations
org.eclipse.ve.java.core.contributors
553543:05/02/07 19:21:56
>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);
}
    ・
    ・
こんな感じに変更しました。
555デフォルトの名無しさん:05/02/07 22:03:20
>>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って混在して、いいのかよく分からない。
取りあえず、動く・・・・
558デフォルトの名無しさん:05/02/13 19:59:12
SWTを利用して作成されたjface2chを実行してみました。
ネイティブと遜色ない操作性とパフォーマンスに感動したのですが、
作者さんへの連絡方法とかないんですよね。

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

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

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

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

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

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

Mac mini が売れれば、ホームユースアプリで両方使えれば、結構、
インパクトあるソフトになりそうだけど、 Becky!もMac対応で
SWTで作ってくれない物だろうか。
586デフォルトの名無しさん:05/02/16 01:21:17
Mac対応なら、Swingで作ってもらったほうがいいんじゃない?
587デフォルトの名無しさん:05/02/16 15:50:38
>>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使ってます。
589デフォルトの名無しさん:05/02/21 08:28:23
>>588
Windows は GUI が OS の一部となっているので有利ってことですかね。
590デフォルトの名無しさん:05/02/21 11:08:46
スレッド処理の速ささが、そのままでたんじゃない
591デフォルトの名無しさん:05/02/21 15:26:55
いや、Windows用開発に重点が置かれたってだけかと。
592デフォルトの名無しさん:05/02/21 21:51:56
>>589
その代わり、OSの機能だというのに特許侵害だとかいって訴えられて敗訴するんだけどな。
593デフォルトの名無しさん:05/02/22 00:25:07
>>592
FUDウザイ
594デフォルトの名無しさん:05/02/22 11:41:27
どうも、LinuxのGUIは動きがもっさりしていて気に入らん。
595デフォルトの名無しさん:05/02/22 20:07:51
GNOMEのことか?AfterStepがいいぞ
596デフォルトの名無しさん:05/02/22 21:50:36
bakabakka
597デフォルトの名無しさん:05/02/25 04:24:25
Athenaで十分
598デフォルトの名無しさん:05/03/03 04:25:09
swt2から3に変えたら、作ったアプリがいろいろ変になってるよ(;´Д`)
599デフォルトの名無しさん:05/03/03 12:59:45
>>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
601デフォルトの名無しさん:05/03/06 11:22:09
>>600 うん、swtとは関係ないね。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/resources/index.html
このあたりが参考になる。
602デフォルトの名無しさん:05/03/10 11:16:42
imageのサイズ(高さと幅)を変えたい時ってどのような記述すればいいんでしょうか?
603デフォルトの名無しさん:05/03/10 11:36:41
>>602
Imageのインスタンスを表示するときに表示エリアの大きさを
変えたいとか、Imageが保持しているImageDataの縦と横を
変えたいとか、もうちっと詳しく。
604デフォルトの名無しさん:05/03/10 13:38:18
Imageが保持しているImageDataの縦と横を変えたいです
605デフォルトの名無しさん:05/03/10 17:07:04
>>604
ImageData#scaledTo()で大きさを変えたImageDataのインスタンスを
取得するか、ImageData#getPixel()でデータを取り出して自分で
拡大縮小処理して別途ImageDataのインスタンスを生成するか。
606デフォルトの名無しさん:05/03/13 12:22:34
>>601
本当に全然関係なかったです。ありがとうございました。

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

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

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

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

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

609デフォルトの名無しさん:05/03/14 22:51:13
>>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
611デフォルトの名無しさん:05/03/20 23:06:35
>>600
shell.setImage(new Image(null, getClass().getResourceAsStream("icon.gif")));
612デフォルトの名無しさん:05/03/21 00:46:21
>>611
611だけじゃないけどImageオブジェクトはGCでは回収しきれないんで
できれば明示的にdispose()する習慣をつけてください。
613デフォルトの名無しさん:05/03/21 00:58:26
>>611
InputStreamをちゃんとclose()しないと.
Application code is still responsible for closing
the input streamだよ.
614デフォルトの名無しさん:2005/03/21(月) 11:33:40
>>610
TabFolder / TabItemはよくわからんなあ
CTabFolder / CTabItemならできたけど、そっちじゃダメか?

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

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

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

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

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

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

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

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

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

作ったアプリをGTKで実行すると透過されるのに、
Win32で実行すると透過されない。
他の方どうですか?
630デフォルトの名無しさん:2005/04/10(日) 00:08:53
>>629
とりあえず>>374に対するレスとかを読んでいろいろやってみたら?
631629: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 を配布するならその部分のソースコードが必要)
ほとんどの人がソース配ってないですよね?
ソース配布の必要がないという根拠が
どこかにあれば教えてもらえるとうれしいです。
633デフォルトの名無しさん:2005/04/12(火) 10:58:08
>>632
ソースほしけりゃメールしろとかeclipse.orgの当該URLを
をドキュメントに書いておけばよし。バイナリに添付する
必要は無い。FAQにもそう書いてある。

でもCPL読めばソースを要求する権利があることが明記されてるし
それ以上の説明はmustではないと思うけどね。
634632: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()しても、ヘッダが消えません。
ヘッダを消すにはどうすれば??
636デフォルトの名無しさん:2005/04/16(土) 19:11:58
>>635
setHeaderVisible(boolean show)
637636:2005/04/17(日) 22:42:36
>>636
説明不足でした、表示を消したいのではなく、ヘッダーのコンポーネントそのものを消したいのです。
setHeaderVisible(false)しても、次にtrueにした時、また同じヘッダーが表示されてしまうので。。
638デフォルトの名無しさん:2005/04/28(木) 10:44:12
JFaceのダイアログでタイトルエリアにエラーメッセージを設定したとき
メッセージの背景色がグレーになってしまうのですが解決法はありませんか?
下のページの一番下の画像の状態です。

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

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

業務アプリだと標準APIでノウハウもたまっているSwingのほうがいいと思われ
642デフォルトの名無しさん:2005/05/07(土) 20:25:19
RCPは使ってないけど、EclipseIDEのプラグインとしては業務アプリを
作ってるな。GUI以外のフレームワークの機能を考えるとトータルでは
工数減ってる。
643デフォルトの名無しさん:2005/05/08(日) 09:23:54
RCP使った事無いけど、Windowsオンリーとかなら選択肢になり得ると思う。
複合的なパッケージを提供させる場合でもユーザインターフェイスも統一させやすい。(代わりにこった事できないけど)。
自動更新機能も魅力的だけど、JavaWebStartにもあるし。
今はSwingが改善されてきたから、速度的なメリットは無くなったと思う。
ということで、将来的にがーんと伸びるとは思えないんで、何を重視したいかじゃない?
644640: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
JavaWebStartは、ここで詳しく説明してます。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/javaws/index.html
646643:2005/05/08(日) 16:26:01
>>644
Appletは配布するとは言わないけど。配布しているわけじゃないし。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


SWTスレらしくない内容ですんまそ
680デフォルトの名無しさん:2005/07/03(日) 00:07:13
>>677
じゃあ、ずっとRADでいいんじゃねぇ?
681デフォルトの名無しさん:2005/07/03(日) 01:11:11
でもさ、、、現実的にまだクライアントはWindowsな訳だし、連携を
考えるとSWTにがんばってもらう必要があるのでは?
今の職場ではOFFICEと連携出来ませんではクライアントアプリ
としてはかなり利便性が下がりますね。
682デフォルトの名無しさん:2005/07/03(日) 01:42:00
ものによるんじゃね?
ExcelやWordの読み書きならSWT/Swing関係ないし
683デフォルトの名無しさん:2005/07/03(日) 02:23:33
Excelコンポーネントを自作GUIアプリケーションのウィジットに貼り付けるのならSWT。
#というよりSWTのOLEサポートはその目的でしか使えない(ことになってる)。
684デフォルトの名無しさん:2005/07/03(日) 02:25:08
OLEサポートほしけりゃ、VBで作った方が楽だな。
685デフォルトの名無しさん:2005/07/03(日) 11:32:54
>>682
その場合どうされていますか?
POIやJComを使われていますか?

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

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

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

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

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

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

695デフォルトの名無しさん:2005/07/06(水) 22:07:05
C#のソースコードなんてさらに見ないわけだが
696デフォルトの名無しさん:2005/07/06(水) 22:32:32
Swingの場合業務系でよくみるけどソースはさすがに公開できんだろ
697デフォルトの名無しさん:2005/07/07(木) 10:30:32
NetBeansとかは、ソースがあるけど。
698デフォルトの名無しさん:2005/07/07(木) 12:08:39
それいったらEclipseも・・・
699デフォルトの名無しさん:2005/07/07(木) 14:39:53
JAVAに関して、クライアント側のGUIアプリソースは期待できないってことか
業務系は公開できないだろうし…。
700デフォルトの名無しさん:2005/07/07(木) 15:07:11
つーかSwingなら何を迷う?
701デフォルトの名無しさん:2005/07/07(木) 21:29:59
っていうか、Swing使うっていっても8割がたは自動生成されたコードだし。
702デフォルトの名無しさん:2005/07/07(木) 22:06:24
>>698
EclipseってSwing使ってるの?
703デフォルトの名無しさん:2005/07/09(土) 11:40:38
んなわきゃーない
704デフォルトの名無しさん:2005/07/21(木) 10:53:24
Windowsでの特殊フォルダのパスって、SWTで取得できないかな?
705デフォルトの名無しさん:2005/07/21(木) 13:42:44
環境設定よめば多少はつかえるな
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を通知してくれるんですかね
707デフォルトの名無しさん:2005/07/24(日) 14:42:03
そこでリスナー呼ばれるものなのか?
708デフォルトの名無しさん:2005/07/24(日) 15:19:06
コンストラクタで親をしていしてないからダメ。
709デフォルトの名無しさん:2005/07/24(日) 15:27:48
>>706
たしかsetSelectionによる選択状態の変化はSWTでは
リスナーに通知されなかったような気がする・・・.
710デフォルトの名無しさん:2005/07/24(日) 22:26:28
Widget#notifyListenersでいいんじゃないの?
711デフォルトの名無しさん:2005/07/25(月) 11:50:42
>>710
できますた どうもありがたとう
712デフォルトの名無しさん:2005/07/27(水) 10:23:44
最近 3.1M4 から 3.1 にしたんだけど、速度落ちたね。
org.eclipse.swt.graphics.GC で、drawLine 等を
結構な量こなすプログラムを作っていて
前までキーやマウスの動きに追従できていたのだけど
出来なくなっちゃった。
713デフォルトの名無しさん:2005/07/29(金) 10:31:40
総合で質問したんだが、答えでなかったんで
GUIスレのここで失礼します


http://www.gui4j.org/

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

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

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

だれかおせーてください
714デフォルトの名無しさん:2005/07/29(金) 10:56:15
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
メル友になってください!
[email protected]
717デフォルトの名無しさん:2005/08/02(火) 14:18:50
Javaよく知らないですが、
別途キューを用意して、イベントはそこに放り込み、
個々のスレッドはそのキューからイベント取り込んでやればいいんじゃね?
718デフォルトの名無しさん:2005/08/02(火) 23:32:27
719715:2005/08/03(水) 00:27:25
助言ありがとうございます。
実装してみます。
720デフォルトの名無しさん:2005/08/03(水) 00:35:22
721デフォルトの名無しさん:2005/08/03(水) 00:37:25
722715:2005/08/03(水) 00:58:57
うお・・・マジで感謝です
723デフォルトの名無しさん:2005/08/03(水) 13:25:29
半年前にSWT+Draw2Dで図形編集ソフトを作成しました。
情報が少なくってかなり苦労しました。
これがSWTを使った最初で最後の仕事になりそう。
Eclipseプラグインを作成する仕事まわってこないかな。
724デフォルトの名無しさん:2005/08/03(水) 13:27:04
それが最後の仕事になりそう。
725デフォルトの名無しさん:2005/08/09(火) 12:49:51
先生!
SWTで、マウスホイールがどれだけスクロールされたか知る方法ってありませんか?
726デフォルトの名無しさん:2005/08/10(水) 01:58:50
Spinnerって消えた?
727デフォルトの名無しさん:2005/08/21(日) 17:50:14
728デフォルトの名無しさん:2005/08/21(日) 18:20:06
GUIを作ろうってのに、ネイティブコードを吐かないから
普及しないんだよ。

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

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

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

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

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

とかやっても、アンチアリアスがかからないようです。
gc.setAntialias( SWT.ON ); で、drawLine() 等を使うと効いているのですが・・・。
うまくいった方、いらっしゃいますか?
740デフォルトの名無しさん:2005/09/26(月) 23:15:26
質問です。
タイトルバーの縦のサイズって
どこかに定義されていないのですか?
741デフォルトの名無しさん:2005/09/30(金) 10:31:07
最小コンポーネント
742デフォルトの名無しさん:2005/10/22(土) 07:58:40
JFaceで1行にイメージやボタンを持つListを作りたいのですが
どうすれば良いのでしょうか?
743sage: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しかないの?日本語入力だと目に見えて処理が遅くなる。どうせ英語なんか使わないから単純な自動折り返しがしたいんだけど。
746デフォルトの名無しさん:2005/10/25(火) 21:50:20
>>743
どっちかというと、743がよくわかってないだけの気がする。
画面ごとにclass分けるとか分けないとか、関係ないと思うが。
747デフォルトの名無しさん:2005/10/25(火) 22:59:06
つーか意味ワカンネ>>743
748デフォルトの名無しさん:2005/10/28(金) 05:20:11
Tableの行高を変える方法は無いのでしょうか?
749デフォルトの名無しさん:2005/10/28(金) 07:16:20
setRowHeightとかその辺の話?
750デフォルトの名無しさん:2005/10/28(金) 07:23:37
すまん、swingスレと間違えた
751デフォルトの名無しさん:2005/11/14(月) 20:17:00
質問スレから移動してきました。

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

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

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

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

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

JavaSE6ではネイティブ描画対応だったっけ>Swing
どうなるか見もの
現状でも5.0以降ならSystemLAF綺麗なんで満足
760デフォルトの名無しさん:2005/11/15(火) 02:42:39
>>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では白いままです。
一応、両方ともチェックできない状態になるので、
機能としては働いてるようですが・・・
これは仕様なんでしょうか?
763デフォルトの名無しさん:2005/11/16(水) 20:27:24
すごく初心者な質問いい?
SWTやらSwing使ってJavaのGUIアプリ作るのはいいんだけど
拡張子が.exeのアプリって作れる?
jarは嫌だから
764デフォルトの名無しさん:2005/11/16(水) 21:08:55
やればできる
765デフォルトの名無しさん:2005/11/16(水) 22:05:19
>>763
ttp://jsmooth.sourceforge.net/
俺が知ってるのはこんなやつ。てかなんでjarはやなん?
766デフォルトの名無しさん:2005/11/16(水) 22:46:01
jarださい
exeかっくいー
それにjarのアプリなんて見たことないし
中身見られるしいややん
767デフォルトの名無しさん:2005/11/16(水) 22:52:49
Launch4J
http://oss.moongift.jp/intro/i-808.html

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

具体的には、Modelを1つつくると、既にあるModelに勝手にConnectionを貼るという
動作をさせたいです。
774デフォルトの名無しさん:2005/11/22(火) 15:18:42
>>774
普通に最初のモデル作るときに同時にコネクション張ればイイだけじゃないの?
775773: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()されるの?
777デフォルトの名無しさん:2005/12/03(土) 20:18:48
リソース管理で疑問に思ったらsleakで確認すること。
778デフォルトの名無しさん:2005/12/04(日) 14:10:09
swingのJInternalFrameにswtのBrowserを表示することは可能ですか?
もし可能であれば、その方法を教えてください。
779デフォルトの名無しさん:2005/12/04(日) 16:01:52
Frameの中にBrowserを貼り付けるのはやったことある。SWT_AWTつかって。
これ使うとappletにいろいろSWTウィジット貼り付けられて面白いが
実用性はないんだよな。
780デフォルトの名無しさん:2005/12/04(日) 19:59:22
swtのBrowser貼り付けるなら、JDICでネイティブブラウザー埋め込んだほうがいいかも。
781778:2005/12/04(日) 21:57:14
さっそくJDIC試してみました!
これ!これを待ってましたって感じです。
Windowsネットワークを使用してのフォルダやファイルに簡単にアクセスする方法が
ネイティブブラウザを使うことしか思い浮かばなかったもので。

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

782デフォルトの名無しさん:2005/12/06(火) 16:35:38
Linuxでテキストボックスを使ったプログラムを作成し
テキストボックスに日本語を入力すると□□□になってしまうんですが
どうしたらいいでしょうか?
ソースの文字コードとか関係あるんでしょうか?
783デフォルトの名無しさん:2005/12/06(火) 18:34:20
>>782
Linuxにインストールしたjavaランタイムの文字フォント設定の問題かもしれないよ。
784デフォルトの名無しさん:2005/12/07(水) 20:57:39
>783
ググってみたんですがjavaランタイムの文字フォントの変更とか設定について
載ってるページが見当たらないんですが、何かいい参考サイトありませんか?
785デフォルトの名無しさん:2005/12/07(水) 21:22:25
786デフォルトの名無しさん:2005/12/07(水) 22:43:26
>>782
日本語ロケールでjavaws とか appletviewer とか標準のツールを起動した場合にも
豆腐になるとしたらランタイムのフォント設定が悪いからがんばれ.
jre/lib/fontconfig.*.properties を適切に設定するか jre/lib/fonts に適当な
フォントを置くかする必要がある.
787デフォルトの名無しさん:2005/12/07(水) 23:34:41
次スレは Java ネイティブGUI SWT3 にしなくちゃな。
788デフォルトの名無しさん:2005/12/07(水) 23:42:13
>>787
次スレ立てるころには忘れてる予感・・・
789デフォルトの名無しさん:2005/12/08(木) 16:33:18
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限定で
792デフォルトの名無しさん:2005/12/16(金) 00:49:39
>>791
まるち乙。
しかし、ここもスレ違い。
まあ、答えといてやるよ。
Rhino使えば、JavaScriptでできる。
793デフォルトの名無しさん:2005/12/16(金) 01:04:01
>>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);

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

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

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

GC gc = new GC(p);

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

gc.dispose();

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

でも、とりあえずサイズ変換するなら、こんな感じ?
ImageLoader loader = new ImageLoader();
ImageData[] datas = loader.load(name);
ImageData srcData = datas[0];
ImageData dstData = srcData.scaledTo(32,32);
loader.data = new ImageData[]{dstData};
loader.save(name+".gif", SWT.IMAGE_GIF);
縮小品位に不満があったら、自分でデータ取り出してbicubicなり
Lanczos3なり処理すること。画像処理スレねただが。
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ブラウザてありましたっけ?



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

おさわがせしますた。