画面の右上に小さな通知バブルメッセージの1つを表示する方法を説明しました。IntelliJで通知を表示するにはどうすればよいですか?
7
A
答えて
11
あなたはNotificationGroupインスタンスを作成し、それを使って通知を行い、通知とプロジェクトをNotifications.Bus.notify()に渡す必要があります。
public class VoiceApplicationComponentImpl implements ApplicationComponent, VoiceApplicationComponent {
...
public static final NotificationGroup GROUP_DISPLAY_ID_INFO =
new NotificationGroup("My notification group",
NotificationDisplayType.BALLOON, true);
...
void showMyMessage(String message) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
Notification notification = GROUP_DISPLAY_ID_INFO.createNotification(message, NotificationType.ERROR);
Project[] projects = ProjectManager.getInstance().getOpenProjects();
Notifications.Bus.notify(notification, projects[0]);
}
});
}
注:あなたはおそらく、現在のプロジェクトを取得するためのより良い方法があるでしょう、今、私はちょうど1つの開いているプロジェクトがあると仮定します。つまり、私のメソッドは起動時には機能しません(プロジェクトの配列は空です)。
もう1つ注意してください:別のスレッドでshowMyMessageを呼び出していたので、おそらくinvokeLaterでラップする必要はありませんが、私はしました。
0
これはより良いでしょう!
StatusBar statusBar = WindowManager.getInstance()
.getStatusBar(DataKeys.PROJECT.getData(actionEvent.getDataContext()));
JBPopupFactory.getInstance()
.createHtmlTextBalloonBuilder(htmlText, messageType, null)
.setFadeoutTime(7500)
.createBalloon()
.show(RelativePoint.getCenterOf(statusBar.getComponent()),
Balloon.Position.atRight);
参照リンク:なぜ `ApplicationManager.getApplication(
1. original link
2. enter link description here
関連する問題
- 1. Androidステータスバーで通知アイコンを非表示にするにはどうすればよいですか?
- 2. 新しい通知を動的に表示するにはどうすればよいですか?
- 3. 通知をデフォルトのタイムアウトよりも長く表示するにはどうすればよいですか?
- 4. Androidアプリケーションで通知を表示するにはどうすればよいですか?
- 5. アンドロイドで通知を表示するにはどうすればよいですか?
- 6. Android 4.4でロック画面通知を表示するにはどうすればよいですか?
- 7. 通知アクションで特定のviewcontrolerを表示するにはどうすればよいですか?
- 8. SimpleDateFormatと表示通知で保存日時を比較するにはどうすればよいですか?
- 9. iOSで2分間のリモート通知を表示するにはどうすればよいですか?
- 10. 複数行のGCMプッシュ通知をDelphiで表示するにはどうすればよいですか?
- 11. jqueryを使用してユーザーにポップアップ通知を表示するにはどうすればよいですか?
- 12. バックグラウンドサービスからの通知を表示するにはどうすればよいですか?
- 13. WPFアプリケーションからトースト通知を表示するにはどうすればよいですか?
- 14. 他のユーザーから通知を表示するにはどうすればよいですか?
- 15. テスト時に通知を表示するにはどうすればよいですか?
- 16. 通知に時間と日付を表示するにはどうすればよいですか?
- 17. Androidにこの通知を表示するにはどうすればよいですか?
- 18. ターンごとに通知を表示するにはどうすればよいですか?
- 19. Traits静的イベント通知をリストに表示するにはどうすればよいですか?
- 20. 特定の変数の通知エラーを非表示にするにはどうすればよいですか?
- 21. iOSシミュレータの通知センターを表示するにはどうすればよいですか?
- 22. GCMプッシュ通知のカスタムUIを表示するにはどうすればよいですか?
- 23. Windowsトレイ通知を表示するにはどうすればよいですか?
- 24. どのように表示するかを通知するヘッドアップ通知
- 25. Androidで別のアプリに通知を表示するにはどうすればいいですか?
- 26. 希望のviewControllerに通知する通知を受け取るにはどうすればよいですか?
- 27. 通知を設定するにはどうすればよいですか?
- 28. 通知テキストを変更するにはどうすればよいですか?
- 29. iOSプッシュ通知をテストするにはどうすればよいですか?
- 30. ポップアップ通知をカスタマイズするにはどうすればよいですか?
誰かが)知っていinvokeLater'が必要である[ドキュメント](http://www.jetbrains.org/。? intelij/sdk/docs/user_interface_components/notifications.html)はそれを言及していません –
@ robin.thoni invokeLater()はスイングメソッドです。実行できる唯一のスレッドであるイベントディスパッチスレッドの下にuiタスクをスタックできますタスク...これはintellij apiよりスイングに関連していますが...ドキュメント内にあってはいけません。 – ALTN
@ Verdagonプロジェクトプロジェクト= e.getData(LangDataKeys.PROJECT)を使用して現在のプロジェクト参照を取得する必要があります。そうしないと、複数のプロジェクトが開いているときに間違ったプロジェクトに通知される危険性があります。 eはアクションクラス内から取得したAnActionEventです。また、invokeLater実行可能ファイルからe.getData(LangDataKeys.PROJECT)を呼び出すことを確認してください。そうしないと、実行時に例外がスローされます。何らかの理由で、intellijはイベントディスパッチスレッドの下でgetDataを呼び出すことを許可しません。 – ALTN