ポップアップ メッセージボックス
質問
私のメソッドでポップアップメッセージボックスをどのようにコード化するか迷っています。
public String verify(){
String result = "failed";
int authcode = staffBean.getVerifyCodeByName(getLoginUserName());
if (code == authcode){
result ="success";
}
else{ //statement to popup an error message box
}
return result;
}
を使ってみました。
JOptionPane
を使おうとしましたが、うまくいきません。
String st = "Welcome";
JOptionPane.showMessageDialog(null, st);
どのように解決するのですか?
javax.swing.JOptionPane
以下は、情報ボックスをポップアップさせたいときに呼び出すメソッドのコードです。
import javax.swing.JOptionPane;
public class ClassNameHere
{
public static void infoBox(String infoMessage, String titleBar)
{
JOptionPane.showMessageDialog(null, infoMessage, "InfoBox: " + titleBar, JOptionPane.INFORMATION_MESSAGE);
}
}
最初の
JOptionPane
パラメータ (
null
この例では) は、ダイアログを整列させるために使用されます。
null
を指定すると、画面上の中央に配置されますが、任意の
java.awt.Component
を指定すると、ダイアログはその中央に表示されます。
Component
の中央に表示されます。
を使うことが多いのですが
titleBar
文字列を使用して、ボックスがコード内のどこから呼び出されているかを記述します。そうすれば、それが煩わしくなった場合、画面に情報ボックスを乱立させているコードを簡単に追跡して削除できます。
このメソッドを使用するには、次のように呼び出します。
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");
javafx.scene.control.Alertを使用します。
JavaFXダイアログの使い方の詳細な説明については JavaFXダイアログ (公式) code.makeryにあります。Swingダイアログよりもはるかに強力で柔軟性があり、単にメッセージをポップアップするだけではありません。
上記のように、同じ結果を得るためにJavaFXダイアログをどのように使用できるかの小さな例を投稿します。
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.application.Platform;
public class ClassNameHere
{
public static void infoBox(String infoMessage, String titleBar)
{
/* By specifying a null headerMessage String, we cause the dialog to
not have a header */
infoBox(infoMessage, titleBar, null);
}
public static void infoBox(String infoMessage, String titleBar, String headerMessage)
{
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle(titleBar);
alert.setHeaderText(headerMessage);
alert.setContentText(infoMessage);
alert.showAndWait();
}
}
注意すべき点は、JavaFXはシングルスレッドGUIツールキットであり、このメソッドはJavaFXアプリケーションスレッドから直接呼び出されるべきであるということです。ダイアログを必要とする別のスレッドで作業している場合は、以下のSO Q&Aを参照してください。 JavaFX2: バックグラウンドタスク/サービスを一時停止できますか? そして Platform.RunlaterとタスクJavafx .
このメソッドを使用するには、呼び出します。
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");
または
ClassNameHere.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE", "HEADER MESSAGE");
関連
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
セミコロン期待値エラー解決
-
配列定数は初期化子でのみ使用可能です。
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
代入の左辺は変数でなければならない 解答
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
[解決済み] Javaにおける例外処理によるパフォーマンスへの影響とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
Javaジェネリックを1つの記事で
-
シェルコマンドやスクリプトのJavaコール
-
eclipse にリソースリーク:'in' が閉じない
-
代入の左辺は変数でなければならない 解答
-
[解決済み] JavaFXにおけるPlatform.runLaterとTask