こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Web(&GUI)クライアントアプリケーションはJAVAの方がPerlより開発しやすい?

Web クライアントプログラミングに関して、PerlとJAVAでは一般に(ただし小規模)JAVAの方が開発しやすいでしょうか? GUIで考えています。
C,C++,Perl,及び、ネットワークの初歩は理解しているつもりですが、
GUIプログラミングの経験はありません。

やりたい内容によるとは思いますが、例えば、1例として
「マウスで単語を範囲指定し、適当なショートカットキーを押すと辞書検索ページを開いてその単語を調べる」
というようなことをやりたいと考えています。
関連質問
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1175764

現在、JAVAの知識はないのですが、
PerlよりJavaの方が開発しやすいようであればJavaを勉強しようと思います。
(あまり手を拡げたくはないのですが...)

また、その場合、Javaの特に何を勉強したらよいでしょうか?
調べたところ、(Javaの基本文法はもちろんですが)GUI関連ではSwing (ライブラリ群の名前と認識していますが違います?)を勉強すればよいかなと考えていますが、正しいでしょうか?
Web (&GUI) クライアントアプリケーションをJAVAで開発するつもりならこれを勉強しろ、というアドバイスをいただけたらありがたいです。

なお、入門書籍としては、書店でざっとながめたところ、オライリーの
詳解 Javaプログラミング入門(上)(下)
がよさそうかなと思いましたので、購入するならこれと思っておりますが、
(GUI)webクライアントプログラミングの観点でおすすめがありましたら
あわせてご教授頂けると嬉しく思います。

宜しくお願いいたします。

投稿日時 - 2005-01-19 19:21:03

QNo.1175847

暇なときに回答ください

質問者が選んだベストアンサー

>「CTR-Sというイベントをハンドリングして、
>アクティブウィンドウでマウスで範囲指定した文字を、
>指定したアプリケーションに渡す」

 これは、Pure Java では明らかに無理です。
 作ったとしてもせいぜい。

ブラウザで文字列をクリップボードにコピー。
  ↓
アクティブウインドウを手動で自作アプリケーションに切り替え。
  ↓
辞書検索ページを表示。

 ずいぶん野暮ったくなってしまいます。

 JNIでシステム依存の部分をどうにかする事もできるのでしょうが、それをするくらいなら、最初から、

>もっと根本のX-window systemを制御するライブラリが必要だということなのでしょうか。。。
>なんかそのような気もしてきました。
>システムプログラミング&X-windowプログラミング
>ということになるのかな?とするとシステム依存ですね。
>Cのライブラリを使うしかないということになるのでしょうか。。。

 こうした方がいいと思います。

投稿日時 - 2005-01-20 17:51:46

お礼

再びのご回答ありがとうございます。

>これは、Pure Java では明らかに無理です。作ったとしてもせいぜい。... ずいぶん野暮ったくなってしまいます。

たしかに野暮ったいですね。(^^;
それだったら、もう1つターミナルを開いておいて、
標準入力にコピー&ペーストで与えてもいいわけで、GUIプログラミングは必要なくなりますね。

私が目下欲しいGUI関連の機能はあくまで「(どのウィンドウであっても)マウスで指定した範囲にあるテキストを受け取る」ということなので、それが出来ないのなら、JAVAでは書けないですね。(この質問のタイトルが表すよりずっと限定された話になってしまいましたが。)

> JNIでシステム依存の部分をどうにかする事もできるのでしょうが、それをするくらいなら、最初から、... した方がいいと思います。

少し調べたら、ひょっとして、GTK+で私がやりたいことが出来るかもしれません...

ご回答ありがとうございました。

投稿日時 - 2005-01-20 19:09:43

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>ブラウザでwebページを見ているときに調べたい単語があったら、
>その単語をマウスで範囲指定して、CTR-Sなんかを押すと、
>ブラウザがもう1枚開いて

 これは、自分でブラウザを自作するのではなく、Mozilla や FireFox で webページを見ているときにと言うことですか?

 そうだとすれば、Java や (Perlの事はよくわからないのですが、たぶん)Perlでは、無理でしょう。

 と言うより、その場合だと、それぞれのブラウザの拡張機能を作った方が本道だし、遙かに簡単だと思います。

 Mozilla系の拡張はJavaではなく、JavaScriptを使うそうです。

 勉強されてはいかがですか。

参考URL:http://firefox.geckodev.org/?%B3%C8%C4%A5%A4%CE%BA%EE%C0%AE

投稿日時 - 2005-01-20 13:34:36

お礼

ご回答ありがとうございます。

>これは、自分でブラウザを自作するのではなく、Mozilla や FireFox で webページを見ているときにと言うことですか?

そうです。ブラウザで見ている場合を例にあげましたが、
さらに、例えば、エディタで文章を書いているときなんかも想定しています。

> そうだとすれば、Java や (Perlの事はよくわからないのですが、たぶん)Perlでは、無理でしょう。

え、そうなんですか?そうだとするとどうすればできるでしょうか?
JAVAやPerlなんかでできてほしいのですが...
なにか私がとんでもない思い違いをしているのかな?

例えば、ブラウザでページを閲覧しているとき、一部分を切り出してエディタに張りつけたりしますよね。逆にエディタで編集した文章をフォームにコピー&ペーストしますよね。
これは、マウスで範囲指定した部分をどこかにストックして、またそれをどこかにペーストするとき呼び出したりする処理をするプログラムがどこかで動いているはずと思うのです。

おそらく、私が知りたいことの肝は、
「CTR-Sというイベントをハンドリングして、アクティブウィンドウでマウスで範囲指定した文字を、指定したアプリケーションに渡す」
と言うことです。

私のOSはLinuxなのですが、私がやりたいようなことをやるには、
もっと根本のX-window systemを制御するライブラリが必要だということなのでしょうか。。。
なんかそのような気もしてきました。
システムプログラミング&X-windowプログラミング
ということになるのかな?とするとシステム依存ですね。
Cのライブラリを使うしかないということになるのでしょうか。。。
なんかそんな気もしてきました。。。


>それぞれのブラウザの拡張機能を作った方が本道だし、遙かに簡単だと思います。

ブラウザ限定なら、おっしゃる通りですね。
このように簡単に拡張出来るというのは知りませんでした。
私のブラウザはMozilla系なので、とても参考になりました。
JavaScriptは環境依存なのでいままで遠慮してきましたが、自分の環境で使う分にはいいですね。

どうもありがとう御座いました。

投稿日時 - 2005-01-20 16:10:07

ANo.1

>(GUI)webクライアントプログラミング
これはWebブラウザを作ると考えて良いのでしょうか?

Webブラウザを作成するならば、GUIに関する著書などが豊富にそろっているJavaの方がいいでしょう。

>GUI関連ではSwing ・・・
正しいです。
JavaでGUIプログラムを作成するならばAWTかSwingになるでしょう。SwingはAWTの後継になるのでAWTかSwingのどちらかといったらSwingの方が良いでしょう。
他にもSWTというものもありますが詳しくは自分で調べてください。

>Javaの特に何を勉強したらよいでしょうか?
文法はC++などに近く、それほど困らないと思うので、まずは慣れることが大事でしょう。
慣れたら次に何を学ぶべきかは自ずとわかってくるので特に何を勉強しろとは言いません。おまかせです。

投稿日時 - 2005-01-20 00:19:26

お礼

ご回答ありがとうございます。

>これはWebブラウザを作ると考えて良いのでしょうか?

具体的に頭にあるのはwebブラウザよりもっと限定されたもので、ブラウザでwebページを見ているときに調べたい単語があったら、その単語をマウスで範囲指定して、CTR-Sなんかを押すと、ブラウザがもう1枚開いて予め指定してある辞書検索ページでその単語を引いた結果を表示する、といった簡単な処理です。
「マウスで指定した範囲から文字列を受け取る」といった処理や、「CTR-S」が押されたというイベントハンドリングをPerlでやりたかったのですが、ふと、JAVAならPerlよりも簡単にこのようなことができるのかな?というのがそもそもの質問の動機でした。
GUI関連の書籍もJAVAの方が豊富のようですので、やっぱりJAVAの方がよいようですね。

GUIに関してはSwingを勉強するのでよいと確認できて安心しました。質問欄にあげた書籍から入って、徐々になれていこうと思います。

有難う御座いました。

投稿日時 - 2005-01-20 02:13:59

あなたにオススメの質問