Java 高速GUI SWT 3
■ このスレッドは過去ログ倉庫に格納されています
とりあえず、前スレ落ちてから時間たつけど、立ててみた。 前スレ Java 高速GUI SWT 2 http://pc8.2ch.net/test/read.cgi/tech/1068349883/ 肝心なのは自分の質問したかった事があるからなんだが、 書いてなかった。 ツールバーにブラウザのURL放り込むようなTextを入れたいんだけど、 ツールバーのボタンの幅を固定、Textの幅を可変にするにはどうしたら いいのでしょうか? そういうコンテナ書けば? 最悪doLayoutをオーバーライドすればOk テンプレもうちょっとなんとかしろよ。 参考リンクとか。 これまでサーバーサイドものばかりやってきたんだが、 こういうGUIモノだと、クラスをどう分けるかとかうまく できん。 なんつーかこう、MVCでやってきたのに。 JFaceはまだまだ資料にできる日本語サイトが少ないよなー。 英語のドキュメント読む気ないんだけど、誰か翻訳… SWTからwin32API使うのもやりたいんだけど。 各widgetの扱いについて質問です。 画面作る時に、メソッドの中でゴリゴリとインスタンス生成して 設定していってもいいんですけど、きれいにまとめて管理する 方法ってないでしょうか? とりあえず、使うwidgetをフィールドにまとめたクラスをシングルトン で作ったりしているのですが… RCPでマスターメンテ作るコトになりそうなんだけど、どっかに雛形おっこってないかなぁ(^^; DBEditみたいに簡単なモノでいいんだけどね……。 MVCしたいならSpring入れてみれば? それっぽく開発できるんじゃね? クリスマスだし、嫁とセクロスしまつ ttp://feiticeira.jp/jisaku/img/5118.jpg VE使ってる人っている? これで自動的に追加されるSWTのコンテナの構成って変えられないのかな ソースのパスとjavadocのURLを設定したいんだけど、どうするんだろ? >>21 VEの設定じゃなくてPDEのtargetのところで新しいtargetを追加、 さらにソースパスを指定。その後、プロジェクトに追加されている SWTコンテナのプロパティでPDE targetを指定。 でも本来、まともな状態ならSWTのコンテナが追加された時点で ソースパスとjavadoc URLはちゃんと設定されているはず... なんだけど、うちでも3.2.0->3.2.1にアップデートした時点くらいで うまく認識できなくなった。VEに限った話じゃなくてプラグインを ワークスペースにインポートするときとかも駄目。3.2.1のSDKを まっさらな状態からインストールしなおしたらまともになった。 初心者質問須磨蘇 >>13 のようなDBアプリを作って配布する際、DB接続先ホストやパスワードを 利用者に知られないようにするにはどうしたらいいの? Javaだと逆コンパイルかけられたら暗号化しててもルーチンも含めて 丸分かりになっちゃうと思うんだけど、みんなどうしてるのかしらん >>23 ・あきらめる。 ・DBアプリにしない。DB操作はWebサービス経由で行う。 Webサービスの認証情報が漏れるのは避けられないが、可能な操作を限定できるので、多少はマシ。 >>26 Swingについては初心者スレに出てたので便乗質問で津 SWTもSwing同様Web Serviceにしないと駄目なんですね しかしDB情報丸分かりか、さもなきゃ三層化にするしかないなんて、 いきなり敷居が高くなるね >>27 SWTにしろSwingにしろGUIライブラリなので、そこまで要求するのはそもそもずれてる。 公開するDBアカウントでできることを制限するってのも手かもね。マスタテーブルはSELECTのみとか。 ところで、いい加減スレ違いなので、わかったら余所に行ってね。 VE使ってるんですけど、Tableを置いて、それをコンストラクタに取るTableViewerをエディタから手で作ったところ、 「ビューアー・プロパティーを表示するためにアクション・バーで TableViewer を選択してください」 というメッセージが、VEのTable上にのツールチップで表示されるようになりました そこで、いわれたとおりにアクション・バーでTableViewerを選択したいのですが、そのやり方がわかりません このアクション・バーってなんなのでしょう? 自己解決しました。 テーブルを選択したときに表示される黄色い枠線の右上に右向きの矢印が表示されていました この矢印をクリックすると表示されるのがアクション・バーですね さらに、そこに表示されているTableViewerを選択することで、そのプロパティーの表示、変更もできました 以上、お騒がせしました SWT 難しいぃぃぃぃぃぃぃぃぃ。 JFace も難しいいぃぃぃぃぃぃぃぃぃぃ。 全然資料がない。 参考にできる URL はありますが、ちょろっとだけ参考にしかならない。 ぬぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ。 みなさんどのようにして勉強されていますか。 初心者向けにお願いします。 初心者なのか?仕方ないな ではまず・・・ ソース嫁 >>31 ともかく英語できないと話にならないんで、技術書くらいは読める前提で。 まずSWTの開発陣が書いた本でいわゆる`SWT Book'ってやつ。 http://www.amazon.com/dp/0321256638/ あとは http://www.eclipse.org/swt/ http://www.eclipse.org/articles/ のArticlesとResourcesのとこ。特にSnippets。 Articleは一部IBM developerWorks Japanに和訳がある。 あと実際にコード書いてて役に立ったのはOfficial Eclipse FAQs。 押さえるべきポイントは大体網羅されていて、かつ各項目は短いので つまみ食いできる。昔は書籍しかなかったけど、今はeclipsepediaで公開されてる。 http://wiki.eclipse.org/index.php/The_Official_Eclipse_FAQs けど書籍版が手元にあるとぱらぱらめくれて便利。 あとはEclipseのソース。File -> Import -> existing Plugins and features(だっけ?) でorg.eclipse.ui.*をソースごとインポートしておくとそんな読むの大変じゃない。 つか、まさにFAQにあったな。 http://wiki.eclipse.org/index.php/FAQ_Where_can_I_find_more_information_on_SWT%3F このうち、Eric Claybergの本は2006年版に版が改まって、あと Erich GammaとKent Beckの本は和訳が出てる。 おまいさんはアマゾン.comで本買ってるのけ? 送料ってどうなってんの? 誰もいないけど質問してみるね テキストウィジェットをクリックしたら ウィジェット内のテキストをselectAll()するようにしたいんだけど 適当なリスナーがないの (FocusListenerだとselectAll()したあとにクリックが反映されるの) どうしたらよいですか? マウスリスナーとフォーカスリスナーをごちゃごちゃいぢってたら解決しました くだらないこと聞いてすいません >>38 MouseイベントとMouseMoveイベント両方みてればいけるでしょ? 俺、SWTで2ちゃんブラウザ作ろうとしてただけに、ほんとに2ちゃんねる閉鎖 したりするとショックだ。 >>42 完全匿名で個人情報晒された人が誰を訴えていいのか歯軋りするような P2Pな2chを作ってください。javaで 金子みたいにならないように作者もP2P側に居る必要があるな。 エアロが証明してしまったな。GUIはGPUをフルに使えよwと。 >>45 いや、既にMacOSXが証明済みだろう・・・スレと関係ないな・・・ >>43 作者がある程度管理できる仕組みで、 アボーンとかが出来ないと完全無秩序で 小数の荒らしでつぶれるな・・・うん。これもスレと関係ない・・ はい!しつもん! SWTを使ってブラウザを作ってみました →windowsでは動きました Linuxで動かして見ました →途中まで動くのですが、フラッシュ?が表示されるサイトに移動すると 突然落ちます。 何か対処法とかご存知ですか? SWTのライブラリは最新バージョンを使ってます OSはFedora6でファイヤフォックスのバージョンは1.5.09です。 ついでにage SWTのTreeってSwingのTreeModelとは互換性ないんでしょうか? 作りかけのアプリをSwingじゃなくてやっぱりSWTにしようかと思ってるんですが、 自前のTreeModelつくっちゃったんで流用できればと思ったんですが、 やっぱむりでしょうか? そういえばJFaceのTableViewerってかなりつくりが汚いよな。 TableLabelProvidernは列を左から数えた数でアクセスするのに、 CellModifierは列に設定されたproperty値でアクセスするってのが気持ち悪い TreeViewerは使ったことないけど同じようなもんか? SWT自体はだいぶこなれてきたと思うんだけど、 Swingが良くなってきたからね。 main(string[]args) ってどういう意味ですか?('A`) \ ∩___∩ . \ | ノ ヽ ちょっ! ちょっと待つクマ! \ / ● ● | \| ( _●_) ミ 釣り方間違ってるクマ!! 彡、 |∪| ,/.. ヽ ヽ丿/ /⌒| この吊り方は、やばすぎるクマー!!! / \__ノ゙_/ / ===== 〈 _ノ ==== \ \_ \ \___) \ ====== (´⌒ \ ___ \__ (´⌒;;(´⌒;; \___)___)(´;;⌒ (´⌒;; ズザザ SWTのBrowserを用いて表示させたHTML上で、 ログイン名とパスワードをフォームに入力してSubmitすることで、 自動ログインを実現することは出来ますでしょうか? C#.NETでは、name="userID"というINPUTタグがある場合 IHTMLInputElement iTitleBox = (IHTMLInputElement)form.item("userID", 0); iTitleBox.value = this.textBox2.Text; のようにして実現できたのですが。 もし参考になるサイトなどありましたら、ご教授いただけると助かります。 >>64 たぶん、SWTのWin32API扱うクラスで実現させるぐらいだろうけど、 SWTのBrowserにはソースを読むクラスはないよ。たぶん。 ベタにHTMLクライアント書く方が吉かも。 org.eclipse.jface.text.source.projection.ProjectionViewerを スタンドアローンなアプリで使いたいと思ってるんですが、 ネット上を漁ってみてもplugin用にorg.eclipse.ui.editors.text.TextEditor を使っているサンプルしか見つかりません。 org.eclipse.uiを使ってしまうと芋づる式にeclipseのランタイムを 呼び出してしまうので避けたいのですが、ProjectionViewerを org.eclipse.ui.editors.text.TextEditorを継承せずに使ってる いいサンプルどこかにありませんか? それかもしかしてスタンドアローンなアプリでもorg.eclipse.uiを使う のが定石なんでしょうか? >>67 jface初心者なんですが、jfaceでスタンドアロンなエディタってどうやって作ってるの? 暇なときにちょっとProjectionViewerなるものを試してみようかと思ってね。 >>70 基本的には http://www13.plala.or.jp/observe/JFace/jface_overview.html のTextウィジェットのかわりにProjectionViewerを使うだけです。 Projecsion/Annotation関係のクラスの使いかたを調べているうちに プラグインとして使っているサンプルしか見つからないことに 気づいた。 行番号表示したりキーワード強調したりというSourceViewerに 実装されてる範囲内の機能はちゃんと動作してるんだけど、 フォールドさせる仕組みがわからない・・・。 SWTでシェアウェア作ろうと思うんだけど、ライセンス上、問題ないのでしょうか? また、自分のソフトウェアにSWTを同梱して配布することは可能なのでしょうか? ライセンス読めよ。いまどき日本語版もあるよ。 最終的に自分を守るのは自分だ。相手はIBMだから何されるかしらんぞ。 どうやら、商用に使ってもOKみたいですね。 同梱してもよさそうだし、SWTでシェアウェアを作ることにします。 ありがとうございました。 プログラミングにブックスタンド便利 ttp://www.huhka.com/jisakupcheya/1164546272/img/1164546272_0735_00.jpg 次のスレタイはRCPとかJface入れた方がいいと思うんだ。 eclipse3.3M6出たけど、WPF対応SWTって何か快適なの? WinXPに.NET Framework 3.0と一緒にインストールしてみたけど、激重だった。 試しにRCPをちょこっと触ってみたら、なんか恐ろしく便利そう なんだけど、全体がどうなってんのかさっぱりわかんない。 >86 たぶん、WPF用に最適化してるんじゃないかな。 ダブルバッファリングとかXPだと見栄えが良くなるけど、VISTAだと重くなる原因なだけだから。 >>75 おお!あるんだこういうの。 前からこういうのがあればなあと思っていた。 まだスレを見ていたらその商品名教えて ブックスタンドって書いてあんじゃねえか イメ検して探せ 質問なんですが、 VEにある横からスライドで引っ張り出せるツールバー? みたいのを、SWTでどうやったら作れるの? SWTについて教えてください。 a.javaにあるa_shellからbutton押下で同じa.javaにあるa1_shellを呼び出す方法はわかるのですが a.javaのa_shellからb.javaにいるb_shellを呼び出すにはどうすればよいですか? a/b.java共に同じプロジェクト内で作成しています。 イメージとしてa_shellがメインアプリのshellでb以降のshellがそこから複数呼び出せる小画面という感じです。 SWTの質問じゃないな。 まあ、そういう疑問がわくのもわかるが。 Javaの言語の勉強をもすこしやりなされ。 >>98 もっと精進します、スルーせずにわざわざありがとです。 >>97 参考までに・・・ public class A { A(){ Display display = new Display (); Shell shell = new Shell (display); Button btn = new Button(shell, SWT.PUSH); btn.setText("B-shellの起動"); btn.pack(); btn.setLocation(20,20); Button btn2 = new Button(shell, SWT.PUSH); btn2.setText("A-shellの子を作成"); btn2.pack(); btn2.setLocation(150,20); btn.addSelectionListener(new SelectionAdapter(){ public void widgetSelected(SelectionEvent e) { B.createBShell(e.display);} }); btn2.addSelectionListener(new SelectionAdapter(){ public void widgetSelected(SelectionEvent e) { B.createChildShell(e.display.getActiveShell()); }}); shell.setSize (300,100); shell.open (); } (以下省略) クロスプラットフォームなソフトを計画していてGUIライブラリを探しています。 とりあえずeclipseの実績からSWTがいいかなぁと思ってますが、Jfaceとかswingとかも 調べた方がいいでしょうか。 SWT専門の参考書が少ないのが気になりますが、基本さえわかればリファレンスがあれば どうとでもなると思ってますが・・・。 Swing調べてないのは、片手落ち。 ちゃんと調べた上で、SWTを選択すること。 SWT使いたいという気持ちだけだと駄目駄目です。 RCPといえば、SWTベースのEclipse RCPしか知らんのだけど、それ以外にあるの? RCPといえばEclipseRCPなのかもしれないけど、 リッチクライアントプラットフォームという名前ではない リッチクライアントのためのフレームワークは他にもあるんじゃないの? このスレはSWTのスレである。 SWTでRCPといえば、EclipseRCP。 文脈でわかる問題ではないだろうか。 いや、文脈があるからわからなかった。 SWTとSwingの話をしててRCPって出てきたから、同じようなツールキットでRCPてのがあるのかと。 SWTがダメでEclipse RCP出されてもしょうがないし。 だねぇ。 SWTはクロスプラットフォーム苦手だね そうだね、Windows以外では使いにくいね っていうかやっぱクロスプラットフォームならSwingじゃね? いやいやRCPでしょ え?SWTじゃないRCPがあるの? って流れになるわな。ま、たぶん>>107 が文脈読んでなかっただけだと。 解説ありがとん。 ところで、最近はSWTの新しいバージョンとかないの? せんせー質問です コンポーネントとかラベルとかチェックボックスとかを不可視にする方法ってありまつか? setEnabledは機能止めるヤツだしsetVisibleは表示の同期みたいな機能だよね? 何がやりたいかっつーとラジオボタンで表示を2〜3種の中から切り替えて選択できるようにしたいのよ 既にTabFolderはその外側で使ってるから使いたくない感じ おいおい(汗) JavaでSWTはないだろ SWT使うならC++だろ♪ GTK+はX-window用ってイメージがあるのは偏見かな。 実際には一応クロスプラットホームツールキットなんだが。 Java+swingやSWTも含めてクロスプラットフォームなtoolkitはどれも一長一短があるな これさえあれば包括できるなんていう良いものは今の所なさそう 結局使用するシステムや目的に合わせて選ぶしかない感じ まあ、一時期は共通のウィンドウが出せるだけでありがたかったんだが、クロスプラットフォームに求めるハードルがあがったってのもあるな。 OSの標準GUIに準拠した動きを求める奴とどの環境でも同じ動きを求める奴と居るからクロスプラットフォームは難しい。 俺なんかはマウスカーソルの加速度のかかり方が受け入れられないって理由でMacとUnixはCUIでしか使わない。 >マウスカーソルの加速度のかかり方が受け入れられない どういうこと? >>120 GoogleEarthがQtじゃなかったっけ? Re:114 SWTではボタンのサイズを0にすると見えなくなるのでその特徴を 利用するのもひとつの方法。 Button button = new Button(shell, SWT.RADIO); button.setText("2ch"); button.setSize(0,0); // サイズを0にする。 VE使ってFromLayout使って編集してて、プレビューと実行時コードの表示に差異があるんだけどなんでだと思う? 例えば下みたいなソース書いて、VEのプレビューだとtypeSelectGroupの下側にfocusGroupが表示されてるんだけど 実際に実行してみると何故かtypeSelectGroupのじゃなくて親コンポーネントの左上に表示されちまうだ… FormData formData = new FormData(); formData.top = new FormAttachment(typeSelectGroup); focusGroup = new Group(searchComposite, SWT.NONE); focusGroup.setLayoutData(formData); 自己解決 typeSelectGroupの前にfocusGroup生成してた… RCPに移行したいんだけど、意外に情報が少ないですね。 >>135 もっと情報が出回れば、RCPの時代来るだろうに… >>135 そこは 「RCPに移行したいんだけど、意外に情報が少ないので、情報サイトを立ち上げました」 とか 「RCPの本を自費出版しました」 とかレスすべき ちょっと勘違いしている人が多いみたいなのだが・・ RCPというのはEditorやViewの骨組みとレイアウト、メニューバー、ツールバー の骨組み、パッケージの配布やブレンド化・アップデート・国際化の含んだもの。 骨組みだけでは役に立たない。 そこで筋肉をつける。それがSWTやJface,EMF, GEFといったもの。 たとえばおいしいピザを作るとき想像して欲しい。 ピザのパンの生地のあたるのがRCPだ。 そのうえにソーセージやサラミ、ココナッツ、マヨネーズ、ピーマン、 アスパラなど(SWTやJface,GEFといったもの)ををのせる。 どうだ!よだれがでてきただろう・・。 じゃあSwing Application Frameworkでいいや。 >>139 それって全然違うんじゃ・・・・ 確かに、RCPのSwing版が欲しいなぁとは思う。 ・・・・・NetbeanPlatformなんすかね? エディタとプラグインやアップデートの仕組みが必要ないなら、はっきりいってRCPとか使う必要ないよ。 OSGi利用したSwing版のフレームワークって需要あるのかな? ttp://www.youtube.com/watch?v=nyU6DftZ618 >>138 つまり、完成するものはピザ(肥大化アプリ)という認識でOKなんだよな? ま、JavaでGUIってのがそもそも「美味しいピザを作ろう」感。 Eclipse 3.3がリリースされたってんでダウンロードしてみると、SWT 3.3のjarが入ってた。 (eclipse-java-europa-win32.zipにorg.eclipse.swt_3.3.0.v3346.jarがある) SWTのサイトでダウンロードできるのは3.3RC4で、まだ正式リリースしてなかったはず。 フライング? SWTのどのバージョンを Eclipseがリリースに含めるかは別にEclipse側の勝手なんじゃないのか。 それか、SWTのサイトが古いだけ。 >>151 SWTのサイトが古いだけだろう。 こっちにはちゃんとリリースされてるし。 ttp://europa-mirror1.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/index.php >>152 , >>153 ありがとう。 今後はEclipseのサイトもヲチするよ。 [原文] SWT libraries automatically found The SWT libraries are now loaded from the SWT jar when an SWT application is launched. Within Eclipse, you can just use the Run As > Java Application menu item and the libraries will be found. When launching from the command line, you no longer need to specify the SWT library path. [上手い翻訳] ごらぁ!お前ら喜べ。SWT.jarのめんどくさい設定しなくても Eclipse 3.3からは [実行] → [Javaアプリケーションの起動]で 自動的にライブラリを見つけてくれSWTアプリケーションを ロードすることができる。 When launching from the command line, you no longer need to specify the SWT library path. こっちの仕組みがわからない >>156 今まで.dllやら.soだったのをswt.jarに入れるようにしたから、 コマンドラインに-Djava.library.path=...lって書かなくてもよくなった、 という意味。 library pathとは? [SWT Binary and Source] These drops contain the SWT libraries and source for standalone SWT application development. For examples of standalone SWT applications refer to the snippets section of the SWT Component page. To run a standalone SWT application, add the swt jar(s) to the classpath and add the directory/folder for the SWT JNI library to the java.library.path. For example, if you extract the download below to C:\SWT you would launch the HelloWorld application with the following command: java -classpath C:\SWT\swt.jar;C:\MyApp\helloworld.jar -Djava.library.path=C:\SWT HelloWorld ttp://download.eclipse.org/eclipse/downloads/drops/R-3.3-200706251500/index.php おまいら、巷では JFace で簡単に SWT を使おうと言っている割に JFace の単体配布してないってどういう所存ですか? それは港から船で魚を釣りに行くときには 網だけでなく、魚群探知機や保冷用の冷凍庫、航海図なども 必要だからだよ。 JFace の単体配布っていうのは釣ざおの代わりに網を提供しているに 過ぎない。効率がいいのには変わらないが・・・。網だけあっても 魚がどこにいるかわからないと魚を取ることさえできないよ。 おまいら JFace ちょっと使ってみて分かりました。 これって Eclipse プラットフォームにべったりなのだな。 SWT をすっぴんで使っていると JFace のようなものを作りたくなる欲求はどうしてますか。 Swing のモデルとブリッジするリスナーでも作ろうか。 >>168 だから Eclipse プラットフォームは使わないと言っているのだが。 HSP3.0は0行でウィンドウを開けるというのにおまいらときたら。。。 Eclipse for RCP/Plug-in Developers ↑これなに? Eclipse IDE for Java Developers に加えて、PDE や Eclipse のソースコードなんかが入っている Swingのほうが充実してきてるから? SWTは敷居が高いしね。 まぁそうね.情報量違うしね. アプリの仕上がりはSWTの方が良いと思うんだけどね…… SwingのWindows LnFはWindowsとの細部の違いがキモい. これからはNimbusつかって、WindowsLnFは終了じゃね? そもそもVista自体過去のLnFを捨てにかかってんだからさ。 Nimbus用のXP ThemeとかVista Themeが出てくるんじゃないの? Nimbus自体は良い物だと思うが,ネイティブアプリケーションとの LnFの違いって話とは基本的に無関係だと思うよ. Vistaが過去のLnF捨ててるっつっても,そのOS内では統一されてるわけでね. そういう統一感が崩れると嫌がる層が,ある程度はいる. >>178 何か勘違いしているようだが、Nimbus自体がSynthLAF使ったLAFだぜ。 Nimbusは、SolarisについてくるJDSのGtkのテーマなんだよ元々。 だから、Solarisで使うとネイティブに溶け込んで見えるはず。SWTよりも。 最近のほとんどのソフト、独自UIで統一感もクソもないわけだが。 jfaceとswtのバージョンの依存関係に悶絶。 てか、jarからswt-win32.dllを抽出するのがなんとまぁあほくさいというか。 >>179 いやそれはわかってるけど.何が言いたいのか分からん. Nimbusはテーマのひとつだから、Nimbus用のXP ThemeとかVista Themeとかおかしいんじゃねぇの?って話だと思うよ 簡単にベクタベースの独自スキンだかテーマだかを追加できるのが Nimbus LnFの特徴だと思ってたけど そうかも. GTK版のことは忘れるとして. NimbusはSwingのLnF.SynthはNimbusのLnF. Synthではない何かとNimbusの組み合わせも有り得る. Synthの見た目はコーディングレスで変えられる. Synthのデフォルトの見た目はこれhttps://nimbus.dev.java.net/spec/index.html であってる? さんきゅー把握した. SynthとNimbusの関係を逆に考えていたようだ. スレ違いの方が盛り上がるという現実。 SWTに未来は無いな! ハードの発達でメリットがネイティブのLnF位しかなくなったからなあ それも、メリットが享受できるのはWindows限定というな。 Swingの場合、内部構造の進化というのも大きい。 X の簡易版みたいな GUI フレームワークがあれば使いどころがあると 思うんですが SWT でいかがですか。ブラウザ使った Web アプリ型イントラは もう客が飽きてる。 196>> どう飽きてるのか? もっと知りたい。 たとえば、ウィジットが足りないのか? それともWebはマルチスレッドができない(8秒ルール:客は8秒またされる といらいらしてそのソフトを不快に思う)ので遅くなるがそれが原因なのか? 一瞬で出てこないともうそのソフト捨てようとするからなぁ JFaceのDataBindingが使えないという前提でMVCを意識した開発をしようと思ったら ObserverをImplementするとかして、オブザーバーパターンを採用するしかないのかな? SWTのBroswerで、スクロールバーの情報を取得したいのですが何か良い方法はないですか? このユーザはどこどこのサイトを幅800ドットのBrowserで上から100ドット分下にスクロールしたところを表示してる、と言うヤツの上から100ドット分下を表示というのを取得したいのですが SWTスレ過疎ってるね。。。 SwingからSWT,JFaceに移ったおいらからすれば後者の方がツカエル!って感じがしてるんだが。 SWTはGUIエディタがないので、GUIツールキットとして問題外 >>209 ないものは自分で作る、それがプログラマ SWTにGUIエディタがないとか言ってる人ってVE使ったことない人なの? ちなみにSWTはGUIエディタがなくてもJface使えばそこそこ書けるから魅力なんだけどな ふと思ったんだけどJavaFXでSWT書けないかな? いまだにEclipse3.3じゃVE使えないんだな >>214 ちょっとちがうけど、seasarのurumaならXMLで書けるっぽい おれも自分で試したことないからあれだけど urumaプロジェクトには少し期待している >>215 VEのサイト見ると、Eclipse 3.3で動くVE1.3を開発中だ、みたいに見えるんですが。 VEが開発中止だというソースplz。 >>219 今年の3月頃はまったくアクティビティがなかったし、 IBMも手を引こうとしてたみたいよ。 (ソースはメールなんでコピペできないけど。) んで引き取り手を捜してた。 てか、うちの会社にもメンテナンスしないかって話がきた。 今どうなってるのかしらないけど、開発中なら開発中なんじゃないの。 へぇ〜。それは知らんかった。情報ありがとう。 http://wiki.eclipse.org/VE/Installing に Click org.eclipse.visualeditor-1.3.0.200709121813.zip なんて書いてあるから、 順調に開発が進んでるのかと思ってたよ。 207>> SWT,JFaceはSwingより使えるね。 SWTはなぜはやらないんだろう? ピュアJavaでないからか? ペプシコーラは正規のコーラーでないが コカコーラより優勢なのに・・・。 >>224 スレ違いもいいとこだが、なんで日本ではコカコーラの方が売れてるんだろうな。 226>> おそらく、マクドナルドでコカコーラをセットで売り込んでいるからだと 思う。 SWTはSwingよりすばらしい。 ttp://www.eclipse.org/swt/R3_4/new_and_noteworthy.html 最新のSWT。こんな機能がSwingにはあるだろうか? コーラの選択をしないといけないとき、どうやって決める? 好き嫌いだけだろ。 SWTが流行ってない理由は、 自分で飲むならペプシでいいが、 コカコーラの方が好みの分からない人にでも勧めやすいのと一緒だろう。 >>228 よく言えば玄人向き。悪く言えば人を選ぶってことか。 まあGUIの見た目ならSWTの方がSwingよりOSの標準に近いから、 アプリを作る側はともかく、使う側の人には勧めやすいんだが。 ちっちゃいことなんだけどさ、外部ライブラリでサイズが膨れ上がっちゃうのが嫌なんだよな〜 >>226 自販機の数とコンビニの品揃えの問題だと思う >>231 サイズうんぬんよりもライブラリを別個必要とするって点が流行らない理由なんじゃね? JREに標準でSWTが組み込まれてればもう少し状況も変わる気がする >>233 同意。標準で含まれてないと言うだけで敷居が高くなる。 JRE自体が標準でOSに付いてこない(こともある)から、 そーいう議論でJREとSWTに差を付けるのは難しい。 >>235 そうか?Swingを選ぶかSWTを選ぶかっていう点では、JREはある前提だろ。 SWTはWindowsでしか使えないのがダメだな。 使えないってそういうことね、確かにmac版は重い。了解 >>236 頒布物にswt.jarを入れとけばいいだけの話。 後は「要JREだよ」で話は終わり。 JNLPをするとき面倒だと思った。 というか、Windows専用って感じはするかな・・・・ SWTの完成度を考えると。 速度が遅かったり見栄えのとけ込み具合とか。 Mac、JNLPは使ったことないから何とも。 Ubuntu用はいけてたよ。テーマを変えたら追従してくれるし。 Mac OSX - Cocoa はいま問題が生じていて 解決しようとしているらしい。SWT。 ttp://www.eclipse.org/swt/ EclipseはSWTを採用しているのでSWTが直らないと重いまま・・。 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::。::::::...... ... --─- :::::::::::::::::::: ..::::: . ..:::::::: :::::::::::::::::...... ....:::::::゜::::::::::.. (___ )(___ ) ::::。::::::::::::::::: ゜.:::::::::::: :. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..:::: :::: :::::::::.....:☆彡:::: //[|| 」 ||] ::::::::::゜:::::::::: ...:: ::::: :::::::::::::::::: . . . ..: :::: / ヘ | | ____,ヽ | | :::::::::::.... .... .. .:::::::::::::: ::::::...゜ . .::::::::: /ヽ ノ ヽ__/ ....... . .::::::::::::........ ..:::: :.... .... .. . く / 三三三∠⌒>:.... .... .. .:.... .... .. :.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ...... :.... . ∧∧ ∧∧ ∧∧ ∧∧ .... .... .. .:.... .... ..... .... .. . ... ..:( )ゝ ( )ゝ( )ゝ( )ゝさようなら SWT… .......... .... i⌒ / i⌒ / i⌒ / i⌒ / .. ..... ................... .. . ... .. 三 | 三 | 三 | 三 | ... ............. ........... . ..... ... ∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪ ............. ............. .. ........ ... 三三 三三 三三 三三 三三 三三 三三 三三 ∩___∩ /゙ミヽ、,,___,,/゙ヽ | 丿 ヽ i ノ `ヽ' / ○ ○ | / `(○) (○)´i、 先生助けてっ!、 | U ( _●_) ミ 彡,U ミ(__,▼_)彡ミ 3年前まで元気だった SWT が 彡、 |∪| ,,/ ,へ、, |∪| /゙ 息をしてないの!! / ヽ ヽノ ヾ_,,..,,,,_ / ' ヽノ `/´ ヽ | ヽ ./ ,' 3 `ヽーっ / | │ ヾ ヾl ⊃ ⌒_つ ソ │ │ \,,__`'ー-⊃⊂'''''"__,,,ノ | SWTは標準うんぬんもそうだが、ドキュメントがウェブ上に少ないのも痛い。 JavaのGUIといえば、AWTかSwingがドキュメントのほとんどだから、 下手するとSWTのことをAWTとSwingを混同してる初心者の勘違い発言だと思ってるヤツもいる。 SWTの本会社に置いといたら「本あるんだ!」ってびっくりされた。 あるよ!超あるよ!! ごめん。超は嘘。 SWTは(Sunが決めた)標準じゃないといわれても、 Eclipseを使ってるとそれほど気にならないんだよなあ。 ドキュメントなら、SWTのサイトにAPIリファレンスもサンプルが転がってるし。 実際もうネイティブであるアドバンテージもあまりないんだよな。 Pure Java で Swing の Look & Feel として動く層と、 Browser のようなネイティブ機能使う低レベルコンポーネント集の 2 層構成で良いよ。 それをいっちゃー、Javaにこだわる必要もないなあ、という結論になりそう。 ネイティブであるアドバンテージはプログラマーでなく、 お客様(ユーザ)が判断するもの。 『ナにこれ?このファイルダイアログ見掛けが変だよ〜。 全部やり直してよ〜。 それまで、お金払わないよ』 っていわれれば 乙。 ぶっちゃけファイルダイアログ以外はSwingでいいかなと思ってる。 Windowsプログラマのオレにとっちゃ、SendMessage関数 が使えるSWTは神に思える。 それが使えりゃいい程度なら JNI で作れば良いじゃんと思う今日この頃。 日本ってJFaceの情報少ないよね。 >>258 話が飛躍しすぎ おまいには SendMessage() アダプタ一つ JNI で組むのがそんなに難しいのか? いや特定の Win32 API 使いたいために SWT 選択するくらいなら、そのアダプタ (ブリッジか) JNI 一回作ってしまえば後は AWT なり Swing なり何なり好きなもの選択できるじゃんという話。 そんなに難しいことは言っていない。元の人は Windows プログラマなんでしょ? そのアダプタかなんかを作って維持する手間が 馬鹿にならないんじゃない? Windows以外でアプリを走らせることを 想定してないみたいだし。 維持? CVS の片隅に塩漬けにしておくのがなんか手間か? それとも SendMessage() が Win に SP 当てるたびに挙動変わるようなものだと思ってる? わかったわかった アダプタかなんかを作って → C のソースで 10行? 20行?。フリーの C コンパイラ落とす方が手間なくらい。 維持する手間 → 一回作ればほぼ変更不要。JDK1.1→1.2 の大改革が起きたときくらい? だから、SendMessage() が使えるから神というなら自分で作る方が選択肢広がるんじゃね、と思った次第。 SendMessage()だけじゃ使えない。 os.eclipse.swt.internal.w32.* はどこかから持ってこれるのか? 話勝手に膨らませてないか? SWT の Win32 API 機能フルで使えないと認めないと言う話? >>257 じゃないから分からんけど、 SendMessage()を使うんだったら、それにまつわるメッセージ定数やら WPARM, LPARAMにパラメータをパックする仕掛けやらを期待するんじゃないのか。 うーん確かにそうだが、SendMessage() 程度ならどう転んでも 2〜3 時間も作業すれば 十分な気がするんだが。以後何年かは使えそうなのが。 パラメータはメッセージ元と先の取り決めだから Java の呼び出し側でバイト配列組み立てれば良いし、 JNI 側は DWORD とバイト配列を選択的に受け取れる口にしておけばいいし。定数と パラメータバイナリ組み立てのためのユーティリティ機能を Java 側で用意して、あとなんかあるか? 多分、自分で使う部分を実装して、必要に応じてちょこちょこ手を入れる、 と言うことになると思う。後は、そーいう諸々の作業(仕様を考えて、 実装して)をする手間と、swtのを使う手間とを天秤にかけてください。 車輪の再発明してもしょうがないだろ。既にあるならそのまま使っときゃいいじゃん が、SWT自体がAWTの再発明という罠 車輪を使いたいために車を買うのはどうかという話をしてんの。 程度の問題だな jpgやzipのデコードエンジンを作るとかならともかくSendMessageするJNIを作る程度なら SWT頼るよりはJNI組んだ方がよさそうだ まぁ最初からSTWでコードを組んでるならともかくSendMessageのためにSWT使うのは本末転倒してるな まぁ、SWTはIBMのスーパープログラマーが作っているから N●◎データや日立△▲で派遣で働くプログラマーよりも信頼性高い ことは確か・・。 Inter○tageとか使いたくないよ。Grassfishとかで普通に作りたいなぁ。 ネットにノウハウの少ないマイナーフレームワークなんて使用者からすれば地獄だねorz あ、一応ここはGUIネタじゃなきゃスレ違いだったかな すげ〜〜〜! SWTを2〜3時間で作れるって、>>270 は天才だな。 つか、おまい、SWTのソースコード見たこと無いだろ。 つか、おまい、SWTでプログラミングしたこと無いだろ。 どうだ?図星だろ? くやしかったら3時間でSWT作ってミロや。 いや、3時間なんてケチな事は言わん。3週間やるからSWT作ってミロや。 匿名掲示板だからっていい加減なこと書くなよな。 どうせ半べそかいて逃げるんだろ? おお、SWTスレがあがってる! と思って見にきてみたら・・・・・ 久しぶりに盛り上がり(?)ネタが 「SWT 使うほどじゃネェんじゃね?」 じゃな… >>285 いやいや、アンチの言い分がわかって面白かった。 >>266 >一回作ればほぼ変更不要。 ほんとうに一回作れば変更不要だったらいいんだがな で? >>270 は尻尾を巻いて逃げたのかい? 大風呂敷を広げてみっともないねぇ。 >>291 はまだ自分のバカさに気付いてないのか 気付いたら恥ずかしくて帰ってこれないだろうに どこまでがんばれるか、彼の今後の活躍にご注目ください。 どう頑張ってもSWTを2〜3時間で作るのは無理だろ。 SWTを2〜3時間で作るなんていう話がどこででてるんだよw SendMessageはSWTの肝だろ。そんなものを2〜3時間で作れるっていうなら見せて欲しい JNIは全く使ったことがなかったんでJNIの入門HP見ながら書いたけど ホントにSendMassage呼び出すだけのコードだけど20分ぐらいで出来たよ? まぁこのままじゃマトモには使えないんでSendMassageで何をしたいのかの用途に合わせてコーディングした方がよさそうだけど --WindowsAPI.java public class WindowsAPI{ static{ System.loadLibrary("WindowsAPI"); } public WindowsAPI(){ } public native int SendMessage(int hwnd,int msg,int wparam,int lparam); } -- --WindowsAPI.c #include <windows.h> #include <jni.h> #include "WindowsAPI.h" #include <stdio.h> JNIEXPORT jint JNICALL Java_WindowsAPI_SendMessage(JNIEnv *env, jobject obj, jint hwnd, jint msg, jint wp, jint lp){ return (jint)SendMessage((HWND)hwnd,(UINT)msg,(WPARAM)wp,(LPARAM)lp); } -- つか書いてる時間よりも入門HP読んで勉強してる時間の方が長かった Swingが自前で描画している、OSにはウィンドウと認識されていないような子ウィンドウに SendMessage()を送ったときの効果を再現してくれるアダプタだかなんだかは? >>299 で? たったそれだけでWindowsアプリが書けるとでも思うの? 何の役にも立たんゴミ書いて満足? >>299 SendMessageを使う部分がJavaアプリケーションのどれくらいの部分になると思ってるんだ?? Windowsガチイガチアプリが書きたきゃ、C#で書いた方が楽だろう? そんな、3時間過ぎたからって、みんなして責めなくても。 3日くらい待てば、>>299 はきちんとした仕様と実装を作ってくれるんだよ。きっと。 >>299 それ使って Hello world! って表示できるの? 納得できないなら納得できないやつが納得できるまで自分で書けばいいんじゃね? 取り合えずSendMessageを呼び出すだけなら確かに呼び出してるし 書く必要無いよ。だって既に完成品があるんだもん。SWTが。 とりあえず、じゃやなくて、役に立つか立たないか、が問題だね。 学生が学習の為に実験的に書いたのを誇らしげに「どうぞ使ってください」って言われてもねぇ・・・ 役に立つかどうかの前に、スレ違いかどうかを問題にしてくれ。 >>306 SWTではSendMessage()使える → SendMessage()くらい自分で用意してSwing使え → そんなの作れるのか?という流れだから、 SwingでGUIを作ったときに、そのウィンドウにSendMessage()できなきゃだめ。 >>310 ポインタを示すんじゃなくて、自分の言葉で言えない? >>311 ひょっとして、読んでも理解できないのか? >>312 おー。理解できんよ。 HWNDがSwingから利用できるところにあるって情報だけじゃん。 SwingのウィンドウがHWNDもってるか、とかまったく書いてないのに、 どうやってSwingのウィンドウにSendMessage()できるかどうかわかるんだ? >>313 教えてほしいなら AWTスレか JNIスレで質問してくれ。 とりあえず SWTスレで続けるのはスレ違いだから。 はいはい。使い物になるSendMessage()はSwingでは無理、ということで落着。 sunのドキュメントを読んでも理解できない程度の技術力の奴が よく結論出せるなー。 なんだ、勘違いに気づいたバカが無理やり仕様広げて自分に有利な結論導いたのかw 「それでは使い物にならない」 しかもバカがまったく隠せてないというオチ 何だコリャ。実証コードが出たとたんに必死の自演叩きかw sage と半角使い分ければ他人になれるとでも思ったのか。 で。 ネイティブAPIをちょっと使うだけならJNIとかでバインディングぐらいさっさと書けばいいものを、SWTをフル実装するような話に膨らませてるのは結局何が主張したかったんだ? そもそもSWTのSendMessageなんて非公開クラスのメソッドだろうに。 なあ、SWTの存在意義ってSendMessageだけになってしもたん? >>322 なんちゃってじゃない、ネイティブL&Fだろう。 public 宣言されてるのに 隠しAPI とはバカまるだし。 さぁ早く早く。>>299 のコードを利用して "Hello World" をウインドウに表示してみろやクズども! >>281 ,291,294,296,302,305,307,326 そのままコテハンでも付けてくれると無視しやすくて嬉しい。 「SendMessage 使える」ってのを、 「SWT のコントロールは Windows のウィンドウだから SendMessage でメッセージ送って いろんなことができる」じゃなくて、文字通り「SendMessage API が呼び出せる」と解釈して しまった人がいた、というだけのことでそ・・・ Windowsあまり使わない人が読めば後者の意味にしかとれないだろうし。 SendMessage ベースのメッセージドリブン設計が好きなら素直に VB でも使っとけよと。 >>329 いや、Windows使ってた奴が >>310 の文書読んで理解できないって事はないでしょ。 ×Windows使ってた奴 ○Win32 API使ってた奴 >>301 も Win32 API 使ってた奴の発言とは思えんし…… >>205 亀レスだけど。 BrowserにSWT.V_SCROLLスタイルけると、2重にスクロールバー付いたりして、うまく動かないねえ。 import org.eclipse.swt.SWT; import org.eclipse.swt.layout.*; import org.eclipse.swt.browser.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.events.*; public class SimpleBrowser { public static void main(String[] args) { new SimpleBrowser(); } public SimpleBrowser() { Display d = new Display(); Shell shell = new Shell(d); shell.setLayout(new FillLayout()); Browser browser = new Browser(shell, SWT.V_SCROLL); browser.setUrl("http://www.google.co.jp "); browser.getVerticalBar().addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { System.err.println(e.y); } }); shell.open(); while(! shell.isDisposed()) if(! d.readAndDispatch()) d.sleep(); d.dispose(); } } Shellクラスを作成するときにSWT.CLOSEを指定しなくても閉じるボタンがでます。 閉じるボタンを無効化するにはどうすればいいのでしょうか? Display display = new Display(); Shell shell = new Shell(dislay, SWT.TITLE); shell.setText("hoge"); shell.open(); >>335 SWT.MINやSWT.MAXを指定すると自動で閉じるボタンがついてしまうようでしたが、 SWT.TITLEだけにしたらできました。 ありがとうございます。 いきなりですけど、C++からSWTを使う方法ってありますか? 調べた範囲ではJNIを使えばできそうかなと思うんだけど、 もっと簡単に使う方法とかないかな。 C++からSWTって無理なんじゃないの? できたとしても、マルチプラットフォームにならず、 特定のプラットフォームに依存したものになりそう・・。 素直にC++ベースのGUIライブラリ使えよ。 マルチプラットホームにしてもQtとかwxWidgetsとかあるんだから… # とか書いておいてなんだけどぐぐったらこんなの出てきた。動くかどうかは知らんが。 # http://www.pure-native.com/swtcpp/swtcamp.html Swingスレとマルチで失礼します。 RTF文章を何らかの形で表示(編集できなくてもOKです)させたいと思い、SWT_AWTを経由してSwingのJEditorPaneを使ってみたのですが、 実装があまりにも古すぎてJREに同梱されているLICENSE_ja.rtfすらマトモに読めない、という情けないことになっています。 一応他に何らかの代替/回避方法はないかSwingスレで聞いてみましたが、SWT側でなんらかの形でRTFを表示させる方法はないでしょうか? 多少ググって見たのですが、どうも一字毎に文字列・書式を解釈する、という方法しか引っかかってこないようです >>340 sourceforge.netでjava rtf libraryで検索かけたら いろいろ出てきたので有用なのもあるかもしれん >>341 お返事ありがとうございます。 うーん、この辺を利用or参考にして、自分でパースしていくしかないのかなぁ……。 単にRTF文章をSWT上で表示させたいだけなんですけどね(苦笑) SWTでComposite内にGroupを作成し、Tab順を指定するプログラムを作っているのですが Compositeのコンストラクタ内にthis.setTabList(new Control[]{ボタン,テキスト}の ようにしてもComposite内に配置してあるコンポーネントはTab順が決めれるのですがGroup内の コンポーネントをControl[]の配列に入れるとエラーが出てしまいます・・・・ 何か良い方法ないでしょうか・・? 宜しくお願いいたします このケースは親子関係のないコントロールを指定しているために エラーが発生します。 Compositeに関してsetTabList()メソッドを指定して引数にGroupを要素に含む配列を 指定し、再度、Groupに関してもこのメソッドを使用しそのGroup内の コントロールを指定します(GroupクラスはCompositeクラスを 継承しているのでこのメソッドが使用できます)。そうすれば、 もしもGroupにTab のトラバーサルが来たときにはGroupはコントロールの性質上フォーカスを もてないので、その子のコントロールにフォーカスが移ります。その順序は Groupに対してメソッドで指定した順序、メソッドを使用していなければ OSでのデフォルトの順序になります。 CoolBarの前回の使用状態を復元したいのですがどのような方法をとるのが適切でしょうか? 使用状態とは? 復元とは? 具体的にどう復元したい? 位置のことです。 移動ができるのでその移動した状態に復元したいのです。 CoolBarクラスの getItemOrder(), getItemSizes(), getWrapInduces() setItemLayout() を使用すると保存と復元は可能。 自分で保存しないといけないんですね。 XMLEncoder,Decoder的な便利なものがないのかなと思ったのですがそうもいかないですか。 ありがとうございました。 SWT & JFaceの必須ライブラリって今変わってるんでしょうか? かなりの時間かけてほぼ総当たりで調べてようやく分かったのですが他に分からない人が出てきた場合のために・・・ /plugins/org.eclipse.swt.win32.win32.x86_3.3.3.v3349.jar /plugins/org.eclipse.jface_3.3.2.M20080207-0800.jar /plugins/org.eclipse.equinox.common_3.3.0.v20070426.jar JFaceのソース /plugins/org.eclipse.rcp.source_3.3.3.r33x_r20080129-8y8eE9UEUWI6qujeED0xT7bc/src/org.eclipse.jface_3.3.2.M20080207-0800/src.zip 優しさと見せかけて自分メモでした。 すみません。 >>350 いや、こうやって記録残してくれると助かるよ。 例え助かる人間が一人や二人でも、それに掛かる時間がすごい短縮できるから。 俺もウザがられつつも、残すようにしてる。 JiglooのSWTエディタ使ってる人いる? 使い方が悪いのかもしれないけど、Swingに比べてバグが非常に多くない? JDesktopPane に対応する SWT のコンポーネントって何? メッセージループなんて 10 年ぶりだよ! ちょっと感動。 ネット証券で提供してるjiniツール。winとmacで動くって聞いたからlinuxでも動くかと思ったらSWT使ってて動かないでやんの まったく厄介なものを作ってくれたぜ とりあえず愚痴ってみる よくわかんないのですが、SWTってLinuxでも動くんじゃないんですか? JavaでWORAが実現するんだ、と目を輝かせていたあの頃…… 具体的に何が動かねぇのよ? どこまで Java が吸収してどこまでプログラマが意識しなきゃいけないか 分かってない奴が、自分のバグと無知識の言い訳にしてる事の方が多いんだが。 >>360 少なくともWebアプリの分野では完全に実現されてるぞ。 Winで開発、Linuxで運用とか当たり前のようにしてるからな。 まぁ、PHPやRubyでも簡単に実現されてるが。 まあ、デバイスも扱わずスレッドも使わないならできて当然でもある。 それでもファイルの扱いとか、どこでも同じ環境というのにJavaには及ばないな。 しかし、JavaはGUIに弱いことは明らか。 Swingのファイルダイアログは遅すぎ・・。 やはり、Swingの最大の失敗はlook & feelと ネイティブリソースを使えないことだな。 Windows Vistaが出たことで決定的になった。 ファイルダイアログが遅くなったのはJava6SEでFileが遅くなったからなので、look&feelとネイティブリソースとは関係ない話だね。 GUIに弱いことをあらわす事例にならんね。 >>367 GUIに弱い事例になるだろ。 u2から悪化していまだに放置だけど、u1までは普通に動いていたのだから。 ネイティブとは関係ないけど。 とはいえSwingで問題になりやすいのはそれくらいか。java.awt.Desktopのバグバグ問題はどーしようもないけど。 > java.awt.Desktopのバグバグ問題 具体的にどーぞ 要するに、 Swingとは違い、SWTのファイルダイアログは優れているということを 言いたかったのだ。 http://www.eclipse.org/swt/R3_4/new_and_noteworthy.html SWT3.4でもフファイルダイアログに関する上書き確認のAPIが実装されるらしい。 SWTがSwingを追い越す日も近そうだ。 SWTはWindowsで使うぶんには使いものになるよな 使えるけど、開発する側にはまわりたくないのがSWTってところかと Windowsだけってのはねぇ・・・・ >>366 Swingのチェックもしてますか?SWTだけだと厳しいぞ、この先生きてくの。 SWTは、eclipseではうまく動いてるけど、アプリ作って配信して動かすとかまで考えると PureJavaの方が・・・・っていう話もあるんだぞ・・・ UIが弱いというのは否定しないがね、SWTも含めてになっちまうが。 わたしもSWTのアンチエイジングで肌年齢が13歳若返りました >>67 ,70,71 だいぶ前の話になるけど、ProjectionViewerをスタンドアロンで 使用するのは、WorkbenchPartとかを継承してる時点で無理なんじゃないかな。 WorkbenchPartはUIをXMLとかで定義するので、SWT/JFaceのスタンドアロンアプリとは 作りが全然違うしね。 おいぼんくらswt廚 swtでこれ http://jdrafter.sakura.ne.jp に匹敵するプログラム作ってみろ。これswingベースだ出来るかばか 頭でっかちのswt廚のばか >>381 おお、swingでこれは頑張ったな。 お前つくったん? でもこの手のツール作るなら、やっぱRCPでやってみたいな。 SWT選んで、Draw2DとGEFか。 描画の非力さと、GEFのメタボ設計には泣かされるだろうな。 こっそり裏でGraphics2Dは使わざるを得ないだろうな。 うん、やりたくない。 で、Swing上で動くことの利点はなんだ? ブラウザ上でアプレットで動かして、共同作業とかできたりするの? >>382 Swingスレでもおなじのはってけなしてるから SWTだからとかはかんけーねーぞ GKのいつもの手だ >>383 >>381 はswingベースだよ。 描画と編集を受け持つクラスもJComponentのサブクラスだから、アプレットでも 簡単に表示と画像編集が可能だよ。 超初心者で申しあけございませんが、 画像を複数枚表示させたら画像がちらつきます。 repain();でもちらつきます。 どの言語を打ったら直るのでしょうか? ProjectionViewerをスタンドアロンで動かせるようになったよ。 ただ、折りたたみをしようとするとおそらく描画スレッドで 例外(NullPointerExceptionだったかな)が発生して 普通のエディタとしてしか使えないんだけど、一応報告まで。 >>388 javaのバージョンはいくつ? componentと同じサイズのVolatileImageつくってそれのGraphicsをクリエートして それに画像書き込んだあと、コンポーネントにdrawImageするっていう古典的な方法 を試してみたら。 SWTでwindows向けに作成されたGUIアプリは、Linuxでは動作しないという理解でOKですかね? Windows向けということはSWT汎用ではないだろうから動かないのは当たり前かと あとLinuxでも動くといってもSWTがサポートしてある環境じゃないとダメ すべてのLinuxで動くわけじゃない SWT を使ったサーブレットを作ったのですが、シェルを表示しようとすると 落ちてしまいます(Tomcat ごと)。 ディスプレイ関係なのかなんなのか分からないのですが、この様な症状に 陥った方、いらっしゃいますか? ちなみに落ちちゃうのでエラーメッセージとかはないです…。 ニュースサイトなどで定期的に更新される画像を指定した時間ごとに取得して、 保存・蓄積していくようなものを作りたいんです。 その上で、ブラウザ上でのクリックなどで画像を指定すれば取得できるようにしたいんです。 SWTのBrowserウィジェットは javaとのデータの受け渡しを行うメソッドが無いという情報を見たので、 OLEを使ってIEコンポーネントを呼んでるんですけどこの方法ってどうですかね? 現在表示されているサイトのHTMLを取得するところまで作成したんですけど 初心者に毛が生えた程度のレベルなので ほんとにこの方法が最善なのか分からなくて・・・。 ブラウザ上のクリックされた画像のファイル名を検出したりとか そういうことできるのかなー? 漠然としててすいませんが、どなたかアドバイスよろしくお願いします。 >>404 Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.NONE); label.setText ("ほげ"); shell.pack(); shellopen(); while (!shell.isDisposed ()) { // ← !がないと落ちる if (!display.readAndDispatch ()) display.sleep (); } display.dispose (); } >>406 すみません、語弊がありました。 落ちるというのは Java のプロセスが異常終了する、という意味です。 >>404 OSも書かないし、JavaやSWTやTomcatのバージョンも書かない、サンプルコードもない。 エスパーの存在を信じてるんだな… なんでサーバ上にGUIを表示させようと思ったのか気になる なんでサーバ上にGUIを表示させようと思ったのか気になるのかが気になる >>408 MacOS 10.5、Tomcat 5.5、SWT 3.3 になります。 サンプルコードは…本当に単純にシェルを表示しようとしているだけです。 単体で Eclipse 上からアプリケーションとして実行すると表示できるのは 確認しています。 Tomcat 上で実行した時だけ落ちてしまいます。 何でサーバー上でダイアログを出したいかと言うと、ライセンス認証を 行いたいためです。 すみません、すぐ出かけなければならないのでまた今度もう少し詳しく 書きます。 つーか、なぜサーバ上でライセンス認証しないとダメなの? >>412 まさかとは思うが、サーブレットの方にSwt使えば、クライアントのブラウザ側にウィンドウが表示されるとか思ってないよな? サーバー側で使用する管理用UIを用意したいとか、そういうことなんだよなきっと?! ねーよwwwwwwwww Eclipseのヘルプシステムがtomcatだったころ(今はjettyだっけ?)、ヘルプUIの一部として サーブレットからSWTを呼んだことはある。結局サーブレットじゃなくて拡張ポイント使ったけど。 またSWT_AWT使ったSWTのアプレットを試しに作ってクライアント側でSWTのコントロールを表示したこともある。 事前にdllの配置が必要だったから全く実用性はないけど。 #今のSWTはdllを自己展開するから署名して権限与えとけばそれなりに使えそうな気もするけど。 だからありえないとまでは言わないが、普通はやらないな。 >>415 それはサーブレットからSWTを呼んだとは言わんわな。 サーブレットが返すHTMLに埋め込まれたアプレットがSWTを呼んだ、というだけで。 >>413 コマンドライン等は極力使わないで GUI で操作できる事を前提に構築 されているサーバーなので…。 >>414 さすがにそれは考えてないっすw お騒がせしたのですが、SWT 3.4 にしたら普通に動きました。 SWT 3.3 と Leopard の相性が悪かったみたいです。 申し訳ありません、ありがとうございました。 >>417 >コマンドライン等は極力使わないで GUI で操作できる事を前提に構築 だったらサーブレットじゃなくてJavaアプリケーションのほうがよさそうだけれども >>417 サーバの管理機能をGUIでって感じなのかな? だとしたら管理機能ををWebで実装すればすむはなしじゃないのか…? >>418 とりあえず、今回は認証だけ単体のアプリケーションで行う様に しました。 >>419 確かに、そういう手もありましたね。 今回はとりあえずインストールと同時に認証させる形にしました。 ヒープの気になるWebコンテナから SWTの画面を出してしまうとわ・・・ >>421 起動時に一回呼び出すだけでも問題あるんですか? あと、dispose とかしてもダメですか? いまいちどういうアプリなのか想像できねー WebアプリからGUI画面呼び出すなんてありえん 起動時に1度だけ呼び出すとか意味不明すぎる それなら普通にGUIアプリからアプリケーションサーバー呼び出すほうが無難 馬鹿げてる. 悪いことは言わんからHTTPサーバ内でウィンドウを出すのはやめておけ. >>423 ダメな理由がいまいちよく分かりませんが…。 実際、jetty を内蔵していて GUI 画面もある、とあるソフトは起動時に 認証を行っていますよ。一般的に有名ではないですが、米国では そこそこ売れてる様です。 ディスプレイもないサーバーならまだ分かりますが、GUI ベースで 管理しているサーバーなら普通にあり得ると思うんですが…。 とりあえず今回はウェブページ経由で認証した方が楽なので そっちで作り直してしまいました…。 Win 用のコンソール GUI 付いたサーバなんていくらでもあるじゃん。 あたま難すぎじゃねぇのおまいら。 >>426 GUIの管理ツールの話じゃないだろ あたまわるすぎ >>428 みたいに、例で出したコードそのまま書いてくる莫迦っているよね。 Eclipseのヘルプシステムがtomcatだったころ(今はjettyだっけ?)、俺は夕焼けだった。 RMI なんかで常駐物作ったりするときはタスクトレイからウィンドウ出したり普通にするけどな。 まぁサーブレットしか触ったことのない派遣じゃそんな設計する機会もないだろうけど。 Mac cocoa でのSWT portはSWT3.5がでるまで待ってたほうがよい。 ソース:ttp://www.eclipse.org/swt/R3_5/plan.html >>431 質問者はサーブレットから起動させたいとわけのわからないこといってるので その話とはまったく別物かと サーブレットから起動と言うか、init で一回だけ呼ばれるクラスを作って そこで認証させようとしてました。 アプリケーションサーバーから起動するとセキュリティでひっかかってやれないことが増えたりするからやめたほうがいいよ。 アプリケーションとして起動して、そのアプリケーションからアプリケーションサーバーを起動するのが一番良い。 MacOS X Leopard の 64bit Java VM (JSE6) で SWT 3.4 は動かないの? 何か良いSWTの解説書籍みたいなのはないの? Java GUIプログラミング (SWT編) とかいうのぐらいしかないの? 次世代Javaに乗る予定のnimbusきたらSwingもSWTも終わるよ nimbusはとっくの昔に載ってるし、なんでnimbusでswingが終わるんだよww >>436 SWT3.5まで無理っぽい。 SWT for 64-bit Cocoa 64-bit OSX Cocoa is now available. As with the 32-bit implementation, ...(つづきは ttp://www.eclipse.org/swt/R3_5/new_and_noteworthy.html) OS X(10.5.5), eclipse 3.5M4, SWT cocoa 3.5M4(もしくはSWT carbon 3.5M4)の環境で shellを一枚オープンするだけのコードをjarでエクスポートして実行するとフリーズするのは、上にも出てるけど64bitのJavaだと動かないから? デフォルトのJavaVMを変更して32bitで動かすというような設定ってある? プロジェクトのプロパティからJavaVMを変更するとデフォルトの1.5以外全部動かないんだよね・・・ eclipseがSWTで出来てるんだから何かしら方法は有りそうな気がするんだけど JNIは32bitと64bit分けないとダメなのがだるい そしてそれにのっかったEclipseはきっついな >>446 5万円以下のパソコンが最近はやりだな。 行き着く先は無料のLinux搭載のパソコンの普及。 となると、開発者側としては1たびコーディングしたら Linux用とMac用とWin32用をアプリを生成できる言語が必要となる。 つまり、Javaの出番がまわってくる。 Swingか、SWTか、Webアプリケーションかどれが優勢はわからないが・・・ 圧倒的コストの差で生き残るのはWebアプリ ニッチなところでSWT もうSwingに出る幕はない >>449 解決方法を書いていけよ >>448 Swingが意外と使われていることに気づいていないようだな・・・ b2cではWebアプリだが、b2bではSwingが結構まだいる。 SWTは聞いたことがない。 コストの差で生き残れるのならSwingのほうが開発コスト低い気がするが Swingで1画面あたり200項目近い入力画面を作ると動かなくなっちまうんだよな。 .netなら比較的軽く作れるのに・・・もっと軽量なのでてこないだろうか・・・ >>452 はEclipse使ってるくさいな だとしたら200項目もあればまずとまる NetBeansで200ほどテキストフィールド配置してみたけど、まず問題なかったぞ。 GroupLayoutだから重めの処理してるはずだが。 フォーカス移動のたびにデータ取得するとか、なにかイベントで重い処理やってるんじゃないの? JScrollPaneの上にのせて、スクロール量の設定してない、と予想w それか単純に釣られまくったか だいぶ前だがEclipseVEだと50個のせるともう遅くて使い物にならなかったな SWTのことでHelp Exclipse SDK 等を調べてもよくわからなかったので 質問させてください。 以下のパネル(?)を実現しているクラス名を教えてください。 ・Eclipse の 画面 のツールバーから下を占拠しているタブ(?) とcoolbarが合体しているデザイン ・タブのような部分にパースペクティブの情報を埋め込める (Eclipse Version: 3.4.1 日本語化のデフォルトでは デバッグ、Java参照、Java が表示されている) 皆様、ご教示お願いします。 >>459 SWTからさらに上に積み上げて造られたコンポーネント org.eclipse.ui.part.Interface IPage ttp://help.eclipse.org/ganymede/topic/org.eclipse.platform.doc.isv/guide/editors_workbench_outliner.htm?resultof=%22%43%6f%6e%74%65%6e%74%22%20%22%63%6f%6e%74%65%6e%74%22%20%22%6f%75%74%6c%69%6e%65%72%73%22%20%22%6f%75%74%6c%69%6e%22%20 >>460 ありがとうございます。 今日一日、これを探していました。 よくよんでから眠りにつきたいと思います。 追伸 皆様、ageてしまってもうしわけなかったです。 テーブル内にPUSHボタンを配置しているのですが テーブル内の情報を更新してもボタンだけが消えずに残ってしまいます。 このテーブル内のボタンを消すメソッドまたは他の方法があるのでしょうか? 全部一回破棄して描画し直したほうがいいのでは? ものすごく遅く成ると思うけどね。 おもっきしすれ違いですが 洒落陸づら 書籍 JAVA Filthy Rich Clients アニメーションとグラフィカルエフェクトを使ったデスクトップJavaアプリケーション開発 著:チェット・ハーゼ、ロマン・ガイ 訳:松田晃一、小沼千絵 刊行:2008年11月25日 ページ数:612 判型:B5変形 税込価格:5,670円 10-ISBN:4-89471-283-0 13-ISBN:978-4-89471-283-6 http://www.pej-hed.jp/washo/2594.html http://www.pej-hed.jp/washo/file/896.jpg を持ってる方 よろしくお願いします SWTのFileDialogをWebアプリで使いたいんだけど 第一引数に親ウィンドウとして何を渡したらよいかな ごめんなさい。忘れてください。 アプレットのつもりで、クライアント側で呼ぶことを考えてましたが 不可能とわかりました。恥ずかしいので消えます。 ともあれ、レスありがとうございました。 >>301 ∧ ∧ 一人一個まで ( ´・ω・) ( ∪ ∪ ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 と__)__) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) 梅干 高菜 おかか こんぶ ごはんですよ わさび漬け 焼たらこ ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) 鶏飯 明太子 ちりめんじゃこ ゆかり 柴漬 塩辛 牛肉しぐれ ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 ,.-、 (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) (,,■) 鮭 鶏ごぼう 野沢菜 天むす ツナマヨ エビマヨ 鮭マヨ 具なし Browserのレンダリング内容を画面外含めてキャプチャしたいんだが、 どうもGC(windowsのDC)経由だとスクロールさせて画面をつながなきゃ逝けないみたいね。 キャプチャツールもみんなスクロールさせて繋いでるし。 まあそれならそれでいいんだが、Browserをスクロールさせるのはどうやればいいんだ? browser.getVerticalBar(); はIEコンポーネント内のスクロールバーを取れてない気がする。 もしかして browser.execute("window.scrollTo(0, 100);" ); しかないのだろうか >>471 Eclipseのニュースグループで自己解決した。 やっぱBrowser内のスクロールバーはIEコンポーネントの内部実装で、 (今のところ)そいつをBrowser越しにいじくることはできないらしい。 browser.executeが唯一の方法のようだ。 >>470 おっちゃん、おいらam/pmで売ってた「とり天」のがいい 自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L 名言集 その4 『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』 http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ のID:PVAf+dux0 = 自動焼人 ★ > 965 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:02:09.35 ID:PVAf+dux0 > まぁ何だ。 > 俺の過去の経歴に比べたら、割れ厨なんて鼻くそレベルなんだけどなw > 100人規模の集団サイバーテロの主犯とか、いろいろとな。 ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください swtのbrowserでpostのリクエストを出す方法ってありますか? Browser.exec() で JavaScript から POST を実行 処理中もボタンの入力を受け付けたいのですが、 以下のコードだと処理を別スレッドにしてるのに固まってしまいます。 何が悪いでしょうか。 Display disp = new Display(); Shell shell = new Shell(disp); shell.open(); Thread proc = new Thread() { public void run() { while (true) { try { Thread.sleep(1000); } catch (InterruptedException e) {} } } }; disp.asyncExec(proc); while (!shell.isDisposed()) { if (!disp.readAndDispatch()) { disp.sleep(); } } disp.dispose(); それ、別スレッドになってない。 asyncExecはUIスレッド内の適当なタイミングでRunnableのrunメソッドを実行するだけ。 そうなんですか。ありがとうございます。 普通にThread#start()使わないとダメってことですね。 処理状況をリアルタイムで画面に反映したかったのでasyncExecを使ったんですが、 画面更新はメインスレッドでやるようにします。 でも、それだとasyncExecって何のためにあるのかよく分からないですね。 ああ、理解しました。 startで起動したスレッドの中で、さらに画面更新処理スレッドを作って、 それをasyncExecに投げればいいってことですか。 つーか、widget類ってUIスレッドでしかいじっちゃいけないから、 並列で何かの処理をするスレッドのrunの中で、 asyncExec()を付かて画面更新用の処理を 行わないといけないと思ってたんだけど違う? java -classpath lib\swt.jar;lib\log4j.jar;lib\derby.jar;lib\swt_app.jar app.control.ApplicationMain こんな感じのコマンドプロンプトのbatファイルを作って、 そこからSWTアプリを起動しているんですが、 それだとコマンドプロンプトのウィンドウも出たままになってしまいます。 もっとスタンドアローンっぽく、SWTのウィンドウだけ出したいんですが、 そう言う場合、どうやって起動すればいいのでしょうか? ありがとうございます。 javawへのショートカットを作って簡単にできました。 でも、ショートカットに作業ディレクトリを自分で設定しないといけないところが一つ難点です。 batならファイルのある場所が自動でカレントディレクトリになってくれるんですが。 こんな感じでSWTで.exeを作成すれば、Windowsでも ttp://www.okapiproject.com/richclient/eclipsercp/helloworld.htm startコマンドつかえ。 バッチファイル start "" java -classpath lib\swt.jar;lib\log4j.jar;lib\derby.jar;lib\swt_app.jar app.control.ApplicationMain Swing の ActionMap/InputMap でできるようなショートカットを使いたいんだけど、例えば ウィンドウのどこにフォーカスがあっても CTRL+S で保存メソッドが起動するようには どうすればいいですか? あるコンポーネントに描画されているグラフィックを、 別のコンポーネント上に描画するにはどうすればよいですか? >>490 やったことないけど、3.4からControlでgetListeners()使ったPaintListenerの取得とか、 print()とか、できるようになったから試してみたら? >>491 すまん、スレまちがえた SWINGスレで質問したかったんだよ。。。 TextCellEditorを設定したセルをクリックするとそのセルだけ幅が広がり、 となりのセルを隠してしまいます。そのとなりのセルをクリックしたい 場合は一度関係ない場所をクリックしてセルからフォーカスをはずさなければ なりません。なのでセルをクリックした時に自動的に幅が広がらないように するにはどうすればいいでしょうか? >493 もう自分で答え言っているのでは? Textが自動で広がらないようにする→自動で広がるコードを探す →そこをoverrideする (ヒント) SWT.DEFAULT >>494 さん。 すいません、バカなので解らないのですが、TextCellEditorを継承したクラスを を自分で作成するのでしょうか、それともどこかにSWT.DEFAULTを指定すれば、 目的が達成されるのでしょうか。 >>494 さん 解決しました。ありがとうございました。 public LayoutData getLayoutData() { LayoutData result = new LayoutData(); result.minimumWidth=0; return result; } SWTでのUIの設定値を全て外部の(例えばXMLなど)ファイルに 持たせて、そのファイルの設定値をいじればいくらでも改変可能なんて作りって 出来るんですかね? tableviewerで質問させてください。 csvファイルで読み込んだデータをテーブルに追加する処理を作成中なのですが、 カラムの数が固定ではなく可変の場合の処理がうまくいきません。 一定の領域を事前に確保しておいて、その領域にカラムを登録する場合なら 問題なかったのですが、制限なく登録できるようにしたいのです。 tableviewerのことがのっているサイトを見ても カラム数が固定となっているものばかりで、1週間ほど悩んでいます。 どうすればカラムが可変でも問題なくなるのでしょうか? import java.swing.*; インポートで*を使うデメリットは何かありますか? ウィンドウをリサイズしたときに SashForm の左の領域幅を変えたくない んだけどリサイズウェイトってどうやって指定するの? JSplitPane#setResizeWeight() みたいなのがあれば良いんだけど。 欲しいものの代わりに自分で計算して、ちまちま再描画だろう。 もし出来たら、公開しとくと、他にも欲しい人が居るかもね。 ありがとう。回答あるまで待ってみたが、無いと分かれば安心して自分で作れますわ。 というかさっき出来て Wiki に書いておいたので 1 ヶ月もすれば検索ひっかかるかも。 ToolTip の豪華版が必要なので SWT.NO_TRIM の Shell でそれっぽいのは出来たんですが、 open したときにフォーカスを持って行ってしまいます。フォーカスを持って行かずに オープンする方法はないでしょうか。 やってること: 通常 → 複数行入力 一行入力モード ON → ENTER キーが押されたら処理開始 Text (SWT.MULTI) に KeyListener 仕掛けて ENTER キーが押されたら処理をしようと思ったんだけど 日本語入力中に確定の ENTER 押しても反応してしまうのよ。入力中かどうか判定する方法はない? Eclipse で日本語入力後に [CTRL]+[Z] 押した時の挙動を見てると、IME の未確定状態も全部 入力として拾ってるみたいだから無理かもしれんね。 TreeItem の項目を右クリックした時に状況に応じたポップアップメニューを出すよう 作ってるんだけど、どうしても選択とセットになってしまう。 MouseEvent には doit がないし、選択項目を移動しないで右クリックのイベントだけ拾う様な方法はないですか? >>512 ポップアップメニューをPopupMenuListener#popupMenuBecomeVisibleで加工する。 ↑は ENTER 書き込みの話。日本語入力は関係なかったな。 何百個も列があるテーブルを作ったんだが、 各TableColumnの表示幅の合計が33500くらいを超えると それ以降のテーブルヘッダが表示されなくなった・・・。 (表示幅33500以前のヘッダは表示される) これって仕様なのかしら(´・ω・`) 解決方法知りませんか? StyledText って軽くてシンプルで便利だなw >>516 winのコントロール全般に、その幅で裁ち切られるんじゃなかったっけ。 あと、そもそも何百列も一度に表示するのは設計ミス。 >>519 そうなんですか(´・ω・`)じゃあどうしようもないってことなんですかね。 >あと、そもそも何百列も一度に表示するのは設計ミス。 一度に出してテーブル内のスクロールバー移動で 最後まで見えるようにしろと言われまして・・・ エクセルのピボットテーブルみたいなノリだなw 要求が馬鹿過ぎ。 表示だけvcで作ってjniで呼んだら? Shell をオープンするとどうしてもそっちにフォーカスが移動してしまうんだが フォーカスを受けない Shell って作れないのかな? AWT でいう Window や Swing の JWindow みたいな。 JProgressBar の setIndeterminate(true) と同じ状態って ProgressBar でできませんか? Mac の進捗バーのあのうねうねが出したいんですが。 >>522 Tooltipが参考になると思われ。 >>523 できた気がする。 Composer - SWT HTML Editor Widget swtのwysiwygエディタなんですけど Composer - SWT HTML Editor Widget http://sourceforge.net/projects/swt-composer/ これの使い方分かる人いませんか? また、これ以外にswtのwysiwygエディタってなにかありますか? >>528 「swtのwysiwygエディタ」じゃなくて、Eclipse用のHTML WysiWygエディタなのか。 もしそうだったら、このスレじゃなくて、Eclipseスレに行ったほうがよいよ。 Browser 上で選択されているテキストを取得したいんだけど何か良い方法はないかな? http://pc12.2ch.net/test/read.cgi/tech/1137771139/ 【OLE】オートメーション総合スレ【ActiveX】 javaからは直接呼べないけどな。 vbかvcでもどぞ。 >>532 ActiveXコントロールをSWTアプリケーションへ統合する ttp://www.ibm.com/developerworks/jp/opensource/library/os-activex/ そりゃ Browser じゃできないって事で良いですかね。 Mac だと TreeItem に 4x4 くらいの小さな画像設定した時に、勝手に 16x16 くらいに 引き延ばしやがるのかな。 >>537 SWTのバグではなく、OSの仕様だと思われ・・・ TreeItemの1番目にたとえば、16x16のイメージを設定している場合、 2番目、3番目それ以降に異なるイメージを設定しても、1番目のTreeItem がデフォルトサイズとなり、勝手にOSが引き伸ばしたイメージを 作成し設定する。 これは、Treeだけではなく、TableやTabFolderでも同様。 1番目のTreeItemをあえて使わないとか、透過GIFで大きいイメージを 設定するとか試してみれば? Browserクラスがサポートするブラウザとブラウザのバージョンが分かる サイトってどこかにありますか? >>540 ttp://eclipse.org/swt/faq.php >>539 すみません、別の問題だったみたいです。 大きさの違う画像を再設定した場合、新しい画像が以前の画像の大きさにリサイズされてしまうという 話でした。画像の再設定後に layout() や computeSize() を試してみましたが、どうも以前のサイズが 残ったままのようです。サンプルソースおいておきます。何かうまい方法はないでしょうか? http://tool-ya.ddo.jp/webfs/ ~enigma/IconSample.java フォントサイズを変更したときにフォントに合わせてサムネールのサイズも変えるという処理を組んでいた のですが、Windows で動かしたときにたまたま初期設定のフォントサイズが想定したサイズだったので うまく動いているように見えただけでした。 ウィンドウバーの細いウィンドウって出せない? Illustrator のツールウィンドウみたいなのが出したいんだけど。 SWTなんてgcjがawt&swing対応になったら、なんの価値もなくなるだろ。 土人だというアドバンテージしかないんだからSWTには。消えてなくなるよ。 ん? あのtomcatもgcjでコンパイルしてるんだろ? 印刷マージン列を例えば 100 に設定するとだいたい 100 カラムあたりに補助線が 出るじゃん (正確じゃないけど)。ああいったような縦線って StyledText でどう やって出すの? setToolTip() で設定したツールチップをマウスのロールオーバーなしに 強制的に表示したいんだけど、ToolTip インスタンス作って自前で表示するしかない? ShellとかCompositeはGraphicsオブジェクトを取得して その上でお絵かきできるんだろうか? paint()メソッドは 呼ばれるの? おおきに。 俺、netbeansのGUIビルダーでばっかりやってやから 自分でレイアウト手書き殆どしてないんだよな。 netbeansのnullLayoutで作ったソースを もってきて、SWTはLayout使わずにsetBounds()で部品の 位置決めするのが楽そうだな。 >>543 new Shell(display,SWT.TOOL|SWT.TITLE); StyledText の setLineWrapIndent() って SWT 3.6 からか… 3.6 が正式リリースになるのっていつ頃になりそう? そりゃ、Eclipse 3.6が正式リリースされる頃、だと思うぞ。 ttp://www.eclipse.org/projects/project-plan.php?projectid=eclipse#release_milestones ''Our target is to complete 3.6 in late June 2010'' なんだもうすぐじゃねぇか。Milestone リリースとはいえ道理で安定しているわけだ。 どうもありがとうございました。 StyledText への画像埋め込みで Cocoa (32/64bit両方) だと Glyph に指定した 幅と高さの領域を取ってくれないのな。並べた画像が重なっちまう。 Win や Carbon ならちゃんと表示されるのに。 shell.setLayout(new FillLayout(SWT.VERTICAL)); composite1.setLayout(new FillLayout(SWT.HORIZONTAL)); composite2.setLayout(new FillLayout(SWT.HORIZONTAL)); として敷き詰めたパネルの中央部分をユーザーが マウスのドラッグすることでサイズを変更出来るようにするには何を変えたら良いのでしょうか? あまりに基本的な事柄でバカらしいと思われるかもしれませんが 教えていただけると嬉しく思います。 ドラッグのイベント拾って shell のサイズ変えれば良いんじゃね? マウスがウィンドウから出た時に自動的にクローズする処理を書いています (Shell 上にはマージン 0px で 1 つのコンポーネントが乗っています)。 mouseExit() で Shell を dispose() する MouseTrackListener を Shell に仕掛けると 0 pixel の境界から出た時に通知されません。同じリスナを内包するコンポーネントに 仕掛けると、今度はタイトルバーやスクロールバーの上に行っただけで閉じてしまいます。 何か良い方法はないですか。 >>558 わかりにくい表現ですいません…。 SashFormを使えばやりたい事ができることがわかりました。 Jobsの気が変わらない限り、法的に不可能。 iPad/iPhoneでは、iPhone用のObjective-C以外でプログラムを作れないことになっている。 Java は動くんじゃねぇの。 まぁ下のネイティブライブラリを汚侮辱都市で書き直す必要があるが。 Javaランタイムの開発自体が禁じられているから、無理。 ああ、標準で Java 積んでんのは Android だったか。 しかし Apple はどうするつもりかね。バカもチョンも デザイナに毛の生えた奴から組み込みのプロまで全員汚侮辱都市使えってか。 AndroidはJava言語で開発できるが、JavaVMじゃないから注意 JNI使ってるものは特に無理 AndroidはDalvik VM。 中間コードの形式も違う。 確かHotspotとかJITも無かったような気が。 普通のVMじゃ駄目だったのかな?良くわからん フットプリント軽くするためのレジスタマシンだからね Javaと同じとは考えないほうがよい スタックマシンと何が違うのやら教えてエロい人"! 個人的にはコアライブラリとソースレベルでの互換性があれば何でもいいです。 >>559 マウスキャプチャして、 ムーブイベントで座標が範囲内かどうかみる。 text.setBackground(Color.gray); とすると The method setBackground(Color) in the type Control is not applicable for the arguments (Color) というエラーメッセージが出たんですが、 「setBackground(Color) は (Color) を引数にとることができません。」 としか自分の英語力では理解出来ず解決策がわかりません。 どうすればこのエラーを無くすことができるでしょうか? SWT の Color と AWT/Swing の Color は別クラス。 text.setBackgroun(Display.getDisplay().getSystemColor(SWT.COLOR_GRAY)); >>574 ありがとうございます。 これで背景色の変更ができるようになりました。 Label で表示したテキストを選択可能にしたいのですが 該当のメソッドが見つかりませんでした。 Text でsetEditable(false) で代用するのが良いのでしょうか? 直接の解決策は知らないけど EclipseのAboutダイアログをSWT Spy plug-inで調べてみたらどうかな? >>577 こんなプラグインがあるんですね、ありがとうございます。 調べてみたところAboutダイアログの文字が選択出来る部分は StyledTextが使われてるようです。 SWT.READ_ONLY 付けた Text 使うでしょ。 C#でいうスプリッタ?みたいな、マウスでフレーム移動させるみたいなのはありますか? SWT初心者がちょっと質問します。 ttp://wdsdx.com/node/41 このサイトに記述されているプログラムを参考にしているのですが、 作成したプログラムが物凄く重いので原因を探していると、 while (!self.sShell.isDisposed()) { if (display.readAndDispatch()) { display.sleep(); } } ここで常時if文を使っているので、物凄く重くなっていると思われます。 なにかいい解決方法はないでしょうか? ねぇよ。 イベント発生するまで待機する処理だからプロファイラで見たら時間かかってるように見えて当たり前。 >>583 勉強不足ですみませんでした。 回答ありがとうございました。 ラベルを大量に並べて、それをスクロールして見ることはできないんでしょうか? 下のコードにあるようにラベルを並べてスクロールで動かしたかったのですが スクロールバーは現れるもののスクロール自体が効いていませんでした。 shell.setLayout(new GridLayout(1,true)); Composite composite = new Composite(shell,SWT.V_SCROLL); composite.setLayout(new GridLayout(1,true)); for(int i=1; i<100; i++){ Label label = new Label(composite,SWT.NONE); label.setText("ラベル" + Integer.toString(i)); } 動かす方法をご存じの方いましたら教えてください。 仕事でSWT使った事はないけど、趣味でSWT使った事はある。 がしかし、最近思うに、Eclipseプラグインの形で、新たなパースペクティブ 用意して作っちゃった方が早いという事に気づいた。 >>588 作る方が。UI周りも気の利いたのが便利に使えるし。 早いと速いをごっちゃに使う人もいるからあまり信用できない VisualStudioっぽくUIが作れるEclipseプラグインが あったと思ったんだけど、最近聞かないね。 あれがもっと広まればSWT関連の書籍もたくさん出てたろうに。 >>592 これのこと? 2010-12-17 米Google、Java GUIビルダー「WindowBuilder」など2技術をEclipseに寄贈 - SourceForge.JP Magazine : オープンソースの話題満載 http://sourceforge.jp/magazine/10/12/17/0833235 >>593 以前にあったのはVisualEditorってやつだな。 その記事は知らなかったけど、Java関係の弱点って UI周りの手軽さなので、助かりそうな気がする。 SWT初心者です。 Compositeをnewする時に親が必須なので、画面中の子Composite作成を別クラスに委譲しようとしても、 親を一々渡していかなきゃダメだと思いますが、疎結合にするいい案はないでしょうか? あるレイヤーやTier間の結合度を指して言うべきだということでしょうか。 リファクタリング時によく使う、結合度が低い状態のことを 疎結合と読びました。すみません。 複数のテキストフィールドにある値を一度に取得したり、一度に内容を消すというような場合は どうすればいいのでしょうか? 単純にText[] txts みたいな感じで配列で宣言しておいて、ループで回すという感じでしょうか? なんで今になって>>393 >>396 があぼーんされてんだ… あるボタンを押すとViewFormが表示され、 表示されたViewForm上のあるボタンを押すと ViewForm上で入力された値を元の画面に持ってくるというようなことをするにはどうしたら良いでしょうか? 自己解決しました。 JFaceのDialogを継承して、独自のダイアログが作れるようなので、これで対応します 色々なパソコンで動作確認してみましたが、AMD CPUだと動いてIntel CPU だと 動かない状況です。 何から疑えばよいかご意見いただきたいです。 >>604 https://bugs.eclipse.org/bugs/ ちょろっと見たところ、統合チップセットの問題がよく挙がってる感じ。 SWTのWinAPIを使ってWindowsメッセージ処理を行おうと思っているのですが、 SWTにおけるwndprocの取り扱いがよく分かりません・・・ SWTのinternal.win32.OSを見てもwndprocらしき関数が見当たらないので、 半分お手上げ状態です・・。 どなたかご存知の方いらっしゃいましたら、ご教授お願いします。 >>608 コメントありがとうございます。 swt.internalのCallbackクラスを用いてウインドウプロシージャを ハンドラに登録するってことでしょうか? SWTでEclipseのようなエディタを作りたいのですが、レイアウトの方法で迷ってます。 Swingでは東西南北配置のBorderLayoutを使ってたのですが、SWTにはそういのないですよね。 そこで、GridLayoutかFormLayoutの利用で迷ってるのですが、どちらの利用が適切でしょうか? Eclipseのようにパネルの配置換えや非表示などができるくらいの柔軟性は持たせたいのですが。 Eclipseみたいなのを目指すのなら、 Eclipse RCP 使った方がはるかにはやいよ。 各種ビューの管理、エディタ向けのウィジェット、 ファイル等のリソース管理など、 必要な機能が一通りそろってるから。 >>611 そんな便利なフレームワークがあったんですか。 情報が少なそうですが、試してみます。ありがとうございます。 >>612 つか、プレーンなEclipseに、プラグイン開発の形で 開発した方が手っ取り早いよ。 SWTでフォルダ表示アプリを作ってるのですが、 システム所定のフォルダアイコンを取得する方法ってないですか? Program.getExtensionsを使って拡張子アイコンは取得できたのですが、 フォルダアイコンだけは見つかりませんでした。 >>593 おいおい WindowBuilderって無料になってたのかよ!! 以前 有料の時に試して使いやすいなーって思ってたけど、貧乏だったからVisualEditorで我慢してたのに!! ちょっとインストールしてくる 寄贈されたのは有料版諸々って訳でもないだろう。 有料版との比較レポヨロ。 有料版の時にはまともなコード吐いてくれてたの? VEはproject terminationの手続きに入った。 これでまともなvb proを有料で出してくれば、ve潰し大成功じゃねーかw VEから乗り換えました。 WBのが痒いところに手が届く感じ。 ・BoxとかStrutとか使えたり、 ・同じ種類のオブジェクトを選択して、一斉にプロパティ設定できたり、 ・GridBagLayoutの設定が楽だったり ってうかよく考えたらここSWTのスレだった。。 Swingしか試してないわ。 有料との比較っても、オレが使ってたの数年前だからな。。。 っていうか有料版ってあるの? これだけで十分使えるんだけどな。。。 元々VEの時もデザインにしか使ってないし。 何か良さそうだな。興味持った。 今度試してみたいと思う。乙。 Eclipse3.7にしてWindowsBuilderをはじめてつかった Compositeを継承したものをGUIエディタのパレットに追加したいのだがわかる人いる? パレットを右クリック→Add Component でいけると思ったけど、作成したクラスを指定できない。。 おたずねします。 メニュー構造のような階層をもつ定数値を格納しておくのに最適な方法は何ですか? 階層ごとに取り出して処理したいのですが。 誤爆乗りしてみる GUI系はやったことないからわからんが 一昔前のStrutsみたいにXML地獄になったりするんか? エクスプローラーからファイルをドロップしたらそのファイルのフルパスを 設定できるようなテキストボックスを作りたいのですが、 DropTarget target = new DropTarget(pathText1,DND.DROP_MOVE); target.setTransfer(new Transfer[] {FileTransfer.getInstance()}); target.addDropListener(new DropTargetAdapter(){ public void drop(DropTargetEvent event) { pathText1.setText((String)event.data); //←ここ } }); としてみたところ、矢印のところでClassCastExceptionが出てしまいます。 悪いところをご教示いただけると助かります。 >>632 色々なサンプルを探したのですが、みんなこうやっています。 ここでClassCastExceptionが起こっているのはわかるのですが、 event.dataがStringにキャストできないとなるとどう修正すればいいのか。 具体的な修正案などないでしょうか。 非nullな参照型ならevent.data.toString() >>634 toStringで結局Exceptionの中身がpathText1にセットされてしまいました。 元々フルパスがevent.dataの中に入っていないということになるでしょうか? >>636 書き込み失敗しました。 デバッグモードでevent.dataの中身を見たらフルパス入ってるんですよね。 なぜそれが取り出せないのか皆目わかりません。 何かご教示いただけないでしょうか? pathText1.setText(event.data.getPath()); DateTime.setForeground 効かない。。。 SWTのTableに関する質問です。 テーブルの行をクリックしたらその行が何行目なのかを得る方法が知りたいです。 ↑はswingのだった SWTでは Table#indexOf(Table#getItem(Point)) クリックした行に何かするなら TableにSelectionListenerを登録して Table#getSelectionIndex() とした方が簡単 >>650 ありがとうございます。 >TableにSelectionListenerを登録して Table#getSelectionIndex() とした方が簡単 これ、テーブルアイテムがないと返してくれないんですね。。設計を見直さないといけないかも・・・ メイン画面に表示する部品の数が多くなったから、メイン画面のクラスに記述してた部品を別クラスに分けて メイン画面のクラスから別クラスをnewしてるんだけど、別クラスに分けた部品がEclipseの WindowsBuilder EditorのDesign画面に表示されない。プログラムを実行すれば表示される。 別クラスに部品を分けてもDesign画面で表示できる方法があったら教えてください わかる奴おらんかー?(´・ω・`) 過疎すぎてあんま質問したくねぇんだよなここ Designだと別クラスにあるインスタンスの判定できないっぽいからもうええわ 「palette」に定義する方法もあるようですな そもそもWBはGUI開発のツールなんだからわざわざこっちで聞くよりSwingスレで聞いたほうが答えてくれる人多いと思うよ もっと言えばWBのdoc読んだほうがいい FontDialogで縦書きフォント消せないのかよー ボタン1とボタン2があって、ボタン1にはボタン1を押した際のイベントリスナーが追加されてます。 ボタン2を押したときにボタン1のイベントリスナーを呼び出す方法を教えてください。 ※ボタン2の処理の中でボタン1のイベントリスナーを再度追加するという方法以外でおねがいします swtよりjavafxのらscene builder使ってる サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ https://www.youtube.com/watch?v=NDq1QoJY0nY 宇ドナルドアナリストパワーストーンコーチングとしまえん サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足 サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題 春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残 コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題 マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了 校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント 高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 L8I6F ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる