如何在IntelliJ中显示通知?

时间:2015-10-04 00:39:07

标签: java intellij-idea intellij-plugin

想出如何在屏幕右上角显示其中一条小通知气泡消息,请在下面回答。

2 个答案:

答案 0 :(得分:13)

原则上,你必须创建一个NotificationGroup实例,然后使用它来发出通知,并将通知和Project传递给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]);
            }
        });
    }

注意:您可能有更好的方式来获取当前项目,现在我只假设有一个开放项目。这意味着我的方法在启动时不起作用(项目数组为空)。

另一个注意事项:你可能不需要用invokeLater包装,但我做了,因为我在另一个线程中调用了showMyMessage。

答案 1 :(得分: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);

参考链接:
1. original link
2. enter link description here