###前提
JavaでDBに追加更新削除を行うごく普通の"Web"GUIを作成しています。
各処理の完了及び例外時や、入力チェックエラーなどのダイアログの設定を、今まではJavaScriptで行っていたのですが、
個人的には意味が分からない、管理するファイル数が増えるという理由で、発注元運用ベンダーよりJavaScriptを使うなというお達しが来まして・・・
いや、いろいろ入力チェックとか「ダイアログ」とかやってるんでと言い返したところ、
運用ベンダーから調べたらJavaでもできるじゃないか!JFrameとかJOptionPaneでできる!と怒鳴られました。笑
※運用ベンダーはソフトウェア系のプログラミング(今回はJavaですが)に関しては未経験で、ちょっと検索してみて言ってきたんだと思います・・・
何かと面倒くさい人で、ステップ数とかまで細か指定してくるので、場合によってはJavaScriptのほうがいいです、ということにしたいのですが、
経験浅いゆえ確実な反論材料がないのと、果たして本当にswingでできるなら採用してもまあ。ということで、今調査&試行中です。
###バージョン
Java(jdk1.8.1_144)
Spring boot 1.5.7.RELEASE
PostgreSQL 9.6.5-1
###ソースコード
Java
1import java.awt.* 2 3void showDialog(String msg) { 4 ~~中略~~ 5 JOptionPane.showMessageDialog(null, msg); 6}
###発生している問題
画面遷移後、ダイアログが表示される条件を満たすイベントを実行後、
初回のみダイアログがイベント発生画面の裏に表示されてしまう。
同ページで2回目以降のダイアログ表示時は、イベント発生画面上に表示される。
エラーメッセージは発生していません。
###試したこと
- showMessageDialogの第一引数が"Component parentComponent"となっているので、nullを設定するとイベント発生元画面の判定が行えていないため、
PCのデスクトップを親画面としてしまっている?のではと推測。
-
第一引数を変更するため、Componentについての調査を行う。どうやらWindowEventのgetWindow()でイベント発生元画面のオブジェクトが取得できる?っぽいことを認識。
-
調査を進めましたが、新たにclassから定義しないといけない?extends Frame?implements WindowLitner?
serialが必要だったり、windowOpenedだのClosingだの多くのメソッドが必要だったりちょっと1処理に対する手数が多すぎる。
###実現したい・知りたいこと
- わざわざここまで定義してあげないとgetWindow()って使えないんでしょうか?
→WindowListnerなどを含めた新たなクラスを定義してあげないと掲題の内容をクリアできないのであれば、ステップ数が増える~~
とかでJavaScriptに押し返す材料にできるので、これしかないのであればその旨を、簡単にgetWindow()できるならその方法が知りたいです。。。
- そもそも認識として間違っていて、showMessageDialogの第一引数はnullでいい or 別の指定方法がある
ということはありますでしょうか?
- Webアプリケーションでswingを用いることが「完全にできない」と断言できそうな理由はありますでしょうか。
ちょっと丸投げ感あるので、もう少しちゃんと調べればわかるのでは?という叱責も覚悟の上ですが、
如何せん期限がひっ迫しているため、早期解決に向けて有識者の方々の力をお借りしたいです。。。
長文駄文となり申し訳ないですが、ご教示頂きたく。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー