Java 高速GUI SWT 3

■ このスレッドは過去ログ倉庫に格納されています
2006/11/30(木) 18:03:19
とりあえず、前スレ落ちてから時間たつけど、立ててみた。

前スレ

Java 高速GUI SWT 2
http://pc8.2ch.net/test/read.cgi/tech/1068349883/
2007/12/07(金) 15:04:48
>>235
そうか?Swingを選ぶかSWTを選ぶかっていう点では、JREはある前提だろ。
2007/12/07(金) 15:05:23
SWTはWindowsでしか使えないのがダメだな。
2007/12/07(金) 15:10:53
mac版のeclipseは何で動いてるのよ
2007/12/07(金) 15:15:52
Mac版はSwingより遅いだろ
2007/12/07(金) 15:18:27
使えないってそういうことね、確かにmac版は重い。了解
2007/12/07(金) 16:53:32
SWTのいい参考書ない?
2007/12/07(金) 18:26:50
>>236
頒布物にswt.jarを入れとけばいいだけの話。
後は「要JREだよ」で話は終わり。
2007/12/07(金) 18:49:28
JNLPをするとき面倒だと思った。

というか、Windows専用って感じはするかな・・・・
SWTの完成度を考えると。
速度が遅かったり見栄えのとけ込み具合とか。
2007/12/07(金) 19:08:19
Mac、JNLPは使ったことないから何とも。
Ubuntu用はいけてたよ。テーマを変えたら追従してくれるし。
245デフォルトの名無しさん
垢版 |
2007/12/07(金) 23:52:10
Mac OSX - Cocoa はいま問題が生じていて
解決しようとしているらしい。SWT。
ttp://www.eclipse.org/swt/

EclipseはSWTを採用しているのでSWTが直らないと重いまま・・。

246デフォルトの名無しさん
垢版 |
2007/12/08(土) 06:18:14
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ...   --─-  :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::..   (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡::::   //[||    」  ||]  ::::::::::゜:::::::::: ...:: :::::
 :::::::::::::::::: . . . ..: :::: / ヘ | |  ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .:::::::::  /ヽ ノ    ヽ__/  ....... . .::::::::::::........ ..::::
:.... .... .. .     く  /     三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝさようなら SWT… ..........
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ................... .. . ...
..   三  |   三  |   三  |   三 |  ... ............. ........... . .....
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪ ............. ............. .. ........ ...
  三三  三三  三三   三三
 三三  三三  三三   三三
2007/12/08(土) 06:36:38
   ∩___∩     /゙ミヽ、,,___,,/゙ヽ
   | 丿     ヽ    i ノ       `ヽ'
  /  ○   ○ |    / `(○)  (○)´i、  先生助けてっ!、
  | U  ( _●_)  ミ  彡,U ミ(__,▼_)彡ミ   3年前まで元気だった SWT が
 彡、    |∪| ,,/   ,へ、,   |∪|  /゙       息をしてないの!!
 /  ヽ  ヽノ  ヾ_,,..,,,,_ /  '  ヽノ `/´ ヽ
 |      ヽ  ./ ,' 3  `ヽーっ  /     |
│   ヾ    ヾl   ⊃ ⌒_つ ソ      │
│    \,,__`'ー-⊃⊂'''''"__,,,ノ   |
2007/12/08(土) 09:35:33
>>245
EclipseスレでもOS XでEclipse使おうとしてハマってる人がいるみたいだよ。
http://pc11.2ch.net/test/read.cgi/tech/1185675094/628-
2007/12/08(土) 14:24:00
SWTは標準うんぬんもそうだが、ドキュメントがウェブ上に少ないのも痛い。
JavaのGUIといえば、AWTかSwingがドキュメントのほとんどだから、
下手するとSWTのことをAWTとSwingを混同してる初心者の勘違い発言だと思ってるヤツもいる。
2007/12/08(土) 17:03:42
SWTの本会社に置いといたら「本あるんだ!」ってびっくりされた。
あるよ!超あるよ!!

ごめん。超は嘘。
2007/12/08(土) 17:51:03
SWTは(Sunが決めた)標準じゃないといわれても、
Eclipseを使ってるとそれほど気にならないんだよなあ。
ドキュメントなら、SWTのサイトにAPIリファレンスもサンプルが転がってるし。
2007/12/08(土) 18:00:53
実際もうネイティブであるアドバンテージもあまりないんだよな。
Pure Java で Swing の Look & Feel として動く層と、
Browser のようなネイティブ機能使う低レベルコンポーネント集の 2 層構成で良いよ。
2007/12/08(土) 18:14:35
それをいっちゃー、Javaにこだわる必要もないなあ、という結論になりそう。
254sage
垢版 |
2007/12/08(土) 18:51:08
ネイティブであるアドバンテージはプログラマーでなく、
お客様(ユーザ)が判断するもの。
『ナにこれ?このファイルダイアログ見掛けが変だよ〜。
全部やり直してよ〜。
それまで、お金払わないよ』
っていわれれば 乙。
2007/12/08(土) 20:19:31
>>254
sageはメル欄ね。
2007/12/08(土) 20:38:26
ぶっちゃけファイルダイアログ以外はSwingでいいかなと思ってる。
257デフォルトの名無しさん
垢版 |
2007/12/09(日) 00:53:49
Windowsプログラマのオレにとっちゃ、SendMessage関数 が使えるSWTは神に思える。
2007/12/09(日) 01:10:45
それが使えりゃいい程度なら JNI で作れば良いじゃんと思う今日この頃。
2007/12/09(日) 23:54:22
日本ってJFaceの情報少ないよね。

>>258
話が飛躍しすぎ
2007/12/09(日) 23:59:06
おまいには SendMessage() アダプタ一つ JNI で組むのがそんなに難しいのか?
2007/12/10(月) 02:32:29
Javaで書けるのがいいんじゃね?
2007/12/10(月) 03:01:45
いや特定の Win32 API 使いたいために SWT 選択するくらいなら、そのアダプタ (ブリッジか) JNI
一回作ってしまえば後は AWT なり Swing なり何なり好きなもの選択できるじゃんという話。
そんなに難しいことは言っていない。元の人は Windows プログラマなんでしょ?
2007/12/10(月) 09:35:42
そのアダプタかなんかを作って維持する手間が
馬鹿にならないんじゃない?
Windows以外でアプリを走らせることを
想定してないみたいだし。
2007/12/10(月) 16:59:56
維持? CVS の片隅に塩漬けにしておくのがなんか手間か?
それとも SendMessage() が Win に SP 当てるたびに挙動変わるようなものだと思ってる?
2007/12/10(月) 17:13:27
聞いているのに聞き返すなよw
2007/12/10(月) 17:25:17
わかったわかった

アダプタかなんかを作って → C のソースで 10行? 20行?。フリーの C コンパイラ落とす方が手間なくらい。
維持する手間 → 一回作ればほぼ変更不要。JDK1.1→1.2 の大改革が起きたときくらい?

だから、SendMessage() が使えるから神というなら自分で作る方が選択肢広がるんじゃね、と思った次第。
2007/12/10(月) 18:51:37
SendMessage()だけじゃ使えない。
os.eclipse.swt.internal.w32.*
はどこかから持ってこれるのか?
2007/12/10(月) 18:59:55
話勝手に膨らませてないか?
SWT の Win32 API 機能フルで使えないと認めないと言う話?
2007/12/10(月) 19:05:53
>>257じゃないから分からんけど、

SendMessage()を使うんだったら、それにまつわるメッセージ定数やら
WPARM, LPARAMにパラメータをパックする仕掛けやらを期待するんじゃないのか。
2007/12/10(月) 19:22:26
うーん確かにそうだが、SendMessage() 程度ならどう転んでも 2〜3 時間も作業すれば
十分な気がするんだが。以後何年かは使えそうなのが。

パラメータはメッセージ元と先の取り決めだから Java の呼び出し側でバイト配列組み立てれば良いし、
JNI 側は DWORD とバイト配列を選択的に受け取れる口にしておけばいいし。定数と
パラメータバイナリ組み立てのためのユーティリティ機能を Java 側で用意して、あとなんかあるか?
2007/12/10(月) 19:35:41
多分、自分で使う部分を実装して、必要に応じてちょこちょこ手を入れる、
と言うことになると思う。後は、そーいう諸々の作業(仕様を考えて、
実装して)をする手間と、swtのを使う手間とを天秤にかけてください。
2007/12/10(月) 23:17:33
車輪の再発明してもしょうがないだろ。既にあるならそのまま使っときゃいいじゃん

が、SWT自体がAWTの再発明という罠
2007/12/10(月) 23:22:18
車輪を使いたいために車を買うのはどうかという話をしてんの。
2007/12/10(月) 23:25:18
>>273
だれがうまいこと言えと(ry
2007/12/11(火) 16:56:10
>>272
これを車輪の再発明とはいわない
2007/12/11(火) 17:27:52
程度の問題だな
jpgやzipのデコードエンジンを作るとかならともかくSendMessageするJNIを作る程度なら
SWT頼るよりはJNI組んだ方がよさそうだ
まぁ最初からSTWでコードを組んでるならともかくSendMessageのためにSWT使うのは本末転倒してるな
2007/12/11(火) 18:37:57
まあ落ち着け。何でそんなに必死なんだ。
278デフォルトの名無しさん
垢版 |
2007/12/11(火) 19:12:20
まぁ、SWTはIBMのスーパープログラマーが作っているから
N●◎データや日立△▲で派遣で働くプログラマーよりも信頼性高い
ことは確か・・。
2007/12/11(火) 19:20:24
Inter○tageとか使いたくないよ。Grassfishとかで普通に作りたいなぁ。
ネットにノウハウの少ないマイナーフレームワークなんて使用者からすれば地獄だねorz
2007/12/11(火) 19:26:06
あ、一応ここはGUIネタじゃなきゃスレ違いだったかな
281デフォルトの名無しさん
垢版 |
2007/12/11(火) 20:45:23
すげ〜〜〜!
SWTを2〜3時間で作れるって、>>270 は天才だな。
つか、おまい、SWTのソースコード見たこと無いだろ。
つか、おまい、SWTでプログラミングしたこと無いだろ。
どうだ?図星だろ?

くやしかったら3時間でSWT作ってミロや。
いや、3時間なんてケチな事は言わん。3週間やるからSWT作ってミロや。

匿名掲示板だからっていい加減なこと書くなよな。
どうせ半べそかいて逃げるんだろ?
2007/12/11(火) 20:48:04
バカが出たぞー
2007/12/11(火) 21:34:00
時代はバカアゲ!とか言い出しそう。
2007/12/11(火) 22:45:11
おお、SWTスレがあがってる!
と思って見にきてみたら・・・・・
2007/12/11(火) 22:53:19
久しぶりに盛り上がり(?)ネタが 「SWT 使うほどじゃネェんじゃね?」 じゃな…
2007/12/12(水) 00:18:02
釣りだろ?常識的に考えて・・・
2007/12/12(水) 09:53:28
>>285
いやいや、アンチの言い分がわかって面白かった。
2007/12/12(水) 18:05:41
>>281の発言は永久保存だな。
2007/12/13(木) 00:49:39
>>266
>一回作ればほぼ変更不要。

ほんとうに一回作れば変更不要だったらいいんだがな
2007/12/13(木) 00:51:13
それはビビリすぎ。
291デフォルトの名無しさん
垢版 |
2007/12/13(木) 01:14:40
で?
>>270 は尻尾を巻いて逃げたのかい?
大風呂敷を広げてみっともないねぇ。
2007/12/13(木) 01:16:47
バカが出たぞー
2007/12/13(木) 01:18:49
>>291はまだ自分のバカさに気付いてないのか
気付いたら恥ずかしくて帰ってこれないだろうに
294デフォルトの名無しさん
垢版 |
2007/12/13(木) 01:51:02
ねぇまだ?
2〜3時間でできるんだろ?
2007/12/13(木) 01:53:35
どこまでがんばれるか、彼の今後の活躍にご注目ください。
296デフォルトの名無しさん
垢版 |
2007/12/13(木) 02:14:18
どう頑張ってもSWTを2〜3時間で作るのは無理だろ。
2007/12/13(木) 08:07:28
SWTを2〜3時間で作るなんていう話がどこででてるんだよw
2007/12/13(木) 11:47:15
SendMessageはSWTの肝だろ。そんなものを2〜3時間で作れるっていうなら見せて欲しい
2007/12/13(木) 14:59:41
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);
}
--
2007/12/13(木) 15:01:09
つか書いてる時間よりも入門HP読んで勉強してる時間の方が長かった
2007/12/13(木) 15:04:24
Swingが自前で描画している、OSにはウィンドウと認識されていないような子ウィンドウに
SendMessage()を送ったときの効果を再現してくれるアダプタだかなんだかは?
302デフォルトの名無しさん
垢版 |
2007/12/13(木) 18:05:50
>>299
で?
たったそれだけでWindowsアプリが書けるとでも思うの?
何の役にも立たんゴミ書いて満足?
2007/12/13(木) 18:20:48
>>299
SendMessageを使う部分がJavaアプリケーションのどれくらいの部分になると思ってるんだ??
Windowsガチイガチアプリが書きたきゃ、C#で書いた方が楽だろう?
2007/12/13(木) 18:28:05
そんな、3時間過ぎたからって、みんなして責めなくても。
3日くらい待てば、>>299はきちんとした仕様と実装を作ってくれるんだよ。きっと。
305デフォルトの名無しさん
垢版 |
2007/12/13(木) 19:19:30
>>299
それ使って Hello world! って表示できるの?
2007/12/13(木) 19:24:52
納得できないなら納得できないやつが納得できるまで自分で書けばいいんじゃね?
取り合えずSendMessageを呼び出すだけなら確かに呼び出してるし
307デフォルトの名無しさん
垢版 |
2007/12/13(木) 19:37:40
書く必要無いよ。だって既に完成品があるんだもん。SWTが。
とりあえず、じゃやなくて、役に立つか立たないか、が問題だね。
学生が学習の為に実験的に書いたのを誇らしげに「どうぞ使ってください」って言われてもねぇ・・・
2007/12/13(木) 19:40:02
役に立つかどうかの前に、スレ違いかどうかを問題にしてくれ。
2007/12/13(木) 19:55:47
>>306
SWTではSendMessage()使える → SendMessage()くらい自分で用意してSwing使え
→ そんなの作れるのか?という流れだから、
SwingでGUIを作ったときに、そのウィンドウにSendMessage()できなきゃだめ。
2007/12/13(木) 20:04:56
>>309
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/awt/AWT_Native_Interface.html
2007/12/13(木) 20:13:35
>>310
ポインタを示すんじゃなくて、自分の言葉で言えない?
2007/12/13(木) 20:15:47
>>311
ひょっとして、読んでも理解できないのか?
2007/12/13(木) 20:29:25
>>312
おー。理解できんよ。

HWNDがSwingから利用できるところにあるって情報だけじゃん。

SwingのウィンドウがHWNDもってるか、とかまったく書いてないのに、
どうやってSwingのウィンドウにSendMessage()できるかどうかわかるんだ?
2007/12/13(木) 20:34:57
>>313
教えてほしいなら AWTスレか JNIスレで質問してくれ。
とりあえず SWTスレで続けるのはスレ違いだから。
2007/12/13(木) 20:41:01
はいはい。使い物になるSendMessage()はSwingでは無理、ということで落着。
2007/12/13(木) 20:54:13
sunのドキュメントを読んでも理解できない程度の技術力の奴が
よく結論出せるなー。
2007/12/13(木) 21:17:15
なんだ、勘違いに気づいたバカが無理やり仕様広げて自分に有利な結論導いたのかw

「それでは使い物にならない」

しかもバカがまったく隠せてないというオチ
2007/12/13(木) 21:40:24
言い負かされた老害エンジニアがよく使う手。
2007/12/13(木) 22:11:41
何だコリャ。実証コードが出たとたんに必死の自演叩きかw
sage と半角使い分ければ他人になれるとでも思ったのか。
2007/12/13(木) 23:13:28
で。
ネイティブAPIをちょっと使うだけならJNIとかでバインディングぐらいさっさと書けばいいものを、SWTをフル実装するような話に膨らませてるのは結局何が主張したかったんだ?
そもそもSWTのSendMessageなんて非公開クラスのメソッドだろうに。
2007/12/13(木) 23:35:12
キチガイが粘着してるだけなんだからスルーしろよ…
2007/12/14(金) 02:26:09
なあ、SWTの存在意義ってSendMessageだけになってしもたん?
2007/12/14(金) 04:25:11
他になにか?
2007/12/14(金) 04:47:22
それすら隠し API 扱いだし。
2007/12/14(金) 10:17:00
>>322
なんちゃってじゃない、ネイティブL&Fだろう。

326デフォルトの名無しさん
垢版 |
2007/12/14(金) 21:03:58
public 宣言されてるのに 隠しAPI とはバカまるだし。

さぁ早く早く。>>299 のコードを利用して "Hello World" をウインドウに表示してみろやクズども!
2007/12/14(金) 21:23:14
>>281,291,294,296,302,305,307,326
そのままコテハンでも付けてくれると無視しやすくて嬉しい。
328デフォルトの名無しさん
垢版 |
2007/12/15(土) 07:27:33
ほんと不毛だな
2007/12/17(月) 12:10:43
「SendMessage 使える」ってのを、
「SWT のコントロールは Windows のウィンドウだから SendMessage でメッセージ送って
いろんなことができる」じゃなくて、文字通り「SendMessage API が呼び出せる」と解釈して
しまった人がいた、というだけのことでそ・・・

Windowsあまり使わない人が読めば後者の意味にしかとれないだろうし。
2007/12/17(月) 12:22:32
SendMessage ベースのメッセージドリブン設計が好きなら素直に VB でも使っとけよと。
2007/12/17(月) 15:18:11
>>329
いや、Windows使ってた奴が >>310 の文書読んで理解できないって事はないでしょ。
2007/12/17(月) 15:21:21
×Windows使ってた奴
○Win32 API使ってた奴

>>301 も Win32 API 使ってた奴の発言とは思えんし……
2007/12/19(水) 15:25:31
>>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();
}
}
2008/01/22(火) 16:52:01
Shellクラスを作成するときにSWT.CLOSEを指定しなくても閉じるボタンがでます。
閉じるボタンを無効化するにはどうすればいいのでしょうか?
335デフォルトの名無しさん
垢版 |
2008/01/22(火) 21:01:45
Display display = new Display();
Shell shell = new Shell(dislay, SWT.TITLE);
shell.setText("hoge");
shell.open();
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況