- ベストアンサー
JSPでボタンを押したらマウスの位置が変わるようなプログラムを作成する方法
- JSPでボタンを押したときにマウスの位置を変更するプログラムを作成していますが、関数が動作しない問題が発生しています。
- 関数にはalertは機能するため、関数には正常にアクセスできていると考えられます。
- 関数にアクセスするにはどのような方法を取れば良いでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
念のため。先ほどの回答の <jsp:plugin type="アプレット" の部分は <jsp:plugin type="applet" の間違いです。すみません。 自分の環境では、jspとclassファイルを配置すれば動作確認できました。 ブラウザによって違いがあるかもしれません。IE8では動きましたがchromeではダメでした。 また、classファイルの置き場所が悪いのかもしれません。 コンテキストルートの直下に置くか、<jsp:plugin>タグのcodebaseを適宜修正してください。 なかなか上手く説明できずに申し訳ありません。
その他の回答 (2)
- yamada_g
- ベストアンサー率68% (258/374)
すみません。JavaScriptだけでは出来ないようですね。 アプレットと連携させれば実現できそうです。 アプレットは今まで一度も触ったことがないので おかしいところが多々あると思いますので、参考程度に見てください。 <pre> [jsp] <jsp:plugin type="アプレット" code="TestApp.class" codebase="." name="ap" height="0" width="0" > <jsp:fallback> <p> 読み込み失敗 </p> </jsp:fallback> </jsp:plugin> <form> <input type="button" value="マウス移動" onClick="ap.mouseMove(100, 100);"> </form> [TestApp.java] import java.applet.Applet; import java.awt.*; public class TestApp extends Applet { //とりあえず必要な処理のみ public void mouseMove(int x, int y) { try { System.out.println("start"); Robot robot = new Robot(); robot.mouseMove(x, y); } catch (Exception e) { e.printStackTrace(); } } } ただ、アプレット内でRobotオブジェクトを生成できるようにするのは セキュリティに問題があるようなので、十分に注意してください。 ※ソースはインデント用に全角スペースを入れてあるので、実行時は適当に置き換えてください
補足
回答ありがとうございます。 ソースをコピペしてためしましたが、エラーも出ず、動かず状態でした。 アプレットは私もよくわからないので、少し勉強してみたいと思います。 この場合サーバーにあげるのは、jspファイルと、classファイルだけなのでしょうか? 一応javaファイルなども全部あげましたが分からなかったです・・。
- yamada_g
- ベストアンサー率68% (258/374)
関数は機能しています。 JavaとJavaScriptがきちんと区別できていないのでは? Java(スクリプトレット)はサーバーで実行され、JavaScriptはクライアント(ブラウザ)で実行されます。 ですので実際に動作する関数の処理は、htmlとして出力されたソースの内容になります。(外部ファイルだったりもしますが) 該当のページのソースをブラウザで見てみてください。function a にはalert文しか出力されていないですよね? ということで、JavaScriptで希望する処理のソースを書いてください。
補足
つまりmouseMoveではマウスは動かない、ということでしょうか? javascript でもマウス座標指定関数を探しましたが、いまいち見つかりませんでした。 この場合どのようにすればマウスは動くのでしょうか?
補足
私もIE8ですね・・・。 javaをcjavaでコンパイルして、classファイルを生成。 後はjspを同じファイルの中において実行…。 何かおかしいですかね?