画面の右上に小さな通知バブルメッセージの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. アンドロイドで通知を表示するにはどうすればよいですか?
- 2. jqueryを使用してユーザーにポップアップ通知を表示するにはどうすればよいですか?
- 3. バックグラウンドサービスからの通知を表示するにはどうすればよいですか?
- 4. WPFアプリケーションからトースト通知を表示するにはどうすればよいですか?
- 5. Traits静的イベント通知をリストに表示するにはどうすればよいですか?
- 6. どのように表示するかを通知するヘッドアップ通知
- 7. Windowsトレイ通知を表示するにはどうすればよいですか?
- 8. GCMプッシュ通知のカスタムUIを表示するにはどうすればよいですか?
- 9. iOSシミュレータの通知センターを表示するにはどうすればよいですか?
- 10. iOSプッシュ通知をテストするにはどうすればよいですか?
- 11. Growl通知:ウェブサイトからGrowl通知をプッシュするにはどうすればよいですか?
- 12. PAR :: Packer:アンパック通知をユーザーに表示するにはどうすればいいですか?
- 13. 設定 - >通知の下に通知を設定するにはどうすればよいですか?
- 14. 予定のローカル通知を表示するにはどうすればいいですか
- 15. アプリが既に開いていて、通知が来たときにダイアログでプッシュ通知を表示するにはどうすればいいですか?
- 16. Subversionリビジョン番号をIntelliJコミュニティ版に表示するにはどうすればよいですか?
- 17. Qtデザイナーでカスタムウィジェットが表示されない理由を知るにはどうすればよいですか?
- 18. Django通知をインストールするにはどうすればいいですか?
- 19. IntelliJでツールバーを移動するにはどうすればよいですか?
- 20. WordPressにPHPの通知が表示されないようにするにはどうすればよいですか?
- 21. iOS 4にプッシュ通知はどのように表示されますか?
- 22. iosでcalendarViewを表示するにはどうすればよいですか?
- 23. WPでポストオフセットを表示するにはどうすればよいですか?
- 24. divsをjavascriptで表示するにはどうすればよいですか?
- 25. Androidでログメッセージを表示するにはどうすればよいですか?
- 26. Androidでダイアログを表示するにはどうすればよいですか?
- 27. Androidでチルトマップを表示するにはどうすればよいですか?
- 28. memcacheでデータを表示するにはどうすればよいですか?
- 29. フレックスビューステートでフリップエフェクトを表示するにはどうすればよいですか?
- 30. QuickLookでオフラインファイルを表示するにはどうすればよいですか?
誰かが)知ってい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